Introduction to Programming in C++
CSC 160.01 — Spring 2014
T 9–10:15am; Th. 11am–12:15pm, LSB 312
Lab: T 10:25am–12:15pm, LSB 312
Instructor: Henry Feild, Ph.D.
T 9–10:15am; Th. 11am–12:15pm, LSB 312
Lab: T 10:25am–12:15pm, LSB 312
Instructor: Henry Feild, Ph.D.
Schedule
Note, some Mondays appear on the schedule when a programming assignment is due. We don't have class those days, of course.
Date | Topic | Readings | Assignments | |
---|---|---|---|---|
Jan. 28 | Setting up | Lab 1 | ||
Jan. 30 | Planning software | Basics, CLI, & Planning | ||
Feb. 4 | Variables | Variables | PA1 out, Lab 2 | |
Feb. 6 | Input/output | IO | ||
Feb. 11 | Conditionals | Conditionals | Lab 3 | |
Feb. 13 | Quiz 1; Test cases | |||
Feb. 17 | — | PA1 due | ||
Feb. 18 | Structs | Structs | PA2 out, Lab 4 | |
Feb. 20 | Functions | Functions | ||
Feb. 25 | No class—Faculty/student internship conference day | |||
Feb. 27 | Exam 1 | |||
Mar. 4 | More functions | Lab 5 | ||
Mar. 6 | Documentation | |||
Mar. 10 | — | PA2 due | ||
Mar. 11 | Pointers | Pointers and Drawing memory | Questions on reading due, PA3 out, Lab 6 | |
Mar. 13 | Arrays and For loops | |||
Mar. 19, 21 | No class—Spring break | |||
Mar. 25 | Loops | Loops | Questions on reading due; Lab 7 |
|
Mar. 27 | Quiz 2; Arrays and loops | Arrays (Secs. 1—5) | Arrays | |
Apr. 1 | 2D arrays | Arrays (Sec. 6) | Lab 8 | |
Apr. 3 | Double for loops | |||
Apr. 7 | — | PA3 due | ||
Apr. 8 | Debugging | Debugging | Lab 9 | |
Apr. 10 | Exam 2 | |||
Apr. 15 | File IO | File IO | PA4 out, Lab 10 | |
Apr. 17 | Object Oriented Programming | OOP | ||
Apr. 21 | — | PA 4 due | ||
Apr. 22 | More OOP | PA5 out, Lab 11 | ||
Apr. 24 | Searching | Searching | ||
Apr. 29 | Sorting | Sorting | Lab 12 | |
May 1 | Quiz 3; Graphical User Interfaces | GUI | ||
May 5 | — | PA5 due | ||
May 6 | Bringing it all together | PA6 out, Lab 13 | ||
May 8 | Review | |||
May 12 | — | PA6 due | ||
May 15 8–10am |
Final Exam |
Assignments
Programming Assignments
Each programming assignment is worth 10 points. They will be listed below as they become available.
- PA1: Notes program (due: Feb. 17)
- PA2: Notes program II (due: Mar. 10)
- PA3: Notes program III (due: Apr. 7)
- PA4: Notes program IV (due: Apr. 21)
- PA5: Notes program V (due: May 5)
- PA6: Tic-tac-toe (OPTIONAL) (due: May 12)
Labs
Each lab is worth 5 points. They will be listed below as they become available.
- Lab 1: Basics
- Lab 2: Planning a program
- Lab 3: Guessing game
- Lab 4: Guessing game II
- Lab 5: working on PA2
- Lab 6: Pointers and Arrays
- Lab 7: Loops and Arrays
- Lab 8: working on PA3
- Lab 9: Testing and debugging
- Lab 10: File IO
- Lab 11: Object Oriented Programming
- Lab 12: Working on PA5
- Lab 13: GUIs. Use this file: notes.cpp
Lecture Notes
- Jan. 30 — TSP, Class exercise, conversion.cpp
- Feb. 4 — Notes, TSP, Class exercise, conversion.cpp
- Feb. 6 — Notes, io.cpp (the TSP answers are in there, too)
- Feb. 11 — TSP, Notes, conditionals.cpp, conversion.cpp
- Feb. 13 — Quiz answers, notes
- Feb. 18 — TSP answers, notes, example code for structs and functions
- Feb. 20 — TPS answers, notes, example code for functions (cpp), conversion program with function (cpp)
- Mar. 4 — Notes, pass-by-ref.cpp
- Mar. 6 — TPS answers, Notes, Difficult to read code (pass-by-ref.cpp), Adding functions to a program (calculator.cpp)
- Mar. 11 — Notes, pointers.cpp, exercise.cpp
- Mar. 13 — TPS answers and notes
- Mar. 25 — TPS answers and notes, loops.cpp
- Mar. 27 — Quiz answers and notes, arrays.cpp
- Apr. 1 — 2d-arrays.cpp
- Apr. 8 — Notes TPS solutions unit-testing.cpp
- Apr. 15 — Notes, PA3 solutions, Lab 10 solutions
- Apr. 17 — Notes, TPS Solutions, oop.cpp
- Apr. 22 — Notes, TPS Solutions, main.cpp, Person.h, Person.cpp
- Apr. 24 — Notes, TPS Solutions
- Apr. 29 — Notes
- May 8 — Notes, PA6 example output
Topics
- The command line interface
- Basics
- Getting set up
- Style and documentation
- Planning
- Variables
- Input/Output
- Conditionals/Switch statements
- Functions
- Structs
- Pointers
- Loops
- Arrays
- File IO
- Object-Oriented Programming (OOP)
- Searching
- Sorting