CS 1: Winter 2015
Subject to change with minimal notice. Week 1: Program structure
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. Week 2: Flow of control, local and global variables, debugging, and user input
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. Week 3: Lists, sorting, and physics
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. Week 4: Physics and objects
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. Week 5: Classes, objects, and recursion
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. Week 6: Recursion and analysis
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.
Week 7: Linked lists and dictionaries
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.
Week 8: Graphs and cryptography
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.
Week 9: TBA
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.
Week 10: Wrap-up
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.