Skip to main content

Course Calendar

Lecture and lab topics are tentative and will be updated as the term progresses.

Monday Tuesday Wednesday Thursday Friday
 Aug 28,
First Day of Classes
Monday Schedule
Aug 29, Lecture 1:
Introduction to C++ Development


 F2020 Syllabus Q&A

Sept 1,
No Classes
Sept 2, Lecture 2:
STL Strings & Vectors


 F2020 Lecture 1

Sept 3, Lab 1:
Introduction to C++, Strings, & Vectors


quadratic.cpp
README.txt

Sept 4, Homework 0:
Guessing Game

due @ 11:59pm


README.txt
troy_zip_code.txt
powers_of_two.txt
prime_numbers.txt
100_4_digit_numbers.txt
1000_5_digit_numbers.txt
example_output_troy_zip_code.txt
example_output_prime_numbers.txt
example_output_powers_of_two.txt
provided_files.zip

Sept 5,
Monday Schedule
 Sept 9, Lecture 3:
C++ Classes, part 1


 F2020 Homework 1 Q&A
 F2020 Lecture 2

Sept 10, Lab 2:
Classes, Const, & Reference


main.cpp

Sept 11, Homework 1:
Math Equation Game

due @ 11:59pm


README.txt
sample_equation.txt
example_output_sample_equation.txt
sample_equation2.txt
example_output_sample_equation2.txt
simple_equations.txt
addition_only_equations.txt
general_equations.txt
provided_files.zip

Sept 12, Lecture 4:
C++ Classes, part 2


 F2020 FAQ and Q&A
 F2020 Lecture 3


Last day to add/drop courses

 Sept 16, Lecture 5:
Pointers and Arrays


const_ref_flowchart.pdf

 F2020 Lecture 4A: Pointers
 F2020 Lecture 4B: Pointer Arithmetic & Arrays

Sept 17, Lab 3:
Pointers & Step-by-Step Debugging


point.h
point.cpp
line.h
line.cpp
roads.cpp
input_a.txt
input_b.txt
input_c.txt
input_d.txt

Sept 18, Homework 2:
Bowling Classes

due @ 11:59pm


README.txt
no_strikes_or_spares.txt
out_no_strikes_or_spares.txt
simple_tenth.txt
out_simple_tenth.txt
example.txt
out_example.txt
2010_US_Open.txt
provided_files.zip

Sept 19, Lecture 6:
Dynamic Memory


 F2020 Lecture 5A: Dynamic Memory Intro
 F2020 Lecture 5B: Dynamic Memory Examples

 Sept 23, Lecture 7:
Vector Implementation


vec.h

 F2020 Lecture 6A: Vec Implementation
 F2020 Lecture 6B: Vec Implementation

Sept 24, Lab 4:
Vec Implementation & Dynamic Memory & Memory Debugging


vec.h
test_vec.cpp

Sept 25, Test 1
6:00-7:50pm

practice problems

Don't look at the solutions until you have fully worked the problems
practice problem solutions

Test 1 Solutions

Sept 26, Lecture 8:
Algorithm Analysis a.k.a. Big O Notation


 F2020 Lecture 7A: Algorithm Analysis Introduction
 F2020 Lecture 7B: Basic Recursion

 Sept 30, Lecture 9:
Iterators & STL Lists


 F2020 Lecture 8A: Iterator & STL List
 F2020 Lecture 8B: Example of List & Iterator

Oct 1, Lab 5:
Iterators & Lists


checkpoint1.cpp

Oct 2, Homework 3:
Undo Array

due @ 11:59pm


README.txt
main.cpp
sample_output.txt
small.txt
medium.txt
large.txt
provided_files.zip

Oct 3, Lecture 10:
Simple Recursion & Linked Lists


 F2020 Lecture 9A: Iterators continued
 F2020 Lecture 9B: Singly-Linked Lists

 Oct 7, Lecture 11:
Doubly Linked Lists & List Implementation



 F2020 Lecture 10A: doubly-linked lists
 F2020 Lecture 10B: dslist implementation

Oct 8, Lab 6:
List Implementation


dslist.h (partial)
lab6_testing.cpp

Oct 9, Homework 4:
Autograding Scheduler

due @ 11:59pm


README.txt
main.cpp
timestamp.h
timestamp.cpp
job.h
simulator.h
simulator.cpp
sample_jobs.txt
sample_visualization_single_file.txt
sample_log_single_file.txt
sample_stdout_single_file.txt
random_jobs_100.txt
random_jobs_500.txt
random_jobs_2000.txt
random_jobs_10000.txt
random_jobs_50000.txt
provided_files.zip

Oct 10, Lecture 12:
Operators & Friends



 F2020 Lecture 14: Operators & Friends

Oct 13,
No classes
Oct 14, Lecture 13:
Advanced Recursion


merge_sol.cpp
word_search_sol.cpp

 F2020 Lecture 11: Advanced Recursion

Oct 15, Lab 7:
Recursion & Big O Notation


grid1.txt
grid2.txt
grid3.txt
grid4.txt
grid5.txt
grid6.txt
start.cpp

