Recent Changes - Search:

Test

edit SideBar

2011

Lab 0 is given out on the first day of class and contains almost no programming and must be completed before the first real lab. I think it makes more sense to start with lab 0 (make obligatory CS joke to students) so that labs match weeks (lab 1 is on Week 1 material...) I've listed labs here with the week they cover; in 2011 the lab is on the final day of the "week", "weeks" start on wednesdays.

Currently lab topics are mostly copies from 2010 for reference...

2011 Topics

  1. "Atomic Data" [numbers, strings, images, booleans], predicates, simple functions, function composition, 1st design recipe [contracts/signatures; header; examples/tests; body], simple World programs
    • reading: HTDP/2e 1, 2.1-2.3
    • lab: [individual, Lab 0] DrRacket as a calculator; non-programming algebra function tables; same functions in Racket; check-expect; vocabulary [atomic expression, constant, function, parameters, function calls, arguments]. Only two, one-line functions are written, all the design steps (signature, header, examples) are provided. This lab is due BEFORE the first real lab session.
    • lab: [individual for Keith at least due to Labor Day killing the first lab for my sections!!] Using DrRacket: stepper, check syntax, indentation, how errors are reported by DrRacket; images, function composition. Practice with evaluation semantics??
  2. conditionals, intervals & enumerations, simple (atomic) itemizations.
    • reading: 2.4
    • discuss: Jeanette Wing Computational Thinking
    • lab: [pairs] , conditionals, intervals & enumerations, simple (atomic) itemizations. World programming.
  3. basic structures of atomic data ["Compound Data"], structures containing structures. "Mixtures" i.e. itemizations of structs [Pascal variant records, Java interfaces], error checking. Design Recipe 2 (templates). [This is a hard week...Assume this is FOUR lectures, really.]
    • reading: 2.5, 2.6, 2.7, 3[intermezzo on BSL semantics]
    • discuss: Bharnes: computational textiles (also Jacquard Loom, Babbage's Analytical Engine, Lady Ada Lovelace and punchcards)
    • lab [pairs] defining structs, fns that consume structs, fns that consume and produce structs, first World game. Need lab to assume that "mixtures" may not be covered yet (i.e. limit to one example and walk them through it)
  4. Arbitrarily Large Data (e.g. Lists); Non-empty-Lists (4.2.2), the Inventory Method; [probably only two lectures] [END MATERIAL ON MIDTERM ONE]
    • reading 4.1, 4.2 [Skip 4.2.3 Natural Numbers until next week]
    • discuss: Anderson: Software eats the World
    • lab [pairs]: mixed data/itemized structs like trucks/cars/motorcycles are vehicles; grizzly/black/brown BEARS; square/circle/triangle SHAPES... functions on lists of ATOMIC values.
    • Honors lab [pairs]: parts of regular lab plus finite state machines (looking for states to be itemized structs...)
  5. [SHORT WEEK with a review day at end] Lists of structs, structs with lists, lists of lists (files), Natural Numbers (iteration)
    • Reading 4.3, 4.2.3
    • discuss: blown to bits Chapter 1
    • lab [pairs] [short??!!: exam this week]: functions on lists of structs. "Powerpoint" clone :-) natural number iteration, computing pi
  6. [SHORT WEEK with midterm at start] list abbreviations (after midterm 1); Auxilliary functions/wish lists; insertion sort.
    • reading 4.4, 4.6. [I will not assign intermezzo 5 quote/quasiquote, but might cover quote]
    • discuss: Killer Data Model
    • PROJECT ONE
    • lab [pairs]: more complex list functions (lists embedded in structures embedded in lists), The Permutation Exercise (aux functions/wish lists), Batch File I/O.
    • Honors Lab [pairs]: The Permutation Exercise, invasion percolation (bad idea!!)
  7. first-order abstraction (functions that consume functions) map/filter/fold. Parametric data definitions (and polymorphic contracts/signatures). Local variables. Lambda.
    • Reading: 6.1, 6.2, 6.3, 6.4. 7. [intermezzo on local scope-- I find that I do this anyway, nice to see in book now]
    • discuss: Lamport: logic or biology?
    • lab [pairs]: abstraction (e.g. one function that an find either min or max in aLON), queries and statistics on CSV files.
    • Honors lab [pairs]: Abstraction: What is data? SICP lab removes structs from language (use only cons), and then removes cons (use only functions), message passing style, numerical integration
  8. Self-referential structures beyond lists: Trees, binary ancestor trees, multiway decendent trees, binary search trees
    • Reading: HtDP/1e 14
    • discuss: Computational Journalism
    • lab [Pairs]: trees: Binary mobile, binary search trees (inorder traversal, construct from list), simple XML processing
    • Honors lab [pairs]: Full XML processing, abstract over XML tree processing, binary search trees (inorder traversal and construct from list) (NOTE: use Filesystem problem??)
  9. Generative Recursion, Quicksort, time/space efficiency
    • Reading: HtDP/1e 25,26,29
    • discuss: Abstraction
    • lab [Individual]: Empirical Computer Science: time/space efficiency measurements.
  10. [SHORT WEEK: REVIEW DAY] Accumulators, vectors (iteration part 2) [in 2011: stress accumulator; maybe use vector/array for mutation only??]
    • Reading: HtDP/1e 30,31
    • discuss: Economic Distopia
    • lab [pairs]: vectors/arrays: TF/IDF information retrieval, accumulators for space efficiency, other accumulator practice
  11. [SHORT WEEK: MIDTERM 2] Mutation/State/Encapsulation/Objects [stress "for loop, while loop" idea w.r.t. accumulators more than book does.]
    • Reading: HtDP/1e 34,35,36,39
    • discuss: E-Voting
    • lab [pairs]: Unix basic commands, web page games (using racket-->javascript), mutation (e.g. UD Adventure/Zork game, based on SICP lab)
  12. Java: basic classes, method dispatch
    • discuss: Beating the Averages
    • lab [pairs]: Install Eclipse, Prolux Java Tester classes. Write java code for Simple Classes, Unions of Classes (e.g. OO dispatch vs. explicit dispatch on type), trees (used the same Balanced Mobile assignment, providing the Racket solution, so only need to translate to Java)
  13. Java: Interfaces, ArrayLists and iterators. This is also week 14, as week 13 is thanksgiving so a total of 4 lectures in MWF mode.
    • discuss: Revenge of the Nerds, King Java
Edit - History - Print - Recent Changes - Search
Page last modified on August 29, 2011, at 11:55 AM