All items are tentative and subject to change
Date | Lecture | Assigned Reading | Assignment Due Dates | |
---|---|---|---|---|
Week #1 |
||||
01/06 | What this class offers you, what your responsibilities are, and how we communciate with computers |
Rao Lesson 1 (pp. 1-15) Rao Lesson 2 (pp. 17-29) If you don't yet have the textbook, start here: MIT Lecture 1 or Miller Lecture 1 |
||
01/08 | How do we store information in a computer? What is good programming style? |
Rao Lesson 3 (pp. 31-47 + 58-59) or Miller Lecture 2 |
||
01/10 |
How do computers interact with users? How do we calculate new information? |
Rao Lesson 5 (pp. 85-91, 104-111) or MIT Lecture 2 |
Assignment #1 due Sunday, 01/12 by 11:59 p.m. (TEACH) | |
Week #2 |
||||
01/13 |
How do computers make decisions? (conditionals) How to design a program before writing code How can we guard against user mistakes? |
Rao Lesson 5 (pp. 92-100) Rao Lesson 6 (pp. 113-127) |
||
01/15 |
More decision making (conditional statements) Assignment 2 Design and testing How do we handle invalid input? How can we generate random numbers? (will cause a compiler error) (the error is fixed!)
Rao pp. 40 (Booleans) |
Rao pp. 41 (characters) Rao pp. 122-125 (switch statement) Random numbers
| | |
01/17 | How can we do something over and over and over? (loops) More decision making (conditional statements) Working with words and text (strings) Generating better random numbers |
Rao Lesson 6 (pp. 128-142) Rao pp. 79-81 (strings) time() Escape sequences Miller Lecture 5 |
Assignment #2 Design due Sunday, 1/19 by 11:59 p.m. (Canvas) | |
Week #3 |
||||
01/20 | No School, Martin Luther King, Jr. Day | |||
01/22 | More ways to repeat computation with ease (loops) How can we catch and correct errors (bugs)? |
Rao Lesson 6 (pp. 128-145) Miller Lecture 5 |
Assignment #2 Peer Review due Wednesday, 01/22 by 11:59 p.m. (Canvas) | |
01/24 | What do we do when things go wrong? How can we use the same code in different places? (functions) |
Rao Lesson 7 (pp. 151-158, 168-169) | Assignment #2 due Sunday, 01/26 by 11:59 p.m. (TEACH) | |
Week #4 |
||||
01/27 | How do functions make programming easier? |
Rao Lesson 7 (pp. 151-158, 168-169) Miller Lecture 3 |
||
01/29 | Preparing for Midterm #1 |
|||
01/30 | Midterm #1 Review, 6-7 p.m. in KEC 1001 | |||
01/31 | Midterm #1 | Assignment #3 Design due Sunday, 02/02, by 11:59 p.m. (Canvas) | ||
Week #5 |
||||
02/03 | What we learned from Midterm #1 |
|||
02/05 | How can functions make persistent changes? (references) |
Rao Lesson 7 (pp. 163, 166-167) Rao Lesson 8 (pp. 205-210) |
Assignment #3 Peer Review due Wednesday, 02/05 by 11:59 p.m. (Canvas) | |
02/06 | Study session (week 5)
6-7 p.m. in LINC 268 |
|||
02/07 | Working with pointers |
Rao Lesson 8 (pp. 177-186) Pointers vs. references References in C++ |
Assignment #3 due Sunday, 02/09 by 11:59 p.m. (TEACH) | |
Week #6 |
||||
02/10 | Adapting when data storage isn't known in advance (dynamic memory allocation) |
Rao Lesson 8 (pp. 187-204) Memory allocation: new and delete The stack and the heap Pass a reference to a pointer |
||
02/12 | Review of references, pointers, and dynamic memory management |
Rao Lesson 8 (pp. 187-204) Memory allocation: new and delete The stack and the heap |
||
02/13 | Study session (week 6)
6-7 p.m. in LINC 268
|
|||
02/14 | Static arrays and C-style strings |
Rao Lesson 4 (pp. 63-71, 76-79) Rao Lesson 7 (pp. 165-166) C-style strings C-style string functions |
Assignment #4 Design due Sunday, 02/16, by 11:59 p.m. (Canvas) | |
Week #7 |
||||
02/17 | Using arrays with functions; dynamic arrays |
Rao Lesson 7 (pp. 165-166) Rao Lesson 8 (pp. 189-198) |
||
02/19 | Multidimensional arrays |
Rao Lesson 4 (pp. 71-74) Rao Lesson 6 (pp. 145-146) |
Assignment #4 Peer Review due Wednesday, 02/19 by 11:59 p.m. (Canvas) | |
02/20 | Study session (week 7)
6-7 p.m. in LINC 268 |
|||
02/21 | Create your own data types! |
Structs | Assignment #4 due Sunday, 02/23 by 11:59 p.m. (TEACH) | |
Week #8 |
||||
02/24 | Divide and conquer: recursion |
Rao Lesson 7 (pp. 159-161) Miller Lecture 8 |
||
02/26 | Preparing for Midterm #2 |
|||
02/27 | Midterm #2 Review,
6-7 p.m. in LINC 228
|
|||
02/28 | Midterm #2 (different room: LINC 100) | Assignment #5 Design due Sunday, 03/01, by 11:59 p.m. (Canvas) | ||
Week #9 |
||||
03/02 | What we learned from Midterm #2 |
|||
03/04 | Recursive data structures: linked lists |
Miller Lecture 8 | Assignment #5 Peer Review due Wednesday, 03/04 by 11:59 p.m. (Canvas) | |
03/05 | Study session (week 9)
6-7 p.m. in LINC 268
|
|||
03/06 | Recursive data structures: trees |
Miller Lecture 8 | Assignment #5 due Sunday, 03/08 by 11:59 p.m. (TEACH) | |
Week #10 |
||||
03/09 | Command-line arguments How to read and write to files |
Command-line arguments Miller Lecture 4 - file I/O |
||
03/11 | C++ Programs in Space |
|||
03/13 | Review for the final exam
|
Assignment #6 due Saturday, 03/14 by 11:59 p.m. (TEACH) | ||
03/16 (Monday) Final Exam: 6:00 - 7:50 p.m. on Canvas |