Week 1
Aug 23 | Intro to course
Introduction to course objectives and plan for the term (slides)
To do: Make sure Python is on your computer
Aug 25 | Intro to Python
Introduction to programming in Python, syntax, conditionals, iteration, functions (slides)
HW1 - Family Simulator
Book chapters 1-5
Week 2
Aug 30 | Python data structures
String manipulation. Lists, tuples, and dictionaries (slides)
Book chapters 6, 8-10
Sep 1 | Manipulating files
Opening, reading, and writing files and handling exceptions (slides)
Book chapter 7
Week 3
Sep 6 | Prototyping
Low vs. high fidelity prototypes, tools for prototyping (slides)
Reading review 1 - Prototyping Debate
Sep 8 | Python data manipulation
Reading, writing, and working with CSV and JSON files; regular expressions (slides)
HW2 - Analyze whiskey
Book chapter 13
Week 4
Sep 13 | Review & Lab session
Review some concepts that will be useful for the current HW (slides)
Sep 15 | Accessing web data with Python
Connecting to the web and downloading files. Using web APIs (slides)
Week 5
Sep 20 | Analyzing data with Pandas
Reading in and manipulating tabular data with Pandas (slides)
Sep 22 | Visualizing data with Pandas
Intro to data visualization and how to generate graphs and charts in Pandas (slides)
Week 6
Sep 27 | Processing (Ramik Sadana)
Intro to Processing and programming simple graphics
HW3 - Restaurant reviews
Sep 29 | Processing (Ramik Sadana)
Advanced Processing, interaction, animation
Week 7
Oct 4 | Intro to Java 1
Object-oriented programming, classes, types, math expressions, I/O, program development (slides)
To do: Make sure the JDK is on your computer
Oct 6 | Intro to Java 2
Conditionals, iteration, random numbers, arrays, API (slides)
HW4 - GPA Calculation
Week 8
Oct 11 | No class - Fall Break
Oct 13 | Lab day
Week 9
Oct 18 | Java and OOP 1
Classes, instance data, methods, constructors, visibility, static (slides)
HW5 - Talk like a Pirate
Oct 20 | Java and OOP 2
Inheritance, abstract classes, interfaces (slides)
Week 10
Oct 25 | Media computation (Mark Guzdial)
Oct 27 | No class
Week 11
Nov 1 | GUIs and event-driven programs 1
Java AWT and Swing, graphics operations, Frames, Panels, Labels, program structure (slides)
HW6 - Here's my Card
Nov 3 | GUIs and event-driven programs 2
Swing event model, handlers & callbacks, buttons, text fields, and dialog boxes (slides)
HW7 - Pick a Color
Reading Review 2 - Picking Pockets on the Lawn
Week 12
Nov 8 | GUIs and event-driven programs 3
Swing layout management, program design and communication (slides)
Nov 10 | GUIs and event-driven programs 4
Swing components: sliders, text areas, combo boxes, choosers, Mouse events, Key events, Timer events (slides)
Week 13
Nov 15 | iOS app development for the Mac (Ramik Sadana)
Reading Review 3 - Prototyping Dynamics
Nov 17 | Prototyping discussion (Betsy DiSalvo)
HW8 - One-armed Bandit
Week 14
Nov 22 | Physical prototyping (Gregory Abowd)
Working with foamcore, glue guns, moldable plastic
Nov 24 | No class - Thanksgiving holiday
Week 15
Nov 29 | Physical prototyping
Arduino, sensors
Dec 1 | Physical prototyping
Arduino, sensors
Week 16
Dec 6 | Physical prototyping
2D and 3D modeling for laserprinting and 3D printing