Course Syllabus

COP3530: Data Structures

Professor Janki Bhimani

Professor Photo

  • Email: janki.bhimani@fiu.edu
  • Phone: (305) 348-9934
  • Office: CASE 238B
  • Turn Around: Within 24 hours

Course Time Zone | Eastern Time (ET). Course due dates are according to this time zone.

General Information Section

Course Description and Purpose

In COP 3530, you will study a collection of classic algorithmic techniques that are useful for solving problems. These algorithms include sorting algorithms (e.g., selection sort, insertion sort, quicksort), recursive backtracking search, tree algorithms (traversals, binary search algorithms), and graph algorithms (traversals, shortest paths, etc.).

The course covers exhaustive approaches, divide and conquer, greedy algorithms, backtracking, and iterative improvement. We will also cover algorithm analysis, asymptotic notation, and recursion. Data structures covered include vectors, stacks, queues, trees, graphs, priority queues, hashtables, and heaps.

Course Goal

By the end of this course, students should be able to perform good programming and design algorithms with different data structures.

Course Objectives

Upon completing this course, students will be able to:

  • Identify the use of different data structures to design algorithms for solving real-life problems.
  • Compare the efficiency of different algorithms and optimize their algorithms.
  • Evaluate the correctness and efficiency of different algorithms constructed using different data structures.
  • Use the standard data structure library of a major programming language to develop efficient algorithms.
  • Collaborate effectively to solve problems with the maximum amount of efficiency.
  • Learn to value and innovate your own algorithms to solve practical problems.

Pillars Of Course Design Philosophy

  • Teach to learn
  • Understand more than memorizing
  • Evolve with hands-on experience

Important Information Section

Policies

Before starting this course, please review the following pages:

Course Prerequisites

This course has a prerequisite(s). Review the Course Catalog (Links to an external site.) webpage for prerequisites information.

To take this course, you must:

  1. Have taken a Discrete Math course.
  2. Know how to write programs in C++ using arrays, loops, conditional statements, functions, parameters, and simple I/O.
  3. Know how to use object-oriented techniques, including classes, constructors, destructors, copy-constructors, public and private members, reference parameters, and function overloading.
  4. Know how to use introductory data structures, including arrays. pointers, vectors, stacks, and queues.
  5. Know how to translate high-level descriptions of algorithms in pseudo-code into working C++.
  6. Know how to debug a C++ program.

Course Structure And Requirements

In this course,

  • Lectures will cover the algorithms and data structures needed to solve the problem.
  • You will learn to design a problem statement, articulating a real-world problem using a data structure lens.
  • You will implement the basic infrastructure, i.e., the classes and data structures and, you need to develop, implement, and evaluate algorithmic techniques.
  • All the submissions towards quizzes, and assignments need to be individual.
  • There will be a quiz for each Module. Each quiz will evaluate your understanding of the material covered in past lectures.
  • You will have coding assignments.
  • Lectures will cover much, but not all, of the required material for the course. There will be reading assignments that accompany each lecture. Reading assignments will be posted and you are also responsible for this material.
  • Class participation is very important. You need to complete all the To-Do items of each Module before its deadline.
  • You are strongly encouraged to re-attempt your Quizzes until you get them right.
  • We will use Canvas for all the class-related communications, submissions, and grading.
  • The instructor and the TAs will be available to answer questions and give you feedback on your work during the specified office hours.
  • This is an online course, which means that 100% of the course work will be conducted online.
  • Final exam will test your learnings from the lectures and reading assignments throughout the course.

Quiz

  • Checking comprehension and improving higher-level thinking
  • How to Prepare for a Multiple Choice Quiz?
    • Read and watch video lectures BEFORE attempting the quiz of each Module.
    • Review lecture notes as soon after the lecture as possible.
    • Combine and cross-reference concepts from the textbook with concepts discussed in lectures.
    • Test your ability to distinguish concepts and ideas by the use of comparing and contrasting.
    • Construct diagrams, charts, tables, and lists to summarize relationships.
    • Test your ability to understand and recall information by writing down everything you can remember about specific topics without using your notes or textbook. This will help you recognize topics that you may need to spend more time studying.
    • Review your notes and textbook from before Modules and identify the major concepts that have been covered.  You should not be learning the information for the first time…this should be a review!
  • How to Take Quiz and Final Exam?
    • Only a single attempt is allowed, do figure out the time that you can spend continuously and make the most out of this attempt.
    • Try to answer the question before looking at the answers. Attempt to anticipate the correct response prior to seeing the options that have been provided. But, make sure you read every answer before choosing.
    • Eliminate options you know to be incorrect. It may be helpful for you to jot down why this option has been eliminated.
    • “All of the above” is a strong possibility for an answer if you can verify that more than one of the other responses is correct.
    • Avoid choosing answers that are unfamiliar or that you do not understand. If you have studied carefully, a choice that is unfamiliar to you is probably incorrect. If you don’t recognize the answer because you didn’t prepare adequately, this tactic does not apply!
    • Use exam questions to help you answer other exam questions. Correlating information between questions may assist you in finding the right answers.
    • Do not spend too much time on any one question.
    • Do not keep changing your answers. Stick with your first impression, unless you misread the question the first time. Be careful not to read things into the questions that aren’t there.
    • Overall, remember that you are looking for the BEST possible answer provided among the options.

Mandatory Outside Class Activities

To take this course, you must:

  • Read materials and watch video lectures.
  • Identify the application for the data structures learned in class.
  • Formulate the problem definition to frame the problem statement.
  • Practice writing C++ code. Writing and debugging the maintainable and defensive code with proper documentation and comments.
  • Practice reading code. Develop the skill of understanding the code written by others.
  • Develop the clarity of concepts to understand the data structures for constructing your own algorithms.

Textbook and Course Materials

Textbook Image

Textbook Image

Expectations of this Course

This is an online course, which means most (if not all) of the course work will be conducted online. Expectations for performance in an online course are the same as a traditional course. In fact, online courses require a degree of self-motivation, self-discipline, and technology skills which can make these courses more demanding for some students.

Students are expected to:

  • review overview and student resources module located in the course modules tab;
  • introduce yourself to the class during the first week by posting a self-introduction in the appropriate discussion;
  • take the practice quiz of academic honesty policy to ensure that your computer is compatible with the learning management system, Canvas;
  • interact online with instructor and peers;
  • review and follow the course calendar and weekly outlines;
  • log in to the course at least two times per week;
  • respond to discussions by the due date specified. No late work will be accepted;
  • respond to emails within one day;
  • submit assignments by the corresponding deadline.

The instructor will:

  • log in to the course every week;
  • respond to discussion postings within two weeks of the deadline;
  • respond to emails within 24 hours;
  • grade quiz within 24 hours of the deadline.
  • grade assignments within 4 weeks of the deadline.

Course Detail Section

Course Communication

Communication in this course will take place via the Canvas Inbox. Check out the Canvas Conversations Tutorial or Canvas Guide to learn how to communicate with your instructor and peers using Announcements, Discussions, and the Inbox. I will respond to all correspondences within 24 hours.

Discussion Forums

Keep in mind that your discussion forum postings will likely be seen by other members of the course. Care should be taken when determining what to post.

Your discussion posts must:

  • Be at least 250 words in length
  • Add quality content to the conversation (e.g., not simply “I agree”)
  • Be free of grammatical errors

Zoom Video Conference

Zoom is a video conference tool that you can use to interact with your professor and fellow students by sharing screens, chatting, broadcasting live video/audio, and taking part in other interactive online activities.

Zoom meetings can be accessed via the Zoom link in the course navigation menu. Once you click on the Zoom link, it will route you to join the meeting for the respective class session. You will also be able to view upcoming meetings, previous meetings that you have already joined, and meeting recordings. Before joining an actual class session:

If you encounter any technical difficulties, please contact the FIU Canvas Help Team (Links to an external site.). Please ensure you contact support immediately upon the issue occurring.

Grading

Course Grades Distribution Table

Course Requirements

Weight

Quiz 20%
Assignment 20%
Class Participation and Discussions
20%
Final  40%

Total

100%

 

  • Grades are determined from the total points as follows and may be curved to percentiles:
Letter Grade Distribution Table

Letter

Range%

Letter

Range%

Letter

Range%

A 94 -100 B 80 – <84 C 40 – <60
A- 90 – <94 B- 70 – <80 D 30 – <40
B+ 84 – <90 C+ 60 – <70 F <30