Subject to change with minimal notice. Short assignments will be posted as they go out.
Monday, March 27. Lecture 1: Introduction. CS in arts, sciences, engineering. Simple programs and the program counter. Project Python reading: Chapter 1, Functions, abstraction, and style. Short assignment 1 out.
Wednesday, March 29. Lecture 2: Commands and function calls.
Friday, March 31. Lecture 3: Variables, memory, data types, expressions, and operators. Project Python reading: Chapter 2, Variables and expressions. Note: The material in the lecture notes and in Project Python does not entirely agree. That's because this chapter of Project Python is for Python 2. The lecture notes are for Python 3, and where they disagree, they take precedence over Project Python. Short assignment 2 out.
Monday, April 3. Lecture 4: Flow of control: while-loops, boolean expressions, if-statements, else-statements, if-ladders. Animations. Project Python reading: Chapter 3, Loops and condidtions. Note: You can skip over the part about robots. It doesn't seem to work, anyway. Also, we haven't seen return statements yet, so the last part of the chapter might not make sense to you yet. Short assignment 3 out.
Wednesday, April 5. Lecture 5: Function definitions and function calls. Built-in functions. Functions that return random numbers. Local and global variables. Debugging. Project Python reading: Chapter 5, Parameters, return values, and scope. Short assignment 4 out.
Thursday, April 13 (x-hour). Optional session for review and drills.
Wednesday, April 19. Lecture 10, continued. More on classes and objects.
Thursday, April 20 (x-hour). Optional review session. Exam 1, 6:00 to 9:00 pm, LSC 100.
Monday, April 24. Lecture 11, continued: Object-oriented design example, part 2. Lab assignment 2 out.
Wednesday, April 26. Lecture 11, continued: Object-oriented design example, part 3. Lab assignment 2 checkpoint due.
Thursday, April 27 (x-hour). Optional session for review and drills.
Monday, May 1. More on recursion. Sorting: insertion sort, merge sort. Lab assignment 2 due. Lab assignment 3 out.
Wednesday, May 3. Sorting, continued. Analysis of algorithm running times. Big-O notation. Binary search vs. linear search. Lab assignment 3 checkpoint due.
Thursday, May 4 (x-hour). Optional session for review and drills.
Friday, May 5. Analysis of sorting algorithms.
Monday, May 8. Linked lists. Lab assignment 3 due.
Wednesday, May 10. More on linked lists.
Thursday, May 11 (x-hour). Optional review session. Exam 2, 6:00 pm to 9:00 pm, LSC 100.
Friday, May 12. Dictionaries.
Monday, May 15. Graphs: representation, breadth-first search. Lab assignment 4 out.
Wednesday, May 17. Cryptography. Lab assignment 4 checkpoint due.
Thursday, May 18 (x-hour). Optional session for review and drills.
Friday, May 19. More cryptography.
Monday, May 22. Finish cryptography. Computer circuits. Lab assignment 4 due. Lab assignment 5 out.
Wednesday, May 24. Computer circuits, continued. Lab assignment 5 checkpoint due.
Thursday, May 25 (x-hour). Optional session for review and drills.
Friday, May 26. Limits of computation.
Monday, May 29. No class: first day of split reading period. Lab assignment 5 due.
Wednesday, May 31. Optional review session for final exam, 1:30 pm to 3:00 pm, LSC 100.
Saturday, June 3. Final exam, 3:00 pm to 6:00 pm, location TBA.