Skip to main content

Course Calendar

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

All times below are the America/New York timezone.

Monday Tuesday Wednesday Thursday Friday
Jan 9,
First Day of Classes
Jan 10, Lecture 1:
Introduction to C++ & Strings


 2020 Lecture 1 (Covers our Lec 1 & 2)
 2020 FALL 2020 (be careful!) Syllabus Q&A

Jan 11, Lab 1:
C++ Development, & Strings


quadratic.cpp
README.txt

 Jan 13, Lecture 2:
Strings & Vectors

framed_diagonal.cpp

Jan 16,
No classes
Jan 17, Lecture 3:
C++ Classes, part 1

date_main.cpp
date.h
date.cpp


 2020 Lecture 2 (Our Lec 3)

Jan 18, Lab 2:
Classes


main.cpp

Jan 19, Homework 1:
Text Justification

due @ 11:59pm

README.txt
example.txt
gettysburg_address.txt
long_word.txt
example_16_flush_left.txt
example_16_flush_right.txt
example_16_full_justify.txt
gettysburg_address_70_flush_left.txt
gettysburg_address_70_flush_right.txt
gettysburg_address_70_full_justify.txt
long_word_15_full_justify.txt
provided_files.zip

Jan 20, Lecture 4:
C++ Classes, part 2

students.txt
student.h
student.cpp
student_main.cpp
stats.h
stats.cpp
name.h
name.cpp
name_main.cpp
assert_demo.cpp


 2020 Lecture 3 (Our Lec 4)

Last day to add classes

 Jan 24, Lecture 5:
Pointers and Arrays


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

Jan 25, Lab 3:
Debugging with the Command Line Debugger


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

Jan 26, Homework 2:
Hockey Classes

due @ 11:59pm

README.txt
no_penalties_or_overtime.txt
no_penalties_or_overtime_output.txt
2012_small.txt
2012_small_output.txt
2012_ecac.txt
2012_ecac_output.txt
2012_all.txt
2011_all.txt
provided_files.zip

Jan 27, Lecture 6:
Dynamic Memory


 2020 Lecture 5A: Dynamic Memory Intro
 2020 Lecture 5B: Dynamic Memory Examples
DCC 308 notes

 Jan 31, Lecture 7:
Big O Notation & Basic Recursion



 2020 Lecture 7A: Algorithm Analysis Introduction
 2020 Lecture 7B: Basic Recursion (we may finish in Lecture 12)

Feb 1, Lab 4:
Memory Diagramming and Debugging

buggy_lab4.cpp
first.txt
middle.txt
last.txt

Feb 2, Test 1
6:00-7:50pm

practice problems

Sample solutions to the practice problems will be posted to Course Materials on Monday morning.

Feb 3, Lecture 8:
Vector Implementation

vec.h
vec_xiao.h
vec_main.cpp


 2020 Lecture 6A: Vec Implementation
 2020 Lecture 6B: Vec Implementation

 Feb 7, Lecture 9:
Iterators & STL Lists

classlist_ORIGINAL.cpp
data.txt


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

Feb 8, Lab 5:
Vector Implementation

vec.h
test_vec.cpp

Feb 9, Homework 3:
Matrix Class

due @ 11:59pm

README.txt
matrix_main.cpp
sample_output.txt
provided_files.zip

Feb 10, Lecture 10:
Iterators & Linked Lists



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

 Feb 14, Lecture 11:
Doubly Linked Lists & List Implementation

dslist_handout.h
list.h
list_main.cpp


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

Feb 15, Lab 6:
Reversing Data: STL Vectors vs. STL Lists

checkpoint1.cpp
checkpoint3.cpp

Feb 16, Homework 4:
Tool Rental Lists

due @ 11:59pm

README.txt
inventory_small.txt
customer_small.txt
output_inventory_small.txt
output_customer_small.txt
inventory_medium.txt
customer_medium.txt
output_inventory_medium.txt
output_customer_medium.txt
inventory_large.txt
customer_large.txt
output_inventory_large.txt
output_customer_large.txt
provided_files.zip

Feb 17, Lecture 12:
Advanced Recursion

letters.txt
binsearch.cpp
merge_sol.cpp
word_search_sol.cpp


 2020 Lecture 11: Advanced Recursion

Feb 20,
No classes
Feb 21,
Monday schedule
Feb 22, Lab 7:
List Implementation

dslist.h (partial)
checkpoint1.cpp
checkpoint2.cpp

Feb 23, Homework 5:
Linked Train Cars

due @ 11:59pm

README.txt
main.cpp
traincar.h
traincar.cpp
traincar_prototypes.h
sample_output.txt
mtrand.h
mtrand.cpp
provided_files.zip

Feb 24, Lecture 13:
Problem Solving, part 1


 2020 Lecture 12: Problem Solving I

 Feb 28, Lecture 14:
Operators

complex_lec.cpp
complex_lec.h
concatenation_array.cpp
boomerang.cpp
square.cpp


 2020 Lecture 14: Operators & Friends

Mar 1, Lab 8:
Recursion

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

Mar 2, Test 2
6:00-7:50pm

practice problems

Sample solutions to the practice problems will be posted to Course Materials on Monday morning.

Mar 3,
DS Lecture cancelled. Last day to drop classes
Mar 6-10,
Spring Break
 Mar 14, Lecture 15:
Associative Containers, part 1

word_count.cpp
search_demo.cpp


 2020 Lecture 15: Maps, part 1

Mar 15, Lab 9:
Maps

phonebook.cpp

Mar 16, Homework 6:
Inverse Word Search

