Massachusetts Institute of Technology
Dept. of Electrical Engineering and Computer Science
Spring Semester, 2008
6.01: Introduction to EECS I

Calendar

Each week has thee types of activities: a 90-minute lecture, a 90-minute software lab, and a 3-hour design lab. All class sections attend the same lecture, on Tuesday from 10:00-11:30 in 26-100. The sections all meet in 34-501, as follows:

  Software lab Design lab
Section 1T 11:30 - 1:00Th 10:00 - 1:00
Section 2T 2:00 - 3:30Th 2:00 - 5:00
Section 3W 11:30 - 1:00F 10:00 - 1:00
Section 4 W 8:30 - 10:00F 7:00 - 10:00

Assignments for each week will be posted on this page Tuesday each week before lecture. They will include a pre-lab assignment due before the design lab, and a post-lab assignment due at the beginning of the following Tuesday lecture. Each design lab begins with a short quiz.

Lecture Software Lab Design Lab
Feb. 5
Big idea: Modeling -- The PCAP framework for coping with complexity
prmitives, means of combination, means of abstraction, procedures, list and list comprehension, linear and logarithmic processes; examples: square roots, exponentiation, polynomial evaluation
Assignment for Week 1
Lecture notes: Feb 5
Course notes for Week 1 Errata
behaviorBrain.py
boxWorld.py
Getting familiar with the 6.01 programming environment; values and roots of polynomials

Homework: Simple expressions and procedures, design lab preparation

Introduction to SoaR; basic robot commands; reading the sonars; robot brains and the transducer programming framework; behaviors and actions
Feb. 12
Big idea: Captuting common patterns
Higher-order procedures as means of captuting common patterns; procedures as returned values; lambda
Assignment for Week 2 Addendum and Correction to Assignment for Week 2
Lecture notes: Feb 12
Course notes for Week 2
code for software lab
code for design lab
Practice with higher-order procedures; implementing sets as procedures

Homework: Procedures and abstraction

Designing non-deterministic behaviors as an example of the PCAP framework
Feb. 19: There is no lecture on Feb. 19 (virtual Monday). Instead, The three main design-lab sections will each run as a one-hour lecture followed by a two-hour software lab. Lab will be in 34-501, as usual. The lecture locations are as follows:
Thursday, Feb 21, 10AM - 11AM, in 32-123
Thursday, Feb 21, 2PM - 3PM, in 32-123
Friday, Feb 22, 10AM - 11AM, in 32-155

Big idea: Modeling with data and data abstraction
Data abstraction; selectors and constructors, classes. Finite state machines.
Assignment for Week 3
Course notes for Week 3
code for software lab
There is no software lab this week. Homework from last week, and explorations from PS1 and PS2 (if you did them) are due at the beginning of desgn lab (this week only). Practice with class definitions data abstraction: A state machine class and a polynomial class.
Feb. 26
Big idea: Modeling with state
modeling with state; objects with local state; encapsulation; object-oriented programming; classes as a means of abstraction; inheritance as a means of capturing common patterns
Assignment for Week 4: Revised! Addendum to Assignment for Week 4
Course notes for Week 4
Lecture notes Week 4 (including correction from lecture)
code for labs
some worlds for testing Bug2
Object oriented programming: polynomials

Homework: Object oriented programming

Sequential behavior and termination (i.e., can a robot dance?)
March 4
Big idea: Modeling and abstraction with signals
Linear time-invariant systems; difference equations; delay-adder-gain block diagram; the dealy operator, system functions, PCAP framework for systems and signals
Assignment for Week 5 (Revised version)
Software lab addendum
Course notes for Week 5
Lecture notes Week 5
Code for labs
SystemFunctionHomework.py (please read this).
Difference equations.

Homework:Solving difference equations.

Driving down a corridor using optical sensors.
March 11
Big idea: Qualitative behavior of LTI systems
Pole in the complex plane; stability; feedback and Black's formula;
Assignment for Week 6
Code for software lab
Code for design lab
Course notes for week 6
Lecture notes week 6
Exploration 6
Exploration 6 Addendum
Code for Exploration
Building manipulating system functions and finding poles Stability and improved feedback control system for driving down a corridor
March 18
Big idea: Circuits and constraint models
Input-output models vs. constraint models; resistor networks as constraint systems; Constitutive equations (Ohm's law) and conservation laws (KCL)
Assignment for Week 7
Course notes for week 7
Lecture notes week 7
Building circuits
Ex Camera Midterm March 19 (see Assign 6 for details)
Sample Midterm and solutions
Midterm solutions
No tutor problems
More building circuits.
No nanoquiz; no homework
Spring Break: March 24-28
April 1
Big idea: The PCAP framework for circuits, and modeling
1-ports and Thévenin equivalence as a means of abstraction; ideal op-amp as a 3-terminal device; 2-port model of the ideal op-amp; simple circuits with op-amps; Black and the negative feedback amplifier; the paradox of the input-output model vs. the constraint model
Assignment for week 8
Revised Design Lab for week 8
What you need to write up for week 8 (matches revised design lab)
Code for software lab
Course notes to week 8
Lecture notes for week 8
Exploration for week 8
Practice with simple circuits (both by hand and with software); computing Thévenin equivalents

Homework:Circuit practice

Building circuits; measuring voltages and currents; motor driver using voltage dividers
April 8
Big idea: Multiple models and modeling perspectives
need for dynamic analysis; difference equation model of the op-amp
Software lab for week 9
Design lab for week 9
Lecture notes for week 9
Code for software lab
Exploration for week 9
Adding op-amps to the constraint solver

Homework: Op-amp circuits

Designing an analog robot head controller using op-amps.
April 15
Big idea: Search and planning
defining search spaces; depth-first search; breadth-first search; dynamic programming.
Software lab for week 10
Course notes for week 10
Lecture notes for week 10
search.py for software lab
Design lab for week 10
Code for design lab
Code for homework
Exploration for week 10
Search problems

Homework: More search problems

Design a control system for turning the robot head towards a light.
April 22
Patriots' Day Holiday: No lecture
no software lab this week Robot path planning
Pset for week 11
Code for week 11
April 29
Big idea: Probabilistic models
basic discrete probability; conditional probability; Bayes rule; sequential models.
Course notes for week 12
Lecture notes for week 12
Assignment for week 12
Code for software lab
Hidden Markov Models

Homework: Modeling the sonar sensors

Final project: moving towards a light
May 6
Big idea: recursive state estimation
Code for software lab
Software lab assignment
Code for design lab
Design lab assignment
Course notes
Lecture slides
Final exam announcement and practice final (revised)
Practice final solutions
Final review notes
Zip file of all nano-quizzes
General state estimation Final project: combining localization and light detection.
May 13
Big idea: There really are big ideas
Course wrap up.
Lecture slides
Finish Final project no design lab this week
Ex-camera final exam: Wednesday, May 21, 1:30PM - 7:30PM