Programming Languages
This schedule is subject to change. Check back frequently for new assignments and deadlines. Readings (⚐) are due on the day listed and assignments (☆) are announced on the day listed. Additional materials include lecture notes (◄) and related readings (⚑).
Date | Day | Topic | Resources | Assignments |
---|---|---|---|---|
8/19 | W | Intro & syllabus |
⚑
Semicolon Wars A History of Languages An Introduction to Swift ◄ Welcome |
☆
Teams Intro |
8/21 | F | Small group discussion on Tucker & Noonan; due: Teams Intro |
⚐
Tucker & Noonan Ch1 [discussion in Teams] ◄ Intro |
☆
Lab 1 SOLUTION |
8/24 | M | Writing assignment |
⚐
Mead 1 - 2.2.2 ◄ How a translator works |
☆
Writing Project |
8/26 | W | Syntactic analysis: regular expressions, regular grammars |
⚐
Mead 2.2.3 - 2.3 ◄ Syntactic analysis In-Teams: REs and RGs [additional Git/GitHub resources] |
☆
Environment setup |
8/28 | F | Syntactic analysis: context free grammars; due: Lab 1 |
☆
Lab 2 SOLUTION |
|
8/31 | M | Library liason Zach Sharrow; |
In-Teams: CFGS |
|
9/2 | W | Semantic analysis |
⚐
Mead 2.4 ◄ Semantic Analysis |
|
9/4 | F | FSM; due: Environment Setup |
⚐
Mead 3 - 5 ◄ FSM |
In-class: FSMs SOLUTION |
9/7 | M | PDef language; due: Lab 2 |
⚐
Mead 11-12 ◄ PDef & Java Java in 21 Minutes Oracle: Java Tutorial |
☆
Project 1 - PDef Tokenizer (on GitHub) |
9/9 | W | Work on Project 1 | ||
9/11 | F | Review; due: Team, Topic, and Sources | ||
9/14 | M | Review; |
Notes |
|
9/16 | W | Values, type, and type equivalence |
◄
Types |
|
9/18 | F | Values, type, and type equivalence; due: Project 1 |
⚐
Mead 6 |
|
9/21 | M | Top-down parsing |
◄
Top-down parsing |
|
9/23 | W | Top-down parsing (continued) | ||
9/25 | F | EXAM, due: Revised Description |
Studyguide and instructions |
|
9/28 | M | Library liason Zach Sharrow |
In-class: LL(1) SOLUTION ☆ Lab 3 SOLUTION |
|
9/30 | W | Work on Project 2 |
⚐
Mead 13 |
☆
Project 2 - PDef Parser (GitHub) SOLUTION |
10/2 | F | Work on Project 2 | ||
10/5 | M | Work on assignments | ||
10/7 | W | Fall Break - no class | ||
10/9 | F | Bottom up parsers; due: Annotated Bibliography, due: Lab 3 |
◄
Bottom up parsing |
In-class: Shift-reduce |
10/12 | M | Outlining Writing Center Workshop by Lynette Mattson | ||
10/14 | W | ASTs & Java Abstract Classes; |
⚐
Mead 7 Java Abstract Classes ◄ ASTs |
|
10/16 | F | More on ASTs; |
srcML ◄ ASTs for source code analysis |
|
10/19 | M | Work day with open office hours | ||
10/21 | W | due: Elevator Speeches; due: 10/22 11:59pm Project 2 (no tokens) | ||
10/23 | F | Start project 3 |
⚐
Mead 14 |
☆
Project 3 |
10/26 | M | Work on Project 3 | ||
10/28 | W | FP concepts; due: Draft Chapter |
◄
FP Concepts |
☆
Optional Extra Credit In-class: FP |
10/30 | F | Haskell - Literate Programming |
Install Haskell ⚐ Haskell 1-2 |
☆
Peer Review ☆ In-class: Haskell 1 |
11/2 | M | Haskell - Functions; Note: Daylight Savings |
⚐
Haskell 3 |
☆
In-class: Haskell 2 |
11/4 | W | No class | ||
11/6 | F | Haskell - Lists; due: Peer Review |
☆
In-class: Haskell 3 |
|
11/9 | M | Concision Writing Center Workshop by Gillian Lee | ||
11/11 | W | Haskell - Pattern Matching and Functional Loops |
⚐
Haskell 4 |
☆
In-class: Haskell 4 |
11/13 | F | Haskell - List Mapping and Folding; due: Project 3 |
☆
In-class: Haskell 5 |
|
11/16 | M |
⚐
Haskell 5 |
☆
In-class: Haskell 6 |
|
11/18 | W | Presentations; due: Final chapter & presentation |
Instructions |
☆
In-class: Presentations Round 1 |
11/20 | F | Presentations |
☆
In-class: Presentations Round 2 |
|
11/23 | M | Presentations |
☆
In-class: Presentations Round 3 |
|
11/25 | W | Thanksgiving - no class | ||
11/27 | F | Thanksgiving - no class | ||
12/7 | M | [Exam Day] Final project presentations overflow @ 12:00pm - 2:30pm |