Recent Changes - Search:

Test

edit SideBar

2012

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 2012 the lab is on the final day (Thu) of the "week", "weeks" start on Tuesday.

2012 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, 3 to 3.5.
    • 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: [pair programming] Using DrRacket: stepper, check syntax, indentation, how errors are reported by DrRacket; Help Desk; strings, images, function composition.
  2. conditionals, intervals & enumerations, simple (atomic) itemizations.
    • reading: rest of 3, 4.
    • discuss: Jeanette Wing Computational Thinking
    • lab: [pairs] , conditionals, intervals & enumerations, simple (atomic) itemizations. Batch and World programming.
  3. basic structures of atomic data ["Compound Data"], structures containing structures. Design Recipe 2 (templates).
    • reading: 5,6,7, 8[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.
  4. Mixtures (itemizations of structures: Java interfaces). 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 9,10 [Skip 10.3 Natural Numbers until next week]
    • discuss: Anderson: Software eats the World
    • lab [pairs]: mixed data/itemized structs (phone billing on local and international calls); simple list of struct functions (atomic data lists OK too)
    • Honors lab [pairs]: parts of regular lab plus finite state machines (looking for states to be itemized structs...)
  5. Lists of structs, structs with lists, lists of lists (files), Natural Numbers (iteration)
    • Reading 10.3, 11
    • discuss: blown to bits Chapter 1 [NOT USED]
    • lab [pairs] file I/O (counting words, characters); DNA analysis; start the project 1
  6. list abbreviations (after midterm 1); Auxilliary functions/wish lists; insertion sort.
    • reading 12,14. [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), tweet sentiment analysis.
    • Honors Lab [pairs]: The Permutation Exercise, 108 music store (basic XML processing without trees)
  7. first-order abstraction (functions that consume functions) map/filter/fold. Parametric data definitions (and polymorphic contracts/signatures). Local variables. Lambda.
    • Reading: 16,17,18.
    • discuss: Lamport: logic or biology? [DID NOT USE]
    • lab [pairs]: abstraction (e.g. one function that an find either min or max in aLON), many finger exercises with loops: map/filter/fold/build-list. Project 1 update.
    • 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. Lambda; Self-referential structures beyond lists: Trees, binary ancestor trees, multiway decendent trees, binary search trees
    • Reading: 19,20,21[intermezzo Scope],22,23
    • discuss: Computational Journalism
    • lab [Pairs]:image manipulation (photoshop filters); CSV spreadsheet data processing. [NOTE: NO TREES!!]
  9. Generative Recursion, Quicksort, time/space efficiency
    • Reading: HtDP/1e 25,26,29
    • discuss: Abstraction [DID NOT USE]
    • lab [pairs]: Huffman Tree encoding
  10. Accumulators, vectors (iteration part 2) [in 2011: stress accumulator; maybe use vector/array for mutation only?? develop FOR loops and WHILE loops.]
    • Reading: HtDP/1e 30,31
    • discuss: Economic Distopia
    • lab [INDIVIDUAL]: Empirical Computer Science: time/space efficiency measurements.
  11. Mutation/State/ [stress "for loop, while loop" idea w.r.t. accumulators more than book does. DROPPED COVERAGE OF ECAPSULATION (closures as objects)]
    • Reading: HtDP/1e 34,35,36
    • discuss: E-Voting
    • lab [pairs]: vectors/arrays: TF/IDF information retrieval, accumulators for space efficiency, other accumulator looping practice [lab 11]
  12. Java: basic classes, method dispatch
    • discuss: Beating the Averages
    • lab [pairs]: Mutation: essentially a FOR/WHILE loop lab from the Java 181 class (literally), but in ASL.
  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
    • lab [pairs]: Install Eclipse, JUnit. Write java code for Simple Classes.
Edit - History - Print - Recent Changes - Search
Page last modified on August 16, 2013, at 03:03 PM