15-112 Schedule
Fall 2011
Week Dates Event / Topics Quizzes / Labs / Homeworks
Week
#1
Mon 29-Aug
to
Fri 2-Sep
Getting Started
Types, Literals, Variables, Operators, and Expressions
lab1 (due Sun 4-Sep at 10pm)
hw1 (due Wed 7-Sep at 10pm)
Week
#2
Mon 5-Sep
to
Fri  9-Sep
Program Structure and Control Flow, part 1:
    Functions, Conditionals, Loops
quiz1 (on Thu 8-Sep, through wk1+hw1)
lab2 (due Wed 14-Sep at 10pm)
Week
#3
Mon 12-Sep
to
Fri 16-Sep
Problem-Solving with Top-Down Design
Program Properties, part 1: Efficiency
practice-thru-week-3 (due never)
quiz2 (on Thu 15-Sep, through wk2+lab2)
hw2 (due Sun 18-Sep at 10pm)
Week
#4
Mon 19-Sep
to
Fri 23-Sep
Program Properties, part 2: Style
Sequences, part 1: Strings
practice-thru-week-4 (due never)
lab3 (due Wed 21-Sep at 10pm)
quiz3 (on Thu 22-Sep, through wk3+lab3)
contest1 (on Sat 24-Sep)
hw3 (due Thu 29-Sep at 10pm)
Week
#5
Mon 26-Sep
to
Fri 30-Sep
Program Structure and Control Flow, part 2: Exceptions
Program Properties, part 3: Correctness + Debugging
Sequences, part 2: 1d Lists + Tuples
practice-thru-week-5 (due never)
quiz4 (on Thu 29-Sep, through wk4+hw3)
lab4 (due Sun 2-Oct at 10pm)
Week
#6
Mon 3-Oct
to
Fri 7-Oct
Sequences, part 3: 2d Lists
Case Studies:  wordSearch, connect4, matrices (optional)
quiz5 (on Thu 6-Oct, through wk5+lab4)
hw4 (due Mon 10-Oct at 10pm)
Week
#7
Mon 10-Oct
to
Fri 14-Oct
Sets + Maps (Dictionaries)
Optional: Monte Carlo Methods

Optional: Combinatorial Iterators
quiz6 (on Thu 13-Oct, through wk6+hw4)
lab5 (due Tue 18-Oct at 11:59pm)
Week
#8
Mon 17-Oct
to
Fri 21-Oct
Quick Tour of Python Libraries, Modules, and Applications
Programming with a Social Conscience
Term Project Assignment
Thu 20-Oct: Midterm #1
midterm1-practice (due never)
midterm1 (on Thu 20-Oct, through wk7)
Week
#9
Mon 23-Oct
to
Fri 28-Oct
Programming Paradigms 1: Event-Based Programming
     Graphics + Animations
     Case Studies:  Snake, drawStar

     Miscellaneous Python / Tkinter Demos (Optional)
     Optional: Making and Displaying Mazes
practice-thru-week-9 (due never)
quiz7 (on Thu 27-Oct, through wk9/Snake)
lab6 (due Sun 30-Oct at 10pm)
Week #10 Mon 30-Oct
to
Fri 4-Nov
Programming Paradigms 2: Functional Programming
     Recursion
     Optional: Higher-Order Functions, Map, Filter, Reduce
     Optional: Backtracking (Maze Solving, N-Queens)
practice-thru-week-10 (due never)
quiz8-practice (due never)
quiz8 (on Thu 3-Nov, through wk10/Rec'n)
hw5 (due Sun 6-Nov at 10pm)
Week
#11
Mon 7-Nov
to
Fri 11-Nov
Programming Paradigms 3: Object-Oriented Programming
     Writing Classes
practice-thru-week-11 (due never)
quiz9 (on Thu 10-Nov, through wk10/Rec'n)
No hw (Open time for term projects)
Week
#12
Mon 14-Nov
to
Fri 18-Nov
Programming Paradigms 4: Web Programming
     Optional: Client-Server (with Google App Engine) and Peer-to-Peer
     Optional: Simple AI for One-Player and Two-Player Games 
practice-thru-week-12 (due never)
quiz9-redux (on Thu 17-Nov)
Week
#13
Mon 21-Nov
to
Fri 25-Nov
Tue 22-Nov: Midterm #2
Wed 23-Nov to Fri 25-Nov:  Thanksgiving Holiday (No Classes)
midterm2 (on Tue 22-Nov, through wk10)
Week
#14
Mon 28-Nov
to
Fri 2-Dec
Term Projects + Additional Topics
     Optional: How a Computer Works
     Writing Classes (redux)
hw6 (due Fri 9-Dec at 10pm)
Week
#15
Mon 5-Dec
to
Fri 9 Dec
Term Projects + Additional Topics
     How a Programming Language Works
     Term Project Presentations
term project (due Wed 7-Dec at 10pm)
contest2 (on Sat 10-Dec)
final exam practice (due never)
--- Mon 12-Dec
to
Fri 16-Dec
Final Exam (Mon 12-Dec, 5:30pm - 8:30pm, UC McConomy)