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. Object-oriented design example, part 2. Lab assignment 2 out.
- Wednesday, February 4. Object-oriented design example, part 3. Reading and writing files.
- Thursday, February 5 (x-hour). The call stack. Recursion and the recursion tree. Infinite recursion. Lab assignment 2 checkpoint due.
- Friday, February 6.
*No class.*Carnival holiday.

- Monday, February 9. More on recursion. Sorting: selection sort, insertion sort, merge sort. Lab assignment 2 due. Lab assignment 3 out.
- Wednesday, February 11. Analysis of algorithm running time. Big-O notation. Binary search vs. linear search. Analysis of sorting algorithms.
- Thursday, February 12.
*No class.*Lab assignment 3 checkpoint due. - Friday, February 13. More on analysis of running time.

- Monday, February 16. Linked lists. Lab assignment 3 due.
- Wednesday, February 18. 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. Dictionaries.

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

- Monday, March 2. TBA. Lab assignment 4 due. Lab assignment 5 out.
- Wednesday, March 4. TBA.
- Thursday, March 5.
*No class.*Lab assignment 5 checkpoint due. - Friday, March 6. TBA.

- Monday, March 9. TBA. Lab assignment 5 due.
- Wednesday, March 11 or Thursday, March 12. Review session for final exam, time and location TBA.
- Friday, March 13.
**Final exam, 11:30 am to 2:30 pm, location TBA.**