Skip to main content

Course Calendar

IMPORTANT NOTE: Due to COVID-19, all aspects of RPI's Spring 2022 Data Structures course will be conducted online for the first two weeks. After that depends on RPI's decision, but hopefully labs and office hours will be in-person when allowed.

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 10,
First Day of Classes
Jan 11, Lecture 1:
Introduction to C++ & Strings


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


quadratic.cpp
README.txt

 Jan 14, Lecture 2:
Strings & Vectors

framed_diagonal.cpp

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

date_main.cpp
date.h
date.cpp

Jan 19, Lab 2:
Classes


main.cpp

Jan 20, Homework 1:
Image Processing

due @ 11:59pm

README.txt
input1.txt
input2.txt
input3.txt
input4.txt
input5.txt
output4_closing.txt
output4_dilation.txt
output4_erosion.txt
output4_opening.txt
output4_replace.txt
provided_files.zip

Jan 21, 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

Last day to add classes

 Jan 25, Lecture 5:
Pointers and Arrays


Jan 26, 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 27, Homework 2:
Course Scheduling

due @ 11:59pm

README.txt
empty.txt
out_empty_room.txt
out_empty_room_ROOM1234.txt
out_empty_dept_CSCI.txt
simple1.txt
out_simple1_room.txt
out_simple1_dept_CSCI.txt
simple2.txt
out_simple2_room.txt
out_simple2_dept_ECSE.txt
medium1.txt
out_medium1_room.txt
out_medium1_dept_ECSE.txt
medium2.txt
RPI_Fall2018.txt
provided_files.zip

Jan 28, Lecture 6:
Dynamic Memory


 Feb 1, Lecture 7:
Big O Notation & Basic Recursion

buggy.cpp

Feb 2, Lab 4:
Memory Diagramming and Debugging

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

Feb 3, Test 1
6:00-7:50pm
Feb 4, Lecture 8:
Vector Implementation

vec.h
vec_sol.h

 Feb 8, Lecture 9:
Iterators & STL Lists

classlist_ORIGINAL.cpp
data.txt
classlist_ITER.cpp
classlist_LIST.cpp
lec_9_notes.cpp

Feb 9, Lab 5:
Vector Implementation

vec.h
test_vec.cpp

Feb 10, Homework 3:
Connect Four

due @ 11:59pm

README.txt
connect_four_main.cpp
sample_output.txt
provided_files.zip

Feb 11, Lecture 10:
Iterators & Linked Lists

lec10_ex.cpp

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

dslist_handout.h
dslist_partial.h
lec11.cpp

Feb 16, Lab 6:
List Implementation

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

Feb 17, Homework 4:
Pizza Event SimulaTOr

due @ 11:59pm

README.txt
main.cpp
input_small.txt
output_small.txt
input_medium.txt
output_medium.txt Updated 2/13/2022
provided_files.zip

Feb 18, Lecture 12:
Advanced Recursion

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

Feb 21,
No classes
Feb 22,
Monday schedule
Feb 23, Lab 7:
Recursion

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

Feb 24, Homework 5:
Unrolled Linked Lists

due @ 11:59pm

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

Feb 25, Lecture 13:
Problem Solving, part 1


Fall 2020 Problem Solving Part 2 PDF

 Mar 1, Lecture 14:
Operators

complex_lec.cpp
complex_lec.h
complex_soln.cpp
complex_soln.h

Mar 2, Lab 8:
Operators

main_checkpoint_1_and_2.cpp

Mar 3, Test 2
6:00-7:50pm
Mar 4,
DS Lecture cancelled. Last day to drop classes
Mar 8-12,
Spring Break
 Mar 15, Lecture 15:
Associative Containers, part 1

word_count.cpp
word_count_sol.cpp

Mar 16, Lab 9:
Maps

Mar 17, Homework 6:
Star Battle

due @ 11:59pm

README.txt
custom1.txt
custom2.txt
custom3.txt
sporcle1.txt Source: Sporcle Puzzle 1
twonot1.txt Source: KD homepage
twonot2.txt Source: KD 14x14 Puzzle 3

out_custom1_1_all.txt
out_custom1_2_all.txt
out_custom1_3_all.txt
out_custom2_1_all.txt
out_custom2_2_all.txt
out_custom2_3_all.txt
out_custom3_4_all.txt
out_custom3_5_all.txt
out_sporcle1_1_all.txt
out_sporcle1_1_all_count.txt
out_twonot1_1_all.txt
out_twonot1_1_all_count.txt
out_twonot1_1_one.txt
out_twonot1_2_all.txt
out_twonot1_2_one.txt
out_twonot2_1_one.txt
out_twonot2_2_one.txt
out_twonot2_4_all.txt
out_twonot2_4_all_count.txt

out_twonot2_1_all_count_veryslow.txt Will not be tested. Prof solution 3-6 minutes.
out_twonot2_3_one_slow.txt Will not be tested. Prof solution 2-3 minutes
provided_files.zip

Mar 18, Lecture 16:
Associative Containers, part 2

odd_count.cpp
coursegrades.cpp

 Mar 22, Lecture 17:
Trees, part 1

ds_set_starter.h
ds_set_lec17.h
lec17_exercises.cpp



(Optional) Old Bonus Lecture
Dr Memory Slides

Mar 23,
GM Wednesday, no lab
Mar 24, Homework 7:
Word Frequency Maps

due @ 11:59pm

README.txt
main.cpp
spot.txt
spot_input.txt
spot_output.txt
hansel_and_gretel.txt
(original link)
hg_input_2.txt
hg_input_3.txt
hg_output_2.txt
hg_output_3.txt
alice_in_wonderland.txt
(original link)
shakespeare.txt
(original link)
provided_files.zip

Mar 25, Lecture 18:
Trees, part 2

ds_set_lec18_starter.h
ds_set_lec18_moresoln.h
lec18_split_solutions.pdf

 Mar 29, Lecture 19:
Trees, part 3

ds_set_soln.h
lec19_ex1.cpp
lec19_ex2.cpp
bfs_code.cpp

Mar 30, Lab 10:
Tree Implementation

ds_set.h
test_ds_set.cpp

Mar 31, Homework 8:
Ropes

due @ 11:59pm

README.txt
main.cpp
Rope.h
Rope_provided.cpp
Rope_student.cpp
output_basic.txt
provided_files.zip

Apr 1, Lecture 20:
Hash Tables, part 1

google_interview.txt
ds_hashset_start.h
hash_phonebook_code.cpp

Apr 4,
Pass/No Credit Deadline
Apr 5, Lecture 21:
Hash Tables, part 2

stacksnqueues.cpp
ds_hashset_soln.h Added after Lab 11

Apr 6, Lab 11:
Hash Tables

ds_hashset.h
test_ds_hashset.cpp

Apr 7, Test 3
6:00-7:50pm
Apr 8, Lecture 22:
Inheritance & Polymorphism

virtual_inheritance_nesting_dolls.pdf

 Apr 12, Lecture 23:
Priority Queues


Apr 13, Lab 12:
Priority Queues

priority_queue.h
test_pq.cpp

Apr 14, Homework 9:
IMDB Hashing

due @ 11:59pm

README.txt
small_example_movies.txt
small_example_actors.txt
small_example_input.txt
small_example_output.txt
small_example_input2.txt
small_example_output2.txt
top250_example_movies.txt
top250_example_actors.txt
top250_example_input.txt
top250_example_output.txt
top250_example_input2.txt
top250_example_output2.txt
3k_example_movies.txt
3k_example_actors.txt
starter_code.cpp
provided_files.zip

Apr 15, Lecture 24:
C++ Exceptions


 Apr 19, Lecture 25:
Garbage Collection & Smart Pointers


Apr 20, 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 21, Homework 10:
Performance and Big O Notation

due @ 11:59pm

README.txt
performance.cpp
performance_vector.cpp
performance_linked_list.cpp
performance_bst.cpp
performance_priority_queue.cpp
performance_hash_table.cpp
generate_input.cpp
runstats.c
small_string_input.txt
small_string_output_sort.txt
small_string_output_remove_duplicates.txt
small_string_output_mode.txt
small_string_output_first_sorted_3.txt
small_string_output_longest_substring.txt
small_integer_input.txt
small_integer_output_sort.txt
small_integer_output_remove_duplicates.txt
small_integer_output_mode.txt
small_integer_output_closest_pair.txt
small_integer_output_first_sorted_5.txt
provided_files.zip

Apr 22, Lecture 26:
Hybrid / Variant Data Structures

 Apr 26, Lecture 27:
Concurrency & Asynchronous Computing


Apr 27, Lab 14:
Multiple Inheritance & Exceptions

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

Last Day of Classes

Apr 28-29,
Reading Days
May 2-4,
Other RPI Final Exams
May 5, Data Structures Final Exam
6:30-9:30pm America/New York

Spring 2022 Final Exams Schedule

May 6,
Other RPI Final Exams