Welcome to CS112 - Data Structures

A tree of bits

CS 112 uses the C++ programming language to introduce students to the elementary data structures (vectors, lists, stacks, queues, binary search trees, …), recursion, big-oh notation, and other intermediate-level programming topics.

This a permanently in construction website, so please let us know if you find any information missing or had some bad experience with the links and interface throughout the semester.

Here you will find all information needed to do well during the course.

Student Learning Outcomes

Upon successful completion of this course students will be able to:

  • Use indirection (pointers) and run-time memory allocation to implement dynamic, generic container classes (e.g., vectors, lists, stacks, queues, trees, etc.).
  • Analyze, categorize, and compare the complexity of data structure operations using “big-oh” notation.
  • Design and implement recursive data structure operations.
  • Design, create, and use unit-tests to test the correctness of data structure operations.
  • For select algorithms, use simple parallel computing techniques to improve algorithm performance and measure the improvement.

Course Organization

The course is organized around these components:

  1. The lectures that will introduce data structures topics at the conceptual level;
  2. The labs in which students will (in pairs) practice using and building data structures; and
  3. The projects in which students will (individually) practice using and building data structures.

Each week’s lectures, labs and projects will cover the same concepts, but will do so in different ways.

The first 4 weeks will be dedicated to learning C++. After that, we will begin studying data structures.

Acknowledgements

This website is built with Quarto, the lovely icons by icons8. The original code used to build this website can be found at DS Box. We are very grateful for their work!