6.001: WEEKLY OUTLINE FOR STAFF Fall 1998 For Week #4: Tuesday, September 29, 1998 Problem Set Logistics: * PS 3 solutions - to staff & LA's * PS 4 DRAFT -- team programming -- TIME TABLE - Mon/Tues Tutorial (before pset released): Each tutorial set of students is our team unit. Subdivide the team into Rational Team or Complex Team; let students know so when they get pset they know role - Tues Lecture: PS4 issued - Wed. Recitation: focus on quiz review; no PS4 - Fri. Recitation: make sure all know their roles; clarify timetables and expectations; alert to weird weekend. Allocate at least some time so everyone on the team knows how to contact everyone else, and can set strategy for coding. - Mon/Tue: monday class schedule on Tuesday. Hold tutorials but allow open "drop-ins". No explicit team activities, but check tutorial prep and pset understanding/help - Wed. Recitation: allocate AT LEASE 1/2 of section time to team debugging. Preferrable if people can go to the lab and check the integration of their rational/complex packages. - Frid. Recitation: psets due. Each student will submit own writeup by email. QUIZ Logistics * Quiz Review: * Quiz Location * Conflict exam * Staffing: 3 Tutors at each session * Coverage: through PS3 (procedures, pair/list data, HOP, orders of growth). Book through Section 2.2. FINAL EXAM Announced * Wed., Dec. 16, 1:30-4:30, Athletic Center ************************************************************ Lecture #6: Tuesday, Sept. 29 Handouts: Lecture Notes Coverage - Symbolic Data Symbols and Quote Quote and lists - quote "propagates" to the list structure Symbolic Differentiation - importance of data abstraction: alternative implementation - e.g. change syntax - add variable number of arguments - add exponentiation Random scheme syntax/mechanisms to be clear on - variable numbers of arguments ******************************************************************** Recitation #7: Wednesday, Sept. 30 Go over EQ? again. Stress that all bets are off when neither arg is a symbol -- the rule is that EQ? will say things are the same only if there is no way whatsoever to tell them apart. In particular, don't use EQ? on numbers (use = instead) or strings (use string=?). Review cons, list and append with quoted structures, and get them to draw box-and-pointer diagrams for things like: (cons 'a '(b)) (cons '(a) '(b)) (list 'a 'b) (list '(a) '(b)) (append '(a) '(b)) Implementation and experience with MEMQ is a good way to build familiarity with symbols, but also reinforce the list manipulation procedures people should be getting good at. Implementation of EQUAL? is also another good alternative, as it has people walk over trees and do comparisons. You can follow up on the symbolic differentiation example if you like. For example, can talk about change in syntax to infix notation, and impact on code. Another alternative to do is the Representation of Sets example section 2.4.3 ****************************************************************** Lecture #7: Thursday, Oct. 1 Handouts: Lecture Notes Coverage -- Generic Operations Complex Number Arithmetic - rectangular representation/implementation - polar representation/implementation Tagged Data - Manifest Typing Rectangular & Polar complex representation with type tags - stripping tags off to get to underlying rep - adding tags back on return values Generic Operators: operators that work across multiple data reps Type Dispatch Generic constructors Generic operator definitions via apply-generic Packages - local scoping to avoid name conflict - explicit "export" via operation table ******************************************************************** Recitation #8: Friday, Oct. 2 Microquiz - (optional) Examples to help reinforce data abstractions and how apply-generic works. Note that if Wed of next week is spent on quiz review, you will have only one recitation to really do both generic operations and data directed programming -- both of which they need for problem set #4. There is a reasonable "team" example that illustrates how the generic-operation idea in a "payroll" system, where 4 teams can work on this during recitation. See http://www-mtl.mit.edu:80/~boning/ST96/rec11/rec11.html