Data Structures

CSE 20312 - Spring 2017

View website in full window

All lab assignments and rubrics (Piazza)

Skip to most recent lecture notes

Team DS


Scott Emrich
Lead instructor
semrich@nd.edu

Shreya Kumar
Lab instructor
skumar5

Ryan Busk
Senior
rbusk

Luke Garrison
Senior
lgarriso

John Rocha
Senior
jrocha

Rosalyn Tan
Senior
rtan

Jenna Wilson
Senior
jwilso27

Mary Connolly
Senior
mconnol6

Teddy Brombach
Junior
tbrombac

Cameron Smick
Junior
csmick

Emily Obaditch
Junior
eodaditch

John Joyce
Junior
jjoyce6

Lauren Ferrara
Junior
lferrara

Nick Aiello
Junior
naiello

Robert Simari
Junior
rsimari

Troy Prince
Junior
tprince

James Farrington
Junior
jfarrin1

Office hours

Prof. Scott Emrich
211B Cushing Hall; Phone: (574) 631-0353
TBD

TA Office hours: most early evenings in Eng library; see Piazza here.

Overview

This is the second part of a two-course introduction-to-computing sequence intended for Computer Science and Computer Engineering majors. This course deepens and broadens student exposure to imperative and object-oriented programming and elementary data structure usage and design. Topics covered include modularity, specification, data abstraction, classes and objects, genericity, inheritance. An accompanying laboratory will provide comprehensive programming practice to supplement course lectures.

Lectures: Mon, Wed, Fri 9:25-10:15AM, Debartolo 141
Labs: either Mon, Tues, or Wed (depending on section), Fitzpatrick B011

Getting Help

We will use Piazza for general questions related to our course.

If you need to ask specific questions about your programs/debugging, please place the complete code in your dropbox, copy the relevant subregion (if possible), and paste it along with the exact error message in a private post on Piazza to the instructors. Your query will be responded to by the first person available.

Other resources


Complete course schedule

Date Topic Homework Other
1/18/2017 Introductions; (re)intro C++ class design, makefiles   Notes + Code
1/20/2017 Constructors, deconstructors, passing by value vs. reference Lab #1 (inc. rubric) Notes + Code
1/23/2017 const, static, review of overloading   Notes + Code
1/25/2017 Making our own vector sequence container   Notes + Code
1/27/2017 Intro to inheritance Lab #2 (see Piazza for rubric) Notes + Code
1/30/2017 Polymorphism   Notes + Code
2/1/2017 intro to templates, array example   Notes + Code
2/3/2017 code review: battleship Lab #3 (see Piazza for rubric) Notes + Code
Inheritance version
2/6/2017 template deep dive: linked lists (1)   Notes + Code
2/8/2017 template deep dive: linked lists (2)   PDF (last fall)
2/10/2017 making a container adapter: queue + circular list Lab #4 (inc. rubric) PDF
2/13/2017 Stacks   Code
PDF
2/15/2017 Intro to binary trees and priority queues   PDF
2/17/2017 Binary search trees   PDF
2/20/2017 Simple tree traversals and deconstruction   Code from class
2/22/2017 Review: adding on a binary tree, projects  
Code
2/24/2017 Collaborative midterm review Lab #5 (inc. rubric)  
2/27/2017 In-class midterm    
3/1/2017 Exam followup; brief intro to software engineering   PDF
3/3/2017 Runtime analysis Lab #6 (see Piazza for rubric)  
3/6/2017 Comparison-based sorting   PDF
3/8/2017 Recursive sorting   PDF
3/10/2017 Sample interview questions    
Midterm Break!
3/20/2017 Heaps and heap sort Lab #7 (see doc for rubric) PDF
3/22/2017 B-trees   PDF
3/24/2017 Red-black trees (intro) Lab #8 (Google) PDF
3/27/2017 Treaps   PDF
3/29/2017 Intro to maps, BST review   see Piazza for now
3/31/2017 Finish BST questions, hash tables   PDF
4/3/2017 DS review, separate chaining   PDF
4/5/2017 Open addressing   PDF
4/7/2017 Case study: using STL/hash tables Lab #10 released Notes
4/10/2017 Intro to graphs, storing them in C++ Lab #9 released see Piazza
4/12/2017 Graph traversals   See Piazza
Easter
4/19/2017 Minimum spanning trees   see Piazza and video
4/21/2017 Minimum spanning trees (cont)   See video
4/24/2017 Topological sort Project pre-release
in lab this week
 
4/26/2017 Parallel sorting    
4/28/2017 OOP Week! (first and second sets)    
5/1/2017 OOP Week! (third and fourth sets) No lab this week  
5/3/2017 Final wrap up Projects
due
 
5/5/2017 Project demos
   

Academic dishonesty

Entering Notre Dame you were required to study the on-line edition of the Academic Code of Honor, to pass a quiz on it, and to sign a pledge to abide by it. The full Code and a Student Guide to the Academic code of Honor are available here. Perhaps the most fundamental sentence is the beginning of section IV-B:

You are encouraged to study and discuss course material with classmates, but assessed material must derive from your head to your fingers to your text editor. In other words, no "copy and pasting" of code from group or other settings. Because any instance of academic dishonesty will be reported, please see Prof. Emrich if you are not unsure about certain actions.