due @ 11:59pm

README.txt
puzzle1.txt
puzzle2.txt
puzzle3.txt
puzzle4.txt
puzzle5.txt
puzzle6.txt
puzzle7.txt
puzzle8.txt
out1_onesol.txt
out1.txt
out2.txt
out3.txt
out4.txt
out5.txt
out6.txt
out7.txt
out8.txt
provided_files.zip

Homework 6 Contest Results

Mar 17, Lecture 16:
Associative Containers, part 2

stl_sets.pdf For HW7
two_sum.cpp
word_pattern.cpp
coursegrades.cpp


 2020 Lecture 16: Maps, part 2

 Mar 21, Lecture 17:
Trees, part 1

ds_set_starter.h
ds_set_lec17.h
lec17_exercises.cpp
unique_occurences.cpp


 2020 Lecture 17: Trees, part 1

(Optional) Old Bonus Lecture
Dr Memory Slides

 2020 Dr. Memory Uncovered

Mar 22,
GM Wednesday, no lab
Mar 23, Homework 7:
Smash Frames

due @ 11:59pm

README.txt
main.cpp
mini_ult_frame_data.txt
large_ult_frame_data.txt
queries1_mini.txt
queries1_large.txt
queries2_mini.txt
queries2_large.txt
output1_mini.txt
output1_large.txt
output2_mini.txt
output2_large.txt
provided_files.zip

Mar 24, Lecture 18:
Trees, part 2

ds_set_lec18_starter.h
ds_set_lec18_moresoln.h
bst_search.cpp
bst_insert.cpp


 2020 Lecture 18: Trees, part 2 (Our Lec 18)
 2020 Lecture 19: Trees, part 3 (also Our Lec 18)

HW8 Meeting Recording

 Mar 28, Lecture 19:
Trees, part 3

ds_set_soln.h
breadth_first_search.cpp
erase_node.cpp
height.cpp
shortest_path.cpp


 2020 Lecture 20: Trees, part 4 (Our Lec 19)

Mar 29, Lab 10:
Tree Implementation

ds_set.h
test_ds_set.cpp

Mar 30, Homework 8:
B+ Trees

due @ 11:59pm

README.txt
hw8_test.cpp
BPlusTree.h
output_all.txt
provided_files.zip

Mar 31, Lecture 20:
Hash Tables, part 1

google_interview.txt
ds_hashset_start.h
hash_phonebook_code.cpp
two_sum_hash_table.cpp


 2020 Lecture 22: Hash Tables, part 1 (Our Lec 20)

 Apr 4, Lecture 21:
Hash Tables, part 2


most_freq_subtree_sum.cpp
max_average_subarray.cpp
rearrange_words_in_a_sentence.cpp
good_substrings_of_size_3.cpp

 2020 Lecture 23: Hash Tables, part 2 (Our Lec 21

Apr 5, Lab 11:
Hash Tables

ds_hashset.h
test_ds_hashset.cpp

Apr 6, Test 3
6:00-7:50pm

practice problems

Sample solutions to the practice problems will be posted to Course Materials on Monday morning.

Apr 7, Lecture 22:
Priority Queues


 2020 Lecture 25: Priority Queues (Our Lec 22)

 Apr 11, Lecture 23:
Hybrid / Variant Data Structures

queue_using_stacks.cpp
stack_using_queues.cpp
trie.cpp


 2020 Lecture 21: Hybrid / Variant Data Structures (Our Lec 23)

Apr 12, Lab 12:
Priority Queues

priority_queue.h
test_pq.cpp

Apr 13, Homework 9:
Miniblast Hash Maps

due @ 11:59pm

README.txt
input_small.txt
output_small.txt
genome_small.txt
input_medium.txt
output_medium.txt
genome_medium.txt
genome_large.txt
input_large.txt
genome_larger.txt
input_larger.txt
provided_files.zip

Apr 14, Lecture 24:
C++ Exceptions

longest_common_prefix.cpp
reverse_integer.cpp

 2020 Lecture 26: Exceptions

Pass/No Credit Deadline

 Apr 18, Lecture 25:
Garbage Collection & Smart Pointers


 2020 Lecture 27: Garbage Collection & Smart Pointers

Apr 19, Lab 13:
Garbage Collection & Smart Pointers

stop_and_copy.h
stop_and_copy.cpp
main_stop_and_copy.cpp
ds_smart_pointers.h
main_smart_pointers.cpp

Apr 20, Homework 10:
Distance Fields & Priority Queues

due @ 11:59pm

README.txt
data_structures_300x300.ppm
dots_1000x1000.ppm
image.cpp
image.h
lines_100x100.ppm
main.cpp
priority_queue.h
small_10x10.ppm
squiggle_30x30.ppm
tiny_5x5.ppm
provided_files.zip

Apr 21, Lecture 26:
Inheritance & Polymorphism

virtual_inheritance_nesting_dolls.pdf


 2020 Lecture 24: (not our) HW9 Discussion & Inheritance

 Apr 25, Lecture 27:
Concurrency & Asynchronous Computing


 2020 Lecture 28: Concurrency & Asynchronous Computing

Apr 26, Lab 14:
Multiple Inheritance & Exceptions

input.txt
simple_main.cpp
utilities.h
simple.txt
output_simple.txt

Last Day of Classes

Apr 27-28,
Reading Days
May 1-3,
Other RPI Final Exams
May 4, Data Structures Final Exam
3-6pm America/New York

Spring 2023 Final Exams Schedule

practice problems

May 5,
Other RPI Final Exams