University of Minnesota
CSci 1113: C++ Programming
index.php

Schedule*   

This is an approximate schedule. It will be updated as the class progresses.

Week
Week Of
Topics
Lecture Materials (001)
Lecture Materials (010)
Readings
Exams Lab Due
1 Sept. 4
Introduction, computers, algorithms, programs, compilers
9/5
9/7 helloWorld.cpp inputOutput.cpp logicError.cpp magic8ball.cpp runTimeError.cpp
slides helloWorld.cpp inputOutput.cpp logicError.cpp magic8ball.cpp runTimeError.cpp Ch. 1
 
Unix tutorial
(no lab this week)
 
2 Sept. 10
Variables, expressions, assignment, console I/O, predefined functions
9/10 assignmentOP.cpp binaryVsUnaryOps.cpp float.cpp uninitialized.cpp
9/12 doubleTrouble.cpp intVSlong.cpp math.cpp simpleDivision.cpp subtractionError.cpp
9/14 cinMismatchingTypes.cpp ifElse.cpp madlibs.cpp stringInput.cpp
9/11 assignmentOp.cpp binaryVsUnaryOps.cpp doubleTrouble.cpp doWhileLoop.cpp float.cpp intVSlong.cpp madlibs.cpp math.cpp simpleDivision.cpp stringInput.cpp subtractionError.cpp uninitialized.cpp Ch. 2, Section 4.2
 
Lab 1: Basic C++ programs
kittyCode.cpp

Coding options for homework
3 Sept. 17
Selection, boolean expressions, if-else, multiway-if, switch
9/17 bridgeOfDeath.cpp ifAndSemi.cpp rng.cpp scope.cpp shortCircuit.cpp
9/19 99beer.cpp doWhile.cpp forLoop.cpp grades.cpp ifIfElse.cpp max.cpp switch.cpp switchToIf.cpp whileLoop.cpp
9/21 break.cpp continue.cpp countingSheep.cpp identityMatrix.cpp nestedLoop.cpp sumAllToN.cpp sumToN.cpp sumLoop.cpp
slides 99beer.cpp break.cpp bridgeOfDeath.cpp continue.cpp countingSheep.cpp doWhile.cpp forLoop.cpp grades.cpp ifAndSemi.cpp ifElse.cpp max.cpp rng.cpp scope.cpp shortCircuit.cpp sumLoop.cpp switch.cpp whileLoop.cpp Sections 3.1, 3.2
 
Lab 2: Sequence and selection
HW 0, Wednesday Sept. 19 at 11:00 P.M.
4 Sept. 24
Iteration, while loops, for loops, loop paradigms
9/24 addition.cpp addition2.cpp callByReferenceSwap.cpp maze.cpp overload.cpp sayHi.cpp
9/26 callByReferenceSwap.cpp changeInt.cpp findPrime.cpp globalVariable.cpp runForest.cpp sillySwap.cpp
9/28 helloWorldAppend.cpp helloWorldFile.cpp needClose.cpp nomNomHD.cpp (Beware when running this code!)
slides addition.cpp addition2.cpp callByReferenceSwap.cpp changeInt.cpp findPrime.cpp gobalVariable.cpp identityMatrix.cpp maze.cpp nestedLoop.cpp overload.cpp runForest.cpp sayHi.cpp sillySwap.cpp sumAllToN.cpp sumToN.cpp Sections 3.3, 3.4
 
