Whether you are building scalable software, preparing for technical coding interviews, or pursuing advanced study in computer science, a strong understanding of data structures and algorithms is essential. This course introduces the design, implementation, and analysis of fundamental data structures and algorithmic techniques in C++, including abstract data types (ADTs), generic programming, linear data structures, trees and balanced search trees, hash tables, priority queues, sorting, stable matching, divide-and-conquer, greedy algorithms, and dynamic programming. Emphasis is placed on selecting appropriate data structures, designing efficient algorithms, analyzing their correctness and computational complexity, and understanding the principles and reasoning behind algorithm design.
COP 3330: Object-Oriented Programming
MAD 2104: Discrete Mathematics
Mark Allen Weiss, Data Structures and Algorithm Analysis in C++, 4th ed., Pearson, 2013.
Jon Kleinberg and Eva Tardos, Algorithm Design, Pearson, 2006.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022.
C++
Time: Monday and Wednesday 1:20PM - 2:35PM
Location: HCB 0103
Instructor: Ang Li (Email: al23bp at fsu dot edu)
The instructor’s office hour is Wednesday 3:00PM-4:00PM at 166 Love Building.
Teaching Assistant: TBD
TA's office hour: TBD
Course Website: https://www.causalds.org/teaching/fall2026
Grades will be computed based on the following factors:
Homework and Program Assignments 30%
Midterm 30%
Final 40%
Letter Grades: The letter grades will be assigned according to the following criteria, and if necessary, the grades will be curved upwards.
Algorithm Analysis
Abstract Data Types (ADTs)
Generic Programming
Linear Data Structures
Maps and Sets
Trees and Binary Search Trees
Balanced Trees
Hash Tables
Amortized Analysis
Priority Queues and Heaps
Sorting Algorithms
Stable Matching
Divide and Conquer
Greedy Algorithms
Dynamic Programming
There will be about 6 homework assignments during the semester as we cover the corresponding material. Homework consists of both problem solving and C++ programming.
Unless otherwise indicated, you may talk to other students about the homework problems but each student must hand in their own answers and write their own code in the programming part. You also must indicate on each homework with whom you collaborated and cite any other sources you use including Internet websites. Students should never see another student’s solution before submitting their own. Students cannot use old solution sets for this class or solution manual to the textbook under any circumstances.Homework assignments will be submitted through Canvas.
You will have a one-time exemption for a one-day late submission that you can apply to any of your assignments. This will be applied automatically at the end of the semester. The second or subsequent late assignments will be marked as 0 at the end of the semester.
Please submit your homework on time. Homework is worth full credit if submitted before the due date. After the due date, it is worth zero credit, except for the one-time exemption of a one-day late submission. No excuses will be allowed unless you provide an official doctor's note before the deadline and receive my approval.
There will be one midterm and then a final. You are not allowed to discuss them with other people. Missing any exams will automatically result in an F grade.
Midterm: Oct. 12 or Oct. 14 at HCB 0103 (Tentative date, In Class)
Final: Dec. 9 12:30PM-2:30PM at HCB 0103
There might be extra credit questions on midterm and final.
All students are expected to uphold the Academic Honor Code published in The Florida State University Bulletin and the Student Handbook. The Academic Honor System of The Florida State University is based on the premise that each student has the responsibility (1) to uphold the highest standards of academic integrity in the student's own work, (2) to refuse to tolerate violations of academic integrity in the university community, and (3) to foster a high sense of integrity and social responsibility on the part of the university community.
web site for a complete explanation of the Academic Honor Code.
https://fda.fsu.edu/academic-resources/academic-integrity-and-grievances/academic-honor-policy
First Day Attendance Policy: Official university policy is that any student not attending the first class meeting will be automatically dropped from the class.