Test
edit SideBar
|
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
- "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.
- 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.
- 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.
- 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...)
- 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
- 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)
- 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
- 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!!]
- Generative Recursion, Quicksort, time/space efficiency
- Reading: HtDP/1e 25,26,29
- discuss: Abstraction [DID NOT USE]
- lab [pairs]: Huffman Tree encoding
- 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.
- 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]
- 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.
- 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.
|