teaching
CMSC 141
Object-Oriented Programming (F2021)
overview | logistics | schedule | announcements | assignments | repl.it | resourcesTentative Schedule (changes frequently)
week | date | topics | readings | labs | |
1 PROGRAM | 8/30/2021 | course introduction | syllabus; "What is CS?" by Newell, Perlis & Simon; "Programming as Theory Building" by Naur | ||
9/1/2021 | compuation; color; comments | What is Computation? by Ian Horswill; PFR 1-12 | |||
9/8/2021 | coordinates; code; expressions; polyglots | PFR 13-39; Downey 2 | lab 0: processing polyglots | ||
2 RESPOND & FORGET | 9/6/2021 | simple functions; local variables; event handlers | "Programming is Forgetting" by Allison Parrish; PFR 47-70; PFR 117-124; Downey 3 | ||
REMEMBER | 9/8/2021 | motion; animation; conditionals; state; global variables | interactivity; PFR 99-103; 207-210; Downey 5.1-5.7 | ||
9/10/2021 | easing; randomness; timers; pair programming | "Dynamic Pictures" by Victor; PFR 104-114 | lab 1: dynamic pictures | ||
3 COLLECT | 9/13/2021 | lists; animation | PFR 39-45; 141-148; Downey 10.1-10.7; | ||
9/15/2021 | media; transformations | PFR 73-98; "Progress is a Never-ending Circle" by Gillette | |||
9/17/2021 | iteration & recursion; tracing | Downey 5.8-5.10 | lab 2: multiples | ||
4 COMBINE | 9/20/2021 | fruitful functions; return | PFR 124-128; Downey 6 | ||
9/22/2021 | iteration; assert; design-by-contract; Joy Buolamwini's TED Talk | Downey 7 | |||
9/24/2021 | testing; assert; accessibility; color spaces | "Web Accessibility: Understanding Colors and Luminance"; Color Theory and Contrast Ratios | lab 3: functional color | ||
5 INTERPRET | 9/27/2021 | text/strings | Downey 8; text tutorial | ||
9/29/2021 | files; exceptions; Strachey's love letter generator | Downey 14 | |||
10/1/2021 | searching; debugging | Downey 9 | lab 4: word play | ||
6 STRUCTURE | 10/4/2021 | EXAM 1 | |||
10/6/2021 | |||||
10/8/2021 | |||||
7 REST | 10/11/2021 | FALL BREAK | |||
10/13/2021 | image processing | pixels tutorial | |||
10/15/2021 | lab 5: software mirrors | ||||
8 TRANSITION (to Java) | 10/18/2021 | java (values; variables; expressions; statements) | RF 1-141; java_to_python | ||
10/20/2021 | arrays; sound; objects | sound | dynamic pictures in java | ||
10/22/2021 | pixels again; video | lab 6: software mirrors II | |||
9 ABSTRACT | 10/25/2021 | classes | RF 149-156; objects tutorial | ||
10/27/2021 | |||||
10/29/2021 | revision period | ||||
10 SIMULATE | 11/1/2021 | vectors | NoC: Vectors | ||
11/3/2021 | composition; forces | NoC: Forces | |||
11/5/2021 | state machines | lab 7: GAME | |||
11 PROTOCOLS | 11/8/2021 | inheritance; overriding | NoC: Particle Systems | ||
11/10/2021 | interfaces; enumerated types; checked exceptions | enumerated types | |||
11/12/2021 | ArrayList | lab 8: simulation | |||
12 APPS | 11/15/2021 | java apps; unix; ( public void static main )
| processing in java and "Hello World" tutorials | ||
11/17/2021 | packages; i/o; exceptions; errors | classes and errors tutorials | PROJECT PROPOSAL DUE | ||
11/19/2021 | text-based interfaces | lab 9 | |||
13 | 11/22/2021 | EXAM 2 | |||
11/24/2021 | GUI | swing tutorial | |||
11/26/2021 | THANKSGIVING | ||||
14 COMMUNICATE (with JavaScript) | 11/29/2021 | JavaScript (values; variables; expressions; statements); HTML; glitch | EJ 1-3; MRF 1-152 | ||
12/1/2021 | objects & arrays | EJ 4; MRF 153-177 | |||
12/3/2021 | libraries | getting started | lab 10: p5 | ||
15 PROJECT | 12/6/2021 | higher order functions; closures; prototypes; iterators | EJ 5 & EJ 6 | ||
12/8/2021 | ADVISING DAY | ||||
12/10/2021 | WORKSHOP DAY | ||||
16 | 12/13/2021 | COMPLETION DAYS | |||
12/15/2021 | |||||
12/17/2021 | FINAL PROJECTS |