CSc 212
Data Structures


Course description

This course teaches the basic techniques to organize data in running programs. You will learn about well-known data structures and techniques, including All programming in this course will be conducted in C++.

Course goals

Piazza

Zoom

Homework submission

Syllabus

LECTURE LECTURE TOPICS READ/HOMEWORK/EXAM SLIDES
1: 8/26/21 Introduction, Pre/postcondition, time analysis Ch. 1 CSc212-01-Intro.pdf
2: 8/31/21 C++ classes: ADT, definition, implementation, constructors (code) Ch. 2; Homework 1 is due on 9/23/21 CSc212-02-Classes1.pdf
3: 9/2/21 C++ classes: namespace, documentation, parameters, operator overloading Ch. 2 CSc212-03-Classes2.pdf
4: 9/9/21 Container classes (code) Ch. 3; Homework 2 is due on 10/7/21 CSc212-04-Container.pdf
5: 9/14/21 Pointers and Dynamic Arrays (code) Ch. 4; Homework 3 is due on 10/21/21 CSc212-05-Pointers.pdf
6: 9/21/21 Dynamic Classes and the Law of the Big Three (code) Ch. 4 CSc212-06-DynamicBags.pdf
7: 9/23/21 Linked Lists (code) Ch. 5 CSc212-07-LinkedLists.pdf
8: 9/28/21 The Bag and Sequence Classes with Linked Lists (code) Ch. 5 CSc212-08-LinkedListBags.pdf
9: 9/30/21 Templates, Iterators, and STL (bag 4&5 code, node2 code) Ch. 6; Homework 1 grades CSc212-09-Templates.pdf
10: 10/5/21 Stacks (code) and Queues (code) Ch. 7,8 CSc212-10-StackQueue.pdf
11: 10/7/21 Introduction to Recursion (style example) Ch. 9; Homework 2 grades CSc212-11-Recursion1.pdf
12: 10/12/21 Using and Reasoning about Recursion Ch. 9; Homework 4 is due on 11/4/21 CSc212-12-Recursion2.pdf
13: 10/14/21 Midterm Review Review exam questions for Chapters 1-9 ExamReview1-Midterm.pdf
14: 10/19/21 N-Queens Implementation (code)
15: 10/21/21 Midterm: Part 1 (Chps. 1-3)
16: 10/26/21 Midterm: Part 2 (Chps. 4-9) Midterm grades (Parts 1 and 2)
17: 10/28/21 N-Queens Implementation Homework 3 grades
18: 11/2/21 Trees and Tree Traversals Ch. 10; Homework 5 is due on 11/18/21 CSc212-13-Trees.pdf
19: 11/4/21 Binary Search Trees and B-Trees (code) Ch. 10,11 CSc212-14-BSTrees.pdf, CSc212-15-B-Trees.pdf
20: 11/9/21 k-D Trees Homework 4 grades CSc212-16-KdTrees.pdf
21: 11/11/21 Heaps and Priority Queues; Time Analysis of Trees Ch. 11 CSc212-17-Heaps.pdf, CSc212-18-TreeBigO.pdf
22: 11/16/21 Serial and Binary Searching; Hashing Ch. 12 CSc212-19-Searching.pdf, CSc212-20-Hashing.pdf
23: 11/18/21 Quadratic and Recursive Sorting Ch. 13 CSc212-21-Sorting1.pdf, CSc212-22-Sorting2.pdf
24: 11/23/21 Heapsort Implementation (code)
25: 11/30/21 Quicksort Implementation (code) Homework 5 grades
26: 12/2/21 Insertionsort Implementation (code)
27: 12/7/21 Mergesort Implementation (code)
28: 12/9/21 Final Review Review exam questions for Chapters 10-13 ExamReview2-Final.pdf

Instructor


 
 
 
 
 
Professor George Wolberg
Office Hours: By appointment
wolberg@ccny.cuny.edu
 
 

Teaching Assistant


 
 
 
 
 
Siavash Zokai
Office Hours: By appointment
ccny.cs212@gmail.com
 
 

Lectures

Textbook

Grading

Your final grade is computed as a weighted sum of the programming projects, a midterm exam, and a final exam.