Brief Course Description

This course covers the design, analysis, and implementation of basic data structures in C++. A few basic algorithms, especially ones operating on the data structures are also covered. It is fundamentally a course about data structures. We will start with a brief discussion of the C++ programming language. Then, we survey fundamental data structures (lists, queue, stack, map) and how we can make use of them in C++. Then, we delve deeper into the design, analysis and implementation of such data structures along with more complex ones such as several types of trees, graphs, and hash tables. Asymptotic analysis of algorithms and data structures is discussed. Other C++ features needed for generic implmentations of the data structures are introduced along the way.

Teaching staff

  • Instructor: Hung Q. Ngo ( hungngo [at] buffalo [dot] edu)
  • Teaching assistants
    • Mr. Branislav Stojkovic ( bs65 [at] buffalo )
    • Mr. Jangyoung (Chris) Kim ( jangyoun [at] buffalo )
  • Office hours: see calendar below


Elliot B. Koffman & Paul A.T. Wolfgang. 2006. Objects, Abstraction, Data Structures and Design: Using C++, Wiley. (ISBN: 0471467553).


Passed both CSE 116 and CSE 191 with a grade of C- or better.