Lab 3: Iteration
HW 1, Wednesday Sept. 26 at 11:00 P.M.
5 Oct. 1
User-defined functions, procedural abstractions
10/1 fileInBasics.cpp fileInput.cpp readTable.cpp MilitarySpending.txt nums.txt toSum.txt
10/3--Quiz
10/5 arrayAddress.cpp average.cpp cstring.cpp simpleArray.cpp string.cpp stringConcatenation.cpp stringConversion.cpp
10/2--Quiz slides fileInBasics.cpp fileInput.cpp helloWorldAppend.cpp helloWorldFile.cpp needClose.cpp nomNomHD.cpp (Beware when running this code!) readTable.cpp hello.txt lotsaNUMS.txt nums.txt toSum.txt Ch. 4, 5
Quiz
Covers Ch 1-3.2 (up to week 3: if-statements) sample (Note: our quiz will be 15 mins, not 30 mins like this sample.)
Lab 4: User defined functions
HW 2, Wednesday Oct. 3 at 11:00 P.M.
6 Oct. 8
Basic file I/O
10/8 forEach.cpp maxPassArray.cpp maxPassInt.cpp partiallyFilled.cpp reverse.cpp reverseFail.cpp
10/10 gridWorld.cpp lineWorld.cpp oneToAHundered.cpp
10/12 badRecursion.cpp countdown.cpp fibnonacciRecursion.cpp rootFind.cpp story.cpp stringRecursion.cpp
slides arrayAddress.cpp average.cpp cstring.cpp gridWorld.cpp lineWorld.cpp maxPassArray.cpp maxPassInt.cpp partiallyFilled.cpp reverse.cpp reverseFail.cpp simpleArray.cpp string.cpp stringConcatenation.cpp stringConversion.cpp Ch. 6
 
Lab 5: Reference parameters and basic file I/O
flightData.dat
HW 3, Wednesday Oct. 10 at 11:00 P.M.
7 Oct. 15
Arrays, strings
10/15 countdown.cpp dictionarySearch.cpp rootFind.cpp sumToN.cpp
10/17--Midterm 1
10/19 sudokuSolver.cpp tangent.cpp towerHanoi.cpp
10/16--Midterm 1 Ch. 7, Sections 8.1, 8.2
Midterm 1, Covers Ch 1-3.4
(weeks 1-4) sample midterm
Lab 6: Arrays & Strings
 
8 Oct. 22
Recursion
10/22 dateClass.cpp dateConstructor.cpp datePrivate.cpp privateDates.cpp runDate.cpp
10/24 heightsCompare.cpp heights.cpp pointClass.cpp pointClassAdd.cpp pointOverload.cpp
10/26 multiplePrivates.cpp pointFriends.cpp pointFriendsOverload.cpp
10/23 badRecursion.cpp countdown.cpp fibonacciRecursion.cpp rootFind.cpp story.cpp stringRecursion.cpp sudokuSolver.cpp sumToN.cpp tangent.cpp towerHanoi.cpp Ch. 14
 
Lab 7: Recursion
HW 4, Wednesday Oct. 24 at 11:00 P.M.
grades.txt
9 Oct. 29
User defined functions and classes
10/29 memAddress.cpp person.cpp pointerBasics.cpp returnPointer.cpp
10/31 deleteMemory.cpp lostPointer.cpp memoryLeak.cpp newMemory.cpp personV2.cpp
11/2 dynamicArrays.cpp nullptr.cpp personV3.cpp pointerPointers.cpp returnArrays.cpp
slides dateClass.cpp dateConstructor.cpp datePrivate.cpp heights.cpp heightsCompare.cpp multiplePrivates.cpp pointClassAdd.cpp pointClass.cpp pointFriends.cpp pointFriendsOverload.cpp pointOverload.cpp privateDates.cpp runDate.cpp Ch. 10.1-10.3
 
Lab 8: Introduction to objects
HW 5, Wednesday Oct. 31 at 11:00 P.M.
connectFour.cpp
10 Nov. 5
Operator overloading, friend functions, references, const
11/5 classMemoryLeak.cpp classMemoryLeakFixed.cpp destructor.cpp raggedArray.cpp
11/7 callByValue.cpp copyConstructor.cpp copyIssues.cpp placesCopyConstructorRuns.cpp
11/9 copyArray.cpp copyCout.cpp copyVsEquals.cpp overloadEquals.cpp redefiningTypes.cpp thisSelfPointer.cpp
slides deleteMemory.cpp dynamicArrays.cpp lostPointer.cpp memAddress.cpp memoryLeak.cpp newMemory.cpp nullptr.cpp person.cpp personV2.cpp personV3.cpp pointerBasics.cpp pointerPointers.cpp raggedArray.cpp returnArrays.cpp returnPointer.cpp Sections 11.1 - 11.3
 
