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,

  • There will be no midterm or final exam.
  • There will be multiple submissions towards the project, which represent 30% of your final grade. 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, assignments, and projects need to be individual.
  • There will be a quiz for each Module. Cumulatively all the Quizzes will account for 40% of your final grade. Each quiz will evaluate your understanding of the material covered in past lectures.
  • You will have an assignment that accounts for 20% of your final grade.
  • 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.

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.
  • grade projects 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

Number of Items

Total Points Available

Weight

Quiz 8 75 40%
Project 3 300 30%
Assignment 1 100 20%
Class Participation and Discussions
3 25 10%

Total

15 500 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