15-112 Schedule
Fall 2014

Week Dates Event / Topics Quizzes / Homeworks / Practice
Week
#1
Mon 25-Aug
to
Fri 29-Aug
Getting Started
Types, Literals, Variables, Operators, and Expressions
Program Structure and Control Flow, part 1: Functions
Optional/Advanced: Bitwise Operators + 2's Complement
Optional/Advanced: How to Build a Computer (from Gates to CPU's)
hw1 (due Sun 31-Aug at 10pm)
practice-thru-week1 (due never)
Week
#2
Mon 1-Sep
to
Fri 5-Sep
Conditionals
Loops
Optional/Advanced: Gaussian Elimination + Power Sum Polynomials
Fri 5-Sep: Deadline for xfer to 15-110
quiz1 (on Thu 4-Sep, thru week1+hw1)
hw2 (due Sun 7-Sep at 10pm)
Week
#3
Mon 8-Sep
to
Fri 12-Sep
Top-Down Design
Style
Testing and Debugging
Graphics in Tkinter
Optional/Advanced: How to Build a CPU + Assembly Programming
quiz2 (on Thu 11-Sep, thru week2+hw2)
hw3 (due Sun 14-Sep at 10pm)
Week
#4
Mon 15-Sep
to
Fri 19-Sep
Strings
Optional/Advanced: Countability and the Halting Problem
Optional/Advanced: Complexity and NP-Completeness
quiz3 (on Thu 18-Sep, thru week3+hw3)
hw4 (due Mon 22-Sep at 10pm)
Week
#5
Mon 22-Sep
to
Fri 26-Sep
1d Lists and Tuples
Basic Interactive Graphics, Part 1
Exceptions
Optional/Advanced: Heaps, HeapSort, RadixSort
quiz4 (on Thu 25-Sep, thru week4+hw4)
hw5 (due Sun 28-Sep at 10pm)
Week
#6
Mon 29-Sep
to
Fri 3-Oct
Efficiency
Optional/Advanced: Heaps, PQ's, and Huffman Coding
quiz5 (on Thu 2-Oct, thru week5+hw5)
hw6 (due Sun 5-Oct at 10pm)
Week
#7
Mon 6-Oct
to
Fri 10-Oct
2d Lists
Sets and Maps (Dictionaries)
Basic Interactive Graphics, Part 2
Optional/Advanced: Combinatorial Iterators (Krypto, Cryptarithms, ...)
quiz6 (on Thu 9-Oct, thru week6+hw6)
hw7 (due Sun 12-Oct at 10pm)
Week
#8
Mon 13-Oct
to
Fri 17-Oct
Midterm Review
Thu 16-Oct: Midterm #1
Fri 17-Oct: Mid-Semester Break (No Classes)
no quiz this week
no hw this week
Week
#9
Mon 20-Oct
to
Fri 24-Oct
Object-Oriented Programming (OOP)
Optional/Advanced: Markov Chains
Sat 25-Oct (10am-4pm): Microsoft Kinect Hack Day
no quiz this week
hw8 (due Mon 27-Oct at 10pm)
Week
#10
Mon 27-Oct
to
Fri 31-Oct
Recursion
Optional/Advanced: 1-Player + 2-Player AI
quiz7 (on Thu 30-Oct, thru week9+hw8)
hw9 (due Wed 5-Nov at 8pm)
Week
#11
Mon 3-Nov
to
Fri 7-Nov
Functions Redux
File IO
Event-Based Programming and Animation
Miscellaneous Tkinter/Python Demos
Quick Tour of Python Libraries, Modules, and Applications
Term Project Assignment
Optional/Advanced: Webapps + Git
quiz7-retake (on Tue 4-Nov, thru week9+hw8)
quiz8 (on Thu 6-Nov, thru week10+hw9)
hw10 (due Sun 9-Nov at 10pm)
Week
#12
Mon 10-Nov
to
Fri 14-Nov
Midterm Review
Thu 13-Nov: Midterm #2
Optional/Advanced: Natural Language Processing (NLP)
no more quizzes this semester
no more hw's this semester
Week
#13
Mon 17-Nov
to
Fri 21-Nov
Lecture+Lab: Monte Carlo Methods
Lecture+Lab: Steganography
Mini-Lectures (Attend any 1 of your choice):
      Tue 8pm: A: Data Analysis + Data Visualization in R [Sunny]
      Tue 9pm: B: Graph Algorithms [Evan + Ben]
      Wed 6pm: C: Quantum Computing [Anil]
      Wed 7pm: D: Advanced Image Processing [Tim]
      Wed 8pm: E: Parallel alg's/functional programming [Sunny]
      Wed 9pm: F: Machine Learning [Xiaote]
      Thu 8pm: G: Robotics [Alex + Andrew]
      Thu 9pm: H: Arduino and Raspberry Pi [Tommy]
tp1 (due Wed 19-Nov at 8pm)
Week
#14
Mon 24-Nov
to
Fri 28-Nov
Optional/Bonus: Cryptography [Jordan]
Wed 26-Nov to Fri 28-Nov: Thanksgiving Holiday (No Classes)
tp2 (due Wed 26-Nov at 8pm)
Week
#15
Mon 1-Dec
to
Fri 5-Dec
Term Project User-Study-a-thon
Term Project Last-Minute Office Hours
Thu 4-Dec at 8pm: Term Project Presentations
tp3 (due Thu 4-Dec at 4:30pm)
Finals
Mon 8-Dec
to
Fri 12-Dec
Tue 9-Dec, 5:30pm - 8:30pm: Final Exam
   DH 2210: Andrew Id's from AA*** to HY***
   DH 2315: Andrew Id's from IC*** to RN***
   DH 2302: Andrew Id's from RO*** to VR***
   DH 1212: Andrew Id's from VS*** to ZZ***
Optional/Advanced: How to write a programming language