CS 1: Winter 2015

**Subject to change with minimal notice.**

- Monday, January 5. Lecture 1: Introduction. CS in arts, sciences, engineering. Simple programs and the program counter. Short assignment 1 out.
- Wednesday, January 7. Lecture 2: Commands and function calls.
- Friday, January 9. Lecture 3: Variables, memory, data types, expressions, and operators. Short assignment 2 out.

- Monday, January 12. Lecture 4: Boolean expressions. Flow of control: while-loops, if-statements, else-statements, if-ladders. Animations. Short assignment 3 out.
- Wednesday, January 14. Lecture 4, continued: if-ladders, animations. Lecture 5: Function definitions and function calls. Built-in functions. Functions that return random numbers. Local and global variables. More on functions. Debugging. Short assignment 4 out.
- Thursday, January 15 (x-hour). Lecture 5, continued.
- Friday, January 16. Lecture 6: Mouse and keyboard input. Lab assignment 1 out.

- Monday, January 19.
*No class*: MLK Day. Recitation sections held at their usual times. - Wednesday, January 21. Lecture 7: Boolean expressions. Lists and for-loops. Short assignment 5 out.
- Thursday, January 22 (x-hour). Lecture 8: More about lists. Nested loops. Selection sort. Lab assignment 1 checkpoint due.
- Friday, January 23. Lecture 9: Physics and physical simulation. More about lists.

- Monday, January 26. Lecture 9, continued. Lecture 10: Introduction to classes and objects. Lists of objects. Lab assignment 1 due.
- Wednesday, January 28. Lecture 10, continued: More on classes and objects.
- Thursday, January 29 (x-hour). Optional review session.
**Exam 1, 6:00 to 9:00 pm, LSC 100.** - Friday, January 30. Lecture 11: Object-oriented design example, part 1: The Game of Life. Short assignment 6 out.

- Monday, February 2. Lecture 11, continued: Object-oriented design example, part 2. Lab assignment 2 out.
- Wednesday, February 4. Lecture 11, continued: Object-oriented design example, part 3. Short assignment 7 out.
- Thursday, February 5 (x-hour). Lecture 12: Reading and writing files. Lecture 13: Recursion. Lab assignment 2 checkpoint due.
- Friday, February 6.
*No class.*Carnival holiday.

- Monday, February 9. Lecture 13, continued: More on recursion. Lecture 14: Sorting: insertion sort, merge sort. Lab assignment 2 due. Lab assignment 3 out.
- Wednesday, February 11. Lecture 15: Analysis of algorithm running times. Big-O notation. Binary search vs. linear search. Short assignment 8 out.
- Thursday, February 12.
*No class.*Lab assignment 3 checkpoint due. - Friday, February 13. Lecture 15, continued. Lecture 16: Analysis of sorting algorithms.

- Monday, February 16. Lecture 17: Linked lists. Lab assignment 3 due.
- Wednesday, February 18. Lecture 17, continued: More on linked lists.
- Thursday, February 19 (x-hour). Optional review session.
**Exam 2, 6:00 pm to 9:00 pm, LSC 100.** - Friday, February 20. Lecture 18: Dictionaries. Short Assignment 9 out.

- Monday, February 23. Lecture 19: Graphs: representation, breadth-first seach. Lab assignment 4 out.
- Wednesday, February 25. Lecture 20: Cryptography.
- Thursday, February 26.
*No class.*Lab assignment 4 checkpoint due. - Friday, February 27. Lecture 20, continued: More cryptography.

- Monday, March 2. Finish cryptography. Lecture 21: Computer systems. Lab assignment 4 due. Lab assignment 5 out.
- Wednesday, March 4. Lecture 22: Computer circuits.
- Thursday, March 5.
*No class.*Lab assignment 5 checkpoint due. - Friday, March 6. Computer circuits, continued.

- Monday, March 9. Limits of computation. Lab assignment 5 due.
- Wednesday, March 11. Review session for final exam, 10:00 am to 12:00 noon, LSC 100.
- Friday, March 13.
**Final exam, 11:30 am to 2:30 pm, LSC 100.**