Keith J. O'Hara

teaching

CMSC 141

Object-Oriented Programming (F2021)

overview | logistics | schedule | announcements | assignments | repl.it | resources

Tentative 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 randomness; encapsulation NoC: Introduction
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