Instructor: Partha Biswas (partha.biswas@tufts.edu)

Teaching assistants:
Matthew Russell  (mrussell@cs.tufts.edu)

Leon Wang (leonwang@cs.tufts.edu)

Description and Objective: This course is intended as an introduction to data structures, algorithms, and more advanced programming techniques. Students will be able to solve real-world problems by reasoning about data structure choices, choose appropriate implementations, and analyze the costs associated with those choices. Students will learn to write, debug, and test large programs systematically. We hope to achieve these goals by presenting higher-level concepts in lectures and hands-on computer practices in the lab. The programming assignments will be in C++.

Topics Covered: The major topics within the course include: Abstraction, Problems Solving, Software Design, Linked Lists, Templates, Stacks, Queues, Trees, Heaps, Sorting Algorithms, Graphs, and Hashing, with exposure to complexity and algorithm analysis.

Prerequisites: COMP 11 or equivalent. Knowledge of C++. Students who have had only Java or Python programming experience should contact the professor.

Examples: All code samples shown in the class are posted here.