Week | Date | Topics | Reading | Milestones | |
---|---|---|---|---|---|
1 | Tue. 10 Jan. | Introduction Why Study Programming Languages? (slides) Intro to Connect 4 project |
Proficiency-Based Grading Sections 1.1 Connect 4 |
Assign First Day Survey Assign Homework 1: Chapter 1 Assign In-Class 1: Ice Breaker Assign Project 1: Connect 4 in C |
|
Thu. 12 Jan. | Evaluating Programming Languages (slides) | Sections 1.3 - 1.7 | |||
2 | Tue. 17 Jan. | Tradeoffs in programming lanuages (slides) Compiled vs. Interpreted (slides) Static vs. Dynamic typing |
Video 03 | Due Homework 1: Chapter 1 Due Homework 1: Tests for Connect 4 Assign Homework 2: System vs. Scripts Assign In-Class 2: Tradeoffs Assign In-Class 3: Intro to Kawa Scheme |
|
Thu. 19 Jan. | Compiled vs. Interpreted (slides) Static vs. Dynamic typing |
||||
3 | Tue. 24 Jan. | Functional Programming Motivation and Installation of Kawa Scheme Expressions and Functions Scheme binding ("let") and debugging Kawa conditionals Names, Bindings, and Scopes (slides) |
Sections 15.1-15.5 Video 01 Video 02 Video 03 Video 04 Sections 5.1-5.4 |
Assign In-Class 3: Intro to Kawa Scheme | |
Thu. 26 Jan. | Scheme binding ("let") and debugging Kawa conditionals Names, Bindings, and Scopes (slides) |
Video 03 Video 04 Sections 5.1-5.4 |
Assign Project 2: Connect 4 in Scheme Due Project 1: Connect 4 in C Due Homework 2: System vs. Scripts |
||
4 | Tue. 31 Jan. | Scope and Lifetime Kawa recursion Using Symbols as Data Functional Programming Lists |
Section 5.5-5.8 Video 05 Video 06 Video 07 |
Assign In-Class 5: Scope Assign In-Class 3: Intro to Kawa Scheme |
|
Thu. 2 Feb. | Using Symbols as Data Functional Programming Lists First-class functions Enumerated Types Quiz 1(compile vs. interpreted) |
Video 05 Video 06 Video 07 Video 08 Section 6.4 |
Assign In-Class 4: Names and Bindings | ||
5 | Tue. 7 Feb. | More lists First-class functions |
Video 08 | Assign Term Paper : Term Paper | |
Thu. 9 Feb. | First-class functions Map/reduce/fold (notes) Lifetime / Scope (slides) |
||||
6 | Tue. 14 Feb. | Map/Reduce/Fold Lifetime/Scope Strings (slides) Quiz 2(Scheme recursion and lists) |
Section 6.3 |
||
Thu. 16 Feb. | JavaScript (notes) Enumerated Types Strong vs. Weak typing (notes) |
Sample Code Section 6.4 |
Assign Project 3: Connect 4 in JavaScript | ||
7 | Tue. 21 Feb. | JavaScript (notes) | Sample Code | Due Project 2: Connect 4 in Scheme | |
Thu. 23 Feb. | JavaScript (notes) | Deconstructing objects | |||
8 | Tue. 28 Feb. | More JavaScript Quiz 3(Scheme map/reduce/fold) |
|||
Thu. 2 Mar. | JavaScript callbacks Expressions (slides) |
||||
9 | Tue. 14 Mar. | JavaScript Promises JavaScript unit testing with Jest |
Sample Code | ||
Thu. 16 Mar. | Calling methods / bind / apply Subprograms (slides) |
Sample Code Sections 9.2 |
|||
10 | Tue. 21 Mar. | Subprograms (slides) Quiz 4(JavaScript; binding) |
Sections 91-9.6, 9.9 | ||
Thu. 23 Mar. | Ruby (notes) Subprograms (slides) Quiz 5(JavaScript; JS reduce; Scheme map/reduce/fold) |
Ruby Sections 91-9.6, 9.9 |
Assign Project 4: Connect 4 in Ruby Due Project 3: Connect 4 in JavaScript |
||
11 | Tue. 28 Mar. | More subprograms | |||
Thu. 30 Mar. | Generics / Templates Ruby Quiz 6(JavaScript; JS reduce; binding) |
||||
12 | Tue. 4 Apr. | Abstract Data Types (notes)(slides) Ruby |
Sections 11.1, 11.2, 11.3, 11.5, 11.6, 11.7 | Assign In-Class 6: Ruby |
|
Thu. 6 Apr. | Ruby Quiz 7 Scope |
Sections 12.1, 12.2, 12.3 | |||
13 | Tue. 11 Apr. | Object-Oriented (notes) (slides) | |||
Thu. 13 Apr. | Reflection (notes) Quiz 8 Ruby, ADT, and make-up Scope |
||||
14 | Tue. 18 Apr. | TBD Quiz 9 OO, polymorphism, and make-up |
Due Project 4: Connect 4 in Ruby | ||
Thu. 20 Apr. | Quiz 10 various make-up questions | ||||
15 | Tue. 25 Apr. | TBD | |||
Thu. 27 Apr. | Final Exam: 8:00 a.m. or 10:00 a.m. |
Due | Name | Details |
---|---|---|
Tue. 17 Jan. | Homework 1: Chapter 1 | |
Tue. 17 Jan. | Homework 1: Tests for Connect 4 | |
Thu. 26 Jan. | Project 1: Connect 4 in C | |
Thu. 26 Jan. | Homework 2: System vs. Scripts | |
Tue. 21 Feb. | Project 2: Connect 4 in Scheme | |
Thu. 23 Mar. | Project 3: Connect 4 in JavaScript |
Date | Name | Details |
---|
Updated Monday, 10 April 2023, 4:21 PM