Skip to main content

Course Calendar

IMPORTANT NOTE: Due to COVID-19, all aspects of RPI's Spring 2021 Data Structures course will be conducted online. Please be patient as we adapt our materials and teaching methods to this format.

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


 Lecture 1

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


quadratic.cpp
README.txt

 Jan 29, Lecture 2:
Strings & Vectors


 Lecture 2
framed_diagonal.cpp

 Feb 2, Lecture 3:
C++ Classes, part 1


 Lecture 3
date_main.cpp
date.h
date.cpp

Feb 3, Lab 2:
Classes


main.cpp

Feb 4, 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

Feb 5, Lecture 4:
C++ Classes, part 2


 Lecture 4
students.txt
student.h
student.cpp
student_main.cpp
stats.h
stats.cpp
name.h Updated 3PM Feb 5th
name.cpp Updated 3PM Feb 5th
name_main.cpp Updated 3PM Feb 5th

Last day to add classes

 Feb 9, Lecture 5:
Pointers and Arrays


 Lecture 5

Feb 10, 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

Feb 11, 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

Feb 12, Lecture 6:
Dynamic Memory



 Lecture 6

Feb 15,
No classes
Feb 16, Lecture 7:
Big O Notation & Basic Recursion


 Lecture 7
binsearch.cpp

Feb 17, Lab 4:
Memory Diagramming and Debugging

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

Feb 18, Test 1
6:55-8:45pm

practice problems

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

Feb 19, Lecture 8:
Vector Implementation


 Lecture 8
vec.h
vec_lec8.h Exercise Solutions

 Feb 23, Lecture 9:
Iterators & STL Lists


 Lecture 9
classlist_ORIGINAL.cpp
classlist_ITER.cpp
classlist_LIST.cpp
lec_9_notes.cpp Added 2/26

Feb 24, Lab 5:
Vector Implementation

vec.h
test_vec.cpp

Feb 25, Homework 3:
Jagged Array

due @ 11:59pm

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

Feb 26, Lecture 10:
Iterators & Linked Lists



 Lecture 10
lec10_ex.cpp Added 3/2
lec10_ex_more.cpp Added 3/2

 Mar 2, Lecture 11:
Doubly Linked Lists & List Implementation


 Lecture 11 (runs ~15 mins long + Q&A)
dslist_handout.h
dslist_partial.h

Mar 3, Lab 6:
List Implementation

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

Mar 4, Homework 4:
DVD Lists

due @ 11:59pm

README.txt
main.cpp
requests_small.txt
results_small.txt
requests_medium.txt
results_medium.txt
requests_large.txt
requests_large_submitty.txt Smaller version for Submitty autograder
provided_files.zip

Mar 5, Lecture 12:
Advanced Recursion


 Lecture 12
letters.txt
binsearch.cpp Same as Lecture 7 version
merge_sol.cpp
word_search_sol.cpp

 Mar 9, Lecture 13:
Problem Solving, part 1


 Lecture 13

Mar 10, Lab 7:
Recursion

grid1.txt
grid2.txt
grid3.txt
grid4.txt
start.cpp Updated 10/13 @ 11pm to use enum rather than bool

Mar 11, Homework 5:
Unrolled Linked Lists

due @ 11:59pm

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

Mar 12, Lecture 14:
Operators


 Lecture 14
complex_lec.cpp
complex_lec.h
complex_soln.cpp
complex_soln.h

 Mar 16, Lecture 15:
Associative Containers, part 1


 Lecture 15
word_count.cpp
word_count_sol.cpp

Mar 17, Lab 8:
Maps

phonebook.cpp

Mar 18, Test 2
6:55-8:45pm

practice problems

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

Mar 19, Lecture 16:
Associative Containers, part 2

odd_count.cpp
coursegrades.cpp

 Lecture 16

Last day to drop classes

 Mar 23,
DS Lecture cancelled
Mar 24,
GM Wednesday, no lab
Mar 25, Homework 6:
Crossword Blackout

due @ 11:59pm

README.txt
reverse_ell1.txt
reverse_ell2.txt
reverse_ell_dict.txt
nyt_mini1.txt
nyt_mini1_noblack.txt
nyt_mini2.txt
nyt_mini1_dict.txt
blackout1.txt
blackout2.txt
blackout3.txt
blackout_dict1.txt
blackout_dict2.txt
sporcle1_constraintsA.txt
sporcle1_constraintsB.txt
sporcle1_dict1.txt
sporcle1_dict2.txt
sporcle1_dict3.txt
sporcle1_dict4.txt
guardian1.txt
out_reverse_ell1.txt
out_reverse_ell2.txt
out_nyt_mini2.txt
out_blackout1_all.txt
nyt1.txt
nyt2.txt
provided_files.zip

Mar 26,
DS Lecture cancelled
 Mar 30, Lecture 17:
Trees, part 1

ds_set_starter.h

 Lecture 17
ds_set_lec17.h
lec17_exercises.cpp

Mar 31, Lab 9:
Binary Search Trees &
Tree Implementation, part 1

ds_set.h
test_ds_set.cpp

Apr 1, 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
provided_files.zip

Apr 2, Lecture 18:
Trees, part 2

ds_set_lec18_starter.h

 Lecture 18
ds_set_lec18_moresoln.h

 Apr 6, Lecture 19:
Trees, part 3



 Lecture 19
ds_set_soln.h
lec19_ex1.cpp
lec19_ex2.cpp
bfs_code.cpp

Apr 7, Lab 10:
Tree Implementation, part 2

Apr 8, Homework 8:
B+ Trees

due @ 11:59pm

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

Apr 9, Lecture 20:
Hash Tables, part 1


google_interview.txt
ds_hashset_start.h

 Lecture 20
hash_phonebook_code.cpp
ds_hashset_soln.h

 Apr 13, Lecture 21:
Hash Tables, part 2


 Lecture 21
stacksnqueues.cpp

Apr 14, Lab 11:
Operators

main_checkpoint_1_and_2.cpp

Apr 15, Test 3
6:55-8:45pm

practice problems

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

Apr 16, Lecture 22:
Inheritance & Polymorphism


virtual_inheritance_nesting_dolls.pdf

 Lecture 22

Pass/No Credit Deadline

 Apr 20, Lecture 23:
Priority Queues


 Lecture 23

Apr 21, Lab 12:
Priority Queues & Inheritance

heapsort.cpp

Apr 22, Homework 9:
MiniBLAST Hash Maps

due @ 11:59pm

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

Apr 23, Lecture 24:
C++ Exceptions


 Lecture 24

 Apr 27, Lecture 25:
Garbage Collection & Smart Pointers


 Lecture 25

Apr 28, 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 29, 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 30, Lecture 26:
Concurrency & Asynchronous Computing


 Lecture 26

May 3,
Last Day of Classes
May 4-5,
Reading Days
May 6-7,
Other RPI Final Exams
May 10-11,
Other RPI Final Exams
May 12, Data Structures Final Exam
3-6pm America/New York

Spring 2021 Final Exams Schedule

practice problems