Lab 9: Operator overloading
HW 6, Wednesday Nov. 7 at 11:00 P.M.
words.txt
pref.txt
pref2.txt
pref3.txt
11 Nov. 12
Pointers and dynamic arrays
11/12 complexPoint.cpp convertClassTypes.cpp dunecat.cpp sports.cpp
11/14 childDestructor.cpp childParent.cpp classScopes.cpp computerConstructor.cpp computerConstructorV2.cpp computerRedefine.cpp
11/16 badMemoryManagement.cpp compileVsRun.cpp dynamicObject.cpp memoryOops.cpp whatMyType.cpp
slides callByValue.cpp classMemoryLeak.cpp classMemoryLeakFixed.cpp copyArray.cpp copyConstructor.cpp copyIssues.cpp copyVsEuqlas.cpp destructor.cpp overloadEquals.cpp placesCopyConstructorRuns.cpp redefiningTypes.cpp thisSelfPointer.cpp Ch. 9, Section 13.1

Lab 10: Pointers and dynamic memory
HW 7, Wednesday Nov. 14 at 11:00 P.M.
heroineQuestV2.cpp
12 Nov. 19
Dynamic memory in class definitions
11/19 arrayQ.cpp cstringQ.cpp fileQ.cpp functionsQ.cpp recursionQ.cpp wordGame.cpp
11/21--Midterm 2
11/20--Midterm 2 Section 11.4, Appendix 7
Midterm 2,
Covers weeks 5 to 8
Midterm 2 study guide
Sample midterm
No Lab (Thanksgiving)  
13 Nov. 26
Inheritance
11/26 dynamicBindingFunctions.cpp dynamicBindingFunctionsV2.cpp incorrectChildFunction.cpp yetAnotherMemoryLeak.cpp
11/28 badTemplates.cpp checkSameType.cpp classTemplate.cpp coutMe.cpp goodSwap.cpp multipleTypes.cpp
11/30 arrays.cpp linkedList.cpp vector.cpp
slides childDestructor.cpp childParent.cpp classScopes.cpp complexPoint.cpp computerConstructor.cpp computerConstructorV2.cpp computerRedefine.cpp convertClassTypes.cpp dunecat.cpp Sections 15.1 - 15.2
 
Lab 11: Dynamic memory in classes
Gar3D.zip
HW 8, Wednesday Nov. 28 at 11:00 P.M.
personDate.cpp ppl.txt
14 Dec. 3
Polymorphism, templates
12/3 arrayCheat.cpp pointerPlaces.cpp stack.cpp
12/5 ClassesAndInheritance.java Example.java HelloWorld.java StrictTypes.java Tools.java
12/7 client.cpp server.cpp
slides badMemoryManagement.cpp compileVsRun.cpp dynamicBindingFunctions.cpp dynamicBindingFunctionsV2.cpp dynamicObject.cpp incorrectChildFunction.cpp memoryOops.cpp whatMyType.cpp yetAnotherMemoryLeak.cpp Section 15.3
 
Lab 12: Advacned classes and Objects
HW 9, Wednesday Dec. 5 at 11:00 P.M.
list.txt listA.txt listB.txt
15 Dec. 10
Extra topics (parallel computing), review
12/10 createThreads.cpp sharingBetweenThreads.cpp waitForThreads.cpp
12/12 prob1.cpp
slides createThreads.cpp ifelse.cpp prob1.cpp prob2.cpp prob3.cpp prob4.cpp sharingBetweenThreads.cpp waitForThreads.cpp TBA
No lab HW 10, Wednesday Dec. 12 at 11:00 P.M.
16 Dec. 17
Finals Week
Monday December 17, 8:00am - 10:00am in Keller 3-210 (normal room)
Tuesday December 18, 6:30pm - 8:30pm in Tate Hall 101 (normal room)
 
Final Exam
study guide
sample final