Fundamentals of Computing II

CSE 20212 - Spring 2013


This is the second part of a two-course introduction-to-computing sequence intended primarily 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:35-10:25AM, DeBartolo 136
Labs: either Tues, Wed, Thurs (depending on section), Cushing 303

Team Fund II

Prof. (aka head coach) Scott Emrich
211B Cushing Hall
Phone: (574) 631-0353; E-mail: semrich at
Office hours: Mon 5-6pm; Tues 1-2pm

Assistant (coaches)Office hours
Mark Costanzoby appointment
Rachael Purtaby appointment
Kerry Dobmeier Mon 6-8pm; Wed 6-8pm; Sat 3-5pm
William Heineman Tues 6-10pm; Sat 5-7pm
Taylor SealeWed 8-10pm; Sun 5-7pm
Jeremy VercilloMon 8-10pm; Sun 3-5pm

NOTE: All TA emails (and office hours) can be found on Piazza here.

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.

If you prefer email instead of Piazza, please use the Fund II instructor mailing list here:

Important Links

Reference Material


Deitel and DeitelC++ How to ProgramI
Pearson/Prentice-Hall, 2011. ISBN: 978-0132662369

The 7th (older, blue) edition also would work just as well.

Click here for iCal version

Complete course schedule

Date Topic Homework Other
1/16/2013 Introductions, C++ basics prelab out
due 1/22, 3pm
1/18/2013 C++ classes, constructors (Ch 3); makefiles Lab #1 out
due before your next lab at 3pm
1/21/2013 Classes inc. composition (Ch 9)   Notes
1/23/2013 Deconstructors and Const (end of Ch 9, start of 10)   Notes
1/25/2013 Friends, this, Static class elements (Ch 10) Lab #2 out
due before your next lab at 3pm
1/28/2013 Overloading (Ch 11)   Notes
1/30/2013 Internship advice: Josh Wise (former TA, now Microsoft)
no formal class
2/01/2013 Overloading: arrays (part 1) Lab #3 out
due before your next lab at 3pm
2/04/2013 Overloading, Inheritance hierarchy   Notes
2/06/2013 Inheritance and polymorphism (Ch 12 and 13)   Notes
2/08/2013 Polymorphism (Ch 13) Lab #4 out
due before your next lab at 3pm
2/11/2013 Intro to templates and the STL   Notes
2/13/2013 Power of templates (more examples)   Notes
2/15/2013 code review, battleship Lab #5 out
due before your next lab at 3pm
2/18/2013 templating: arrays (vectors)   Notes
2/20/2013 templating: linked list (list)   Notes
2/22/2013 stack/queue applications Lab #6 out
Due 3pm Friday before break
2/25/2013 Exception handing (Ch 16)   Notes
2/27/2013 Midterm review    
3/01/2013 In-class midterm Lab #7 out
Due 3pm Friday after break
3/04/2013 Intro to graphics, Git   Notes
3/06/2013 QT   Notes
3/08/2013 Graphs, trees and graphics post break   Notes
Midterm Break!
3/18/2013 Minesweeper Lab #8 out; due Thurs 5pm before break Google code
3/20/2013 Intro to software engineering   Notes
3/22/2013 Code review: Minesweeper Lab #9 out; due Friday after break  
3/25/2013 Intro to Hidden Markov Models   Notes
3/27/2013 Case study #1: HMM code   Notes
4/03/2013 Design patterns Final lab #10; due Friday 4/12 at 3pm  
4/05/2013 lists vs. trees    
4/08/2013 trees in bioinformatics   Notes
4/10/2010 templating for trees and lists    
4/12/2010 Special topic: polymorphic mosquitoes   Notes
4/15/2010 Special topic: finding more bitcoins / parallel processing Projects (in lab) Notes
4/17/2013 Case study #2: 90s song mashups!   Notes
4/19/2013 Case study #3: simple spell checker    
4/22/2013 TBA Project prerelease
(in lab)
4/24/2013 OOP Week! (first set of groups)    
4/26/2013 OOP Week! (second third)    
4/29/2013 OOP Week! (last set of groups)    
5/1/2013 Final wrap up Projects
5/3/2013 Project demos
make up for 1/30

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.