CS 70

Schedule

We're So Glad to Have You with Us!

This offering of CS70 will be a “flipped” course. Each week, two lessons, one homework assignment, and one group of proficiency checks will be released on the website. You can access each week's material through the schedule below. In class, you can work with your partner on homework and ask professors and grutors about the homework and course material.

Many questions about the course are answered in the Course Policies section. Extra reference documentation related to topics we cover in class is posted in the Help Pages. If you have questions, please post on Piazza, or reach out during office hours and grutoring hours!

Topic Schedule

Week First Lesson Second Lesson Labs
Week 1 Introduction, Single Variables, and Memory Models
Goals 0A 0B 0C 0D 1A
Object Lifetime for Primitives, Numeric Types, Promotion/Conversion, signed/unsigned (size_t)
Goals 1B 1C 1D

Lab 1: Introductions

Lab 2: Practice with basics

Week 2 Compilation, Version Control, Pair Programming
Goals 3A
Arrays of Primitives, Style, Testing
Goals 2A 2B 2C, 2D

Lab 1: No class (holiday)

Lab 2: Pair programming, HW1

Week 3 Separate Compilation
Goals 3A 3B 3C 3D
References
Goals 4A

Lab 1: Array practice, HW1

Lab 2: Compilation practice, HW1/HW2

Week 4 Classes in C++: Data Members, Include Guards, Member Initializers, Scope Operator
Goals 3C 5B
Object Lifetime (Part 1, On the Stack)
Goals 5A 5B 5C 5D

Lab 1: HW2

Lab 2: HW2/HW3

Week 5 Pointers (Part 1)
Goals 4B 4D
Pointers (Part 2)
Goals 4B 4C

Lab 1: Object lifetime practice, HW3

Lab 2: HW3

Week 6 No lesson: extra time for second tries for groups 1, 2, and 3 Object Lifetime (Part 2, On the Heap)
Goals 5A 5B 5C 5D

Lab 1: No class (office hours!)

Lab 2: Honor code, HW4

Week 7 Pointers (Part 3) / Object Lifetime (Part 3) / Temporaries, Return Values, and Overloading
Goals 4B 4C 4D
Interface/Encoding, Iterator Validity
Goals 6B 6C 6D

Lab 1: Reading types, HW4

Lab 2: HW4

Complexity, Asymptotic Analysis, Best/Worst/Average Cases
Goals 7A 7B 7C
(No new homework or PCs;
extra lesson instead)
Week 8 No lesson (break) Interface/Encoding/Implementation, Iterator Validity
Goals 6A 6B 6C 6D

Lab 1: No class (break)

Lab 2: HW5

Week 9 BSTs
Goals 8A 8D
2–3–4 and Red–Black Trees
Goals 8C 8D

Lab 1: HW5

Lab 2: HW5/HW6

Week 10 Amortized Analysis, Splay Trees
Goals 7D 8D
Randomized Trees, Randomized Insert
Goals 8B 8D

Lab 1: HW6

Lab 2: HW6

Week 11 No lesson: more time for second tries for groups 4, 5, and 6 Templates, Conversion
Goals 10C

Lab 1: No class (office hours!)

Lab 2: HW7

Week 12 Hash Tables (Separate Chaining)
Goals 9A 9B 9C 9D
Hash Tables (Open Addressing)
Goals 9B 9C 9D

Lab 1: HW7

Lab 2: HW7/HW8

Week 13 Heaps
Goals 10A
Inheritance, Virtual Functions, Polymorphism
Goals 10B

Lab 1: HW8

Lab 2: HW8

Week 14 Trade-Off Scenarios for Different Data Structures
Goals 10D
No lesson (break)

Lab 1: HW8

Lab 2: No class (break)

Week 15 No lessons: more time for second tries for groups 7 and 8 and reviewing for final tries.

Lab 1: No class (office hours!)

Lab 2: Review together!

Finals Week No classes or homework; final try at proficiency checks for all topics.

Homework Schedule

All the homeworks and their dates are listed here:

Proficiency-Check Schedule

All the proficiency checks and their dates are listed here:

(When logged in, completion status appears here.)