CSCI 1200 Data Structures
Spring 2015

Home
  Contact Information
  Announcements
  Discussion Forum (LMS)

Syllabus
  Learning Outcomes
  Prerequistites
  iClickers in Lecture
  Course Grades

Calendar
  Lecture notes
  Lab materials
  Homework
  Test reviews

Weekly Schedule
  Office Hours
  Lab Times

Getting Help
  Tutoring
  Advice from TAs
  Advice from Students

Homework
  Due Date and Time
  Late Day Policy
  Compilers
  Electronic Submission
  HW Grading Criteria

Collaboration Policy &
Academic Integrity

References
  Optional Textbooks
  Web Resources
  C++ Development
    Compilers
    Code Editors & IDEs
  Misc. C++ Programming
    Command Line Args
    File I/O
    string → int/float
  Memory Debugging
    Valgrind
    Dr. Memory

Course Calendar

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

Monday Tuesday Wednesday Thursday Friday
Jan 26,
First day of classes
Jan 27, Lecture 1:
Introduction to C++, STL, & Strings
Jan 28, Lab 1:
Getting Started

julian.cpp
README.txt

 Jan 30, Lecture 2:
Strings & Vectors
 Feb 3, Lecture 3:
C++ Classes, part 1
Feb 4, Lab 2:
Classes

Feb 5, Homework 1:
Image Processing

due @ 11:59pm

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

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

Last day to add classes

 Feb 10, Lecture 5:
Pointers and Arrays
Feb 11, Lab 3:
Pointers, Arrays, and the Stack

print_stack.cpp

Feb 12, Homework 2:
Tennis Classes

due @ 11:59pm

README.txt
sample_scores.txt
sample_scores_out.txt updated 2/9
mens_2014_5_setters.txt
mens_2015_ao.txt
mens_2014_ao.txt
mens_2014_fo.txt
mens_2014_w.txt
mens_2014_uso.txt
mens_2014.txt
provided_files.zip

Feb 13, Lecture 6:
Dynamic Memory
Feb 16-17,
No Classes
Feb 18, Lab 4:
Testing & Debugging

Point2D.h
Rectangle.h
Rectangle.cpp

Feb 19, Homework 3:
Dynamic Tetris Arrays

due @ 11:59pm

README.txt
main.cpp
sample_output.txt
provided_files.zip

Feb 20, Lecture 7:
Order Notation & Basic Recursion
Feb 23, Test 1
6-7:50pm
Location: TBA
Feb 24, Lecture 8:
Vector Implementation
Feb 25, Lab 5:
Vector Implementation

vec.h
test_vec.cpp

 Feb 27, Lecture 9:
Iterators & STL Lists
 Mar 3, Lecture 10:
Vector Iterators & Linked Lists
Mar 4, Lab 6:
Iterators & Lists

Mar 5, Homework 4:
Grocery Lists

due @ 11:59pm

README.txt
main.cpp
simple_input.txt
simple_output.txt
medium_input.txt
medium_output.txt updated 3/1
dinner_input.txt
dinner_output.txt updated 3/1
provided_files.zip

Mar 6, Lecture 11:
Doubly Linked Lists
 Mar 10, Lecture 12:
List Implementation
Mar 11, Lab 7:
List Implementation

dslist.h (partial)
lab7.cpp

Mar 12, Homework 5:
Linked Train Cars

due @ 11:59pm

README.txt
main.cpp
traincar.h
traincar_prototypes.h
traincar.cpp
mtrand.h
mtrand.cpp
sample_output.txt updated 3/9
provided_files.zip

Mar 13, Lecture 13:
Advanced Recursion
Mar 16, Test 2
6-7:50pm
Location: TBA
Mar 17, Lecture 14:
Problem Solving, part 1
Mar 18, Lab 8:
Recursion

grid1.txt
grid2.txt
start.cpp

 Mar 20, Lecture 15:
Problem Solving, part 2

Last day to drop classes

Mar 23-27,
Spring Break
 Mar 31, Lecture 16:
Associative Containers, part 1
Apr 1, Lab 9:
Maps

Apr 2, Homework 6:
Carcassonne Recursion

due @ 11:59pm

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

Apr 3, Lecture 17:
Associative Containers, part 2
 Apr 7, Lecture 18:
Trees, part 1
Apr 8, Lab 10:
Sets

ds_set.h
test_ds_set.cpp

Apr 9, 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_output_2.txt
hg_input_3.txt
hg_output_3.txt
wizard_of_oz.txt
(original link)
shakespeare.txt
(original link)
provided_files.zip

Apr 10, Lecture 19:
Trees, part 2
 Apr 14, Lecture 20:
Trees, part 3
Apr 15,
No classes
Apr 16, Homework 8:
Quad Trees & Tree Iteration

due @ 11:59pm

README.txt
main.cpp updated 4/12
quad_tree.h
output.txt
provided_files.zip

Apr 17, Lecture 21:
Operators
Apr 20, Test 3
6-7:50pm
Location: TBA
Apr 21, Lecture 22:
Priority Queues, part 1
Apr 22, Lab 11:
Operators

main.cpp
team.h
team.cpp

 Apr 24, Lecture 23:
Priority Queues, part 2 (& Functors)

Pass/No Credit deadline

 Apr 28, Lecture 24:
Hash Tables
Apr 29, Lab 12:
Hash Tables

ds_hashset.h
test_ds_hashset.cpp

Apr 30, Homework 9:
Distance Fields & Priority Queues

due @ 11:59pm

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

May 1, Lecture 25:
Inheritance & Polymorphism
 May 5, Lecture 26:
C++ Exceptions
May 6, Lab 13:
Order Notation & Performance

performance.cpp
test_input.txt
test_sort.txt
test_mode.txt
test_remove_dups.txt

May 7, Homework 10:
Multiple Inheritance & Exceptions

due @ 11:59pm

README.txt
main.cpp
utilities.h
triangles.txt
triangles_output.txt
quads.txt
quads_output.txt
input.txt
provided_files.zip

May 8, Lecture 27:
Garbage Collection & Smart Pointers
 May 12, Lecture 28:
Concurrency & Asynchronous Computing
May 13, Lab 14:
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

Last day of classes

May 14-15,
Study Days
May 18-19,
Other RPI Final Exams
May 20,
Data Structures Final Exam
3-6pm

Final Exams Schedule

May 21-22,
Other RPI Final Exams