Oct 16, Homework 5:
Jenga Stability

due @ 11:59pm


README.txt
main.cpp
jenga_print.cpp
output_SimpleTest.txt
output_CantileverTest.txt
output_JengaTest.txt
provided_files.zip

Oct 17, Lecture 14:
Problem Solving


quicksort.cpp

 F2020 Lecture 12: Problem Solving I
 F2020 Lecture 13: Problem Solving II

 Oct 21, Lecture 15:
C++ Exceptions


 F2020 Lecture 26: Exceptions

Oct 22, Lab 8:
Operator Overloading


main.cpp
team.h
team.cpp

Oct 23, Test 2
6:00-7:50pm

practice problems

Don't look at the solutions until you have fully worked the problems
practice problem solutions

Test 2 Solutions

Oct 24, Lecture 16:
Associative Containers, part 1


 F2020 Lecture 15: Maps, part 1

 Oct 28, Lecture 17:
Associative Containers, part 2


 F2020 Lecture 16: Maps, part 2

Oct 29, Lab 9:
Maps


phonebook.cpp

Oct 30, Homework 6:
Carcassonne Recursion

due @ 11:59pm


README.txt
README_contest.txt
main.cpp
tile.h
tile.cpp
location.h
location.cpp
board.h
board.cpp
puzzle1.txt
puzzle2.txt
puzzle3.txt
puzzle4.txt
puzzle5.txt
puzzle6.txt
puzzle7.txt
puzzle8.txt
puzzle9.txt
output5.txt
output3rotations.txt
output4allrotations.txt
output6all.txt
provided_files.zip

Oct 31, Lecture 18:
Trees, part 1


 F2020 Lecture 17: Trees, part 1

(Optional) Bonus Lecture
 F2020 Dr. Memory Uncovered
slides

 Nov 4, Lecture 19:
Trees, part 2


 F2020 Lecture 18: Trees, part 2

Nov 5, Lab 10:
Binary Search Trees &
Tree Implementation, part 1


ds_set.h
test_ds_set.cpp

Nov 6, Homework 7:
Halloween Maps

due @ 11:59pm


README.txt
main.cpp
small_input.txt
small_output.txt
medium_input.txt
medium_output.txt
large_input.txt
huge_input.txt
provided_files.zip

Nov 7, Lecture 20:
Trees, part 3


breadth_first.cpp

 F2020 Lecture 19: Trees, part 3

Last day to withdraw from courses

 Nov 11, Lecture 21:
Trees, part 4


ds_set_complete.h

 F2020 Lecture 20: Trees, part 4

Nov 12, Lab 11:
Tree Implementation, part 2


ds_set.h
test_ds_set.cpp

Nov 13, Homework 8:
Bidirectional Map

due @ 11:59pm


README.txt
main.cpp
output.txt
extra_credit_output.txt
provided_files.zip

Nov 14, Lecture 22:
Inheritance & Polymorphism


 F2020 Lecture 24: HW9 Discussion & Inheritance

Last day to pass/no credit courses

 Nov 18, Lecture 23:
Hash Tables, part 1


google_interview.txt

 F2020 Lecture 22: Hash Tables, part 1

Nov 19, Lab 12:
Hash Tables


ds_hashset.h
test_ds_hashset.cpp

Nov 20, Test 3
6:00-7:50pm

practice problems

Don't look at the solutions until you have fully worked the problems
practice problem solutions

Test 3 Solutions

Nov 21, Lecture 24:
Hash Tables, part 2


 F2020 Lecture 23: Hash Tables, part 2

Nov 24-28,
No Classes
 Dec 2, Lecture 25:
Priority Queues
Dec 3, Lab 13:
Priority Queues & Heapsort

Dec 4, Homework 9:
Spell Correcting Hash Table

due @ 11:59pm


README.txt
main.cpp
hash_function.h
hash_table.h
sample_separate_chaining_stats.txt
sample_open_addressing_stats.txt
sample_check_spelling_output.txt
sample_suggest_replacements_output.txt
words_with_frequency_10k.txt
words_with_frequency_20k.txt
words_with_frequency_50k.txt
words_with_frequency_100k.txt
words_with_frequency_200k.txt
words_with_frequency_500k.txt
hansel_and_gretel.txt
alice_in_wonderland.txt
wizard_of_oz.txt
shakespeare.txt
provided_files.zip

Dec 5, Lecture 26:
Hybrid / Variant Data Structures
 Dec 9, Lecture 27:
Garbage Collection & Smart Pointers
Dec 10, Lab 14:
Big O Notation & Performance

Dec 11, Homework 10
due @ 11:59pm


Dec 12, Lecture 28:
Concurrency & Asynchronous Computing

Last Day of Classes

Dec 15,
Reading/Study Day
Dec 16,
Other RPI Final Exams
Dec 17,
Data Structures Final Exam
6:30-9:30pm

Fall 2025 Final Exams Schedule & Information

Dec 18-19,
Other RPI Final Exams
Dec 22,
Other RPI Final Exams