Recent Changes - Search:

Test

edit SideBar

2010

The LAB is meant to practice the PREVIOUS week material. Therefore Lab 1 is given out on the first day of class and contains almost no programming and must be completed before the first real lab.

2010 Topics

  1. simple functions, design recipe 1 [contracts/signatures; header; examples/tests; body], atomic data, simple itemizations (enumerations + intervals), fn composition, conditionals; topics bleed into week 2. TOO MUCH STUFF (obviously) for the non-programmers.
    • lab: [individual] 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 lab session.
  2. basic structures of atomic data ["Compound Data"]
    • lab: [pairs] Using DrRacket: stepper, check syntax, indentation, how errors are reported by DrRacket; images, function composition, conditionals.
    • Discuss: Jeanette Wing's Computational Thinking article
  3. embedded structures (structs inside structs), "Mixtures" i.e. itemized structs/variant records
    • lab [pairs] defining structs, fns that consume structs, fns that consume and produce structs, embedded structs (whoops--too early!), WORLD programs [functional Model/View interactive graphics]. Design Recipe v.2 (data definitions, data examples, templates). first game.
    • Discuss: Jhane Barnes computers & math for textile design (also Jacquard Loom, Babbage's Analytical Engine, Lady Ada Lovelace and punchcards)
  4. BSL (Beginner Student Language) Semantics, structs of arbitrary size (i.e. LISTS); the Inventory Method; lists of structures
    • lab [pairs]: evaluation semantics practice, mixed data/itemized structs like trucks/cars/motorcycles are vehicles; grizzly/black/brown BEARS; square/circle/triangle SHAPES...
    • Honors lab [pairs]: parts of regular lab plus finite state machines (looking for states to be itemized structs...)
  5. Natural Numbers (iteration part 1).
    • lab [pairs] [short??!!: exam this week]: functions on lists of atomic values, functions on lists of structs. "Powerpoint" clone :-)
  6. list abbreviations (after midterm 1); Auxilliary functions/wish lists; insertion sort
    • lab [pairs] natural number iteration, computing pi, start Project 1.
  7. Local variables, first-order abstraction (functions that consume functions) map/filter/fold. Polymorphism (and polymorphic contracts/signatures)
    • 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!!)
  8. Self-referential structures beyond lists: Trees, binary ancestor trees, multiway decendent trees, binary search trees
    • 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
  9. Generative Recursion, Quicksort, time/space efficiency
    • 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??)
    • Discuss: electronic voting
  10. Vectors, Accumulators (iteration part 2)
    • lab [Individual]: Empirical Computer Science: time/space efficiency measurements.
    • Discuss: Computational Journalism
  11. Mutation/State/Encapsulation/Objects
    • lab [pairs]: vectors/arrays: TF/IDF information retrieval, accumulators for space efficiency, other accumulator practice
    • Discussion: Graham's "Beating the Averages"
  12. Java: basic classes, method dispatch
    • lab [pairs]: Unix basic commands, web page games (using racket-->javascript), mutation (e.g. UD Adventure/Zork game, based on SICP lab)
    • Discussion: Graham's Revenge of the Nerds
  13. Java: Interfaces, ArrayLists and iterators.
    • 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)
Edit - History - Print - Recent Changes - Search
Page last modified on August 09, 2011, at 02:12 PM