Schedule (Fall 2018)

11/29, 12/4, and 12/6: Explore Project Presentations

Use this Google Form for filling out feedback:

https://goo.gl/forms/04Doi0wwpJ7ysNTg1

2018-11-13: Language Oriented Programming

Slides:Language-Oriented Programming (4:3 PDF, 16:9 PDF, 16:10 PDF)

This is the last lecture

  • Thursday (11/15) is optional lab day held in ALAMODE
  • No class or office hours Tuesday (11/20) due to Thanksgiving Break
  • Tuesday (11/27) is optional lab/work day (ALAMODE)
  • Presentations 11/29, 12/4, 12/6
  • If you have not started on Homework 3 already, you are already behind. Please start right away; you really do need a month to complete this assignment.

2018-11-08: Macros

Slides:Macros (4:3 PDF, 16:9 PDF, 16:10 PDF)

LGA for next class: LGA-17: Macros

Reminders:

2018-11-06

Held Quiz 5 in class.

Homework 3 is available and is due Thursday, December 6th at 11:59 PM. Please form groups of 2-4 and setup your repository here:

https://classroom.github.com/g/XGwnunon

Please!

Start early on this assignment! If you wait until dead week to start, there is a good chance you will not be able to finish.

2018-11-01: Tail Call Optimization

Slides:Tail-Call Optimization (4:3 PDF, 16:9 PDF, 16:10 PDF)

No LGA for next class as…

  • SlytherLisp D4 is due Friday (11/2) at 11:59 PM
  • Quiz 5 will be in class Tuesday, 11/6
  • Homework 2 is due Wednesday, 11/7 at 11:59 PM, but it is recommended that you complete it before the quiz on 11/6, as the material is closely related.

2018-10-30: Symbolic Computation

Slides:Symbolic Computation (4:3 PDF, 16:9 PDF, 16:10 PDF)

Code used in class: https://github.com/jackrosenthal/racket-sat/blob/master/sat.rkt

To do for Thursday:

Reminders:

  • SlytherLisp D4 is due Friday (11/2) at 11:59 PM
  • Quiz 5 will be in class Tuesday, 11/6
  • Homework 2 is due Wednesday, 11/7 at 11:59 PM, but it is recommended that you complete it before the quiz on 11/6, as the material is closely related.

2018-10-25: Pattern Matching

Slides:Racket Pattern Matching (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Tuesday (10/30):

Reminder: SlytherLisp Project D3 is due this Friday (10/26).

2018-10-18

Held Quiz 4 in class.

Note

Next class (10/23) will be an optional lab day held in the ALAMODE lab. There will be no class in the regular classroom. You are not required to attend.

2018-10-11: Racket Intro

Slides:Racket Intro (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Tuesday:

2018-10-09

Finished up previous slides:

Slides:The Lambda Calculus (4:3 PDF, 16:9 PDF, 16:10 PDF)

Held Quiz 3 in class.

No LGA for Thursday, since I imagine you are busy with SlytherLisp D2!

2018-10-02: Lambda Calculus

Slides:The Lambda Calculus (4:3 PDF, 16:9 PDF, 16:10 PDF)

Homework 1 is due Thursday, 10/18:

Quiz 4 will cover the lambda calculus and will be held Thursday, 10/18.

The lc tool shown in class can be installed using pip:

$ python3 -m pip install --user lc

To do for Tuesday, 10/9:

Note

Class on Thursday will be a lab day for SlytherLisp D2 held in ALAMODE. Attendance is optional, and we will not meet in our normal classroom.

2018-09-27: Parsing

Slides:Parsing (4:3 PDF, 16:9 PDF, 16:10 PDF)

Also: Shift Reduce Example (shown in class)

To do for Tuesday:

2018-09-20: Regular Expressions and FSA

Slides:Regular Expressions (4:3 PDF, 16:9 PDF, 16:10 PDF)

Two learning group assignments:

2018-09-18: Memory Management

Slides:Memory Management (4:3 PDF, 16:9 PDF, 16:10 PDF)
  • SlytherLisp Project is assigned. Please find partners (use Piazza as a resource) and get started on the first deliverable. You should have your group decided and your repository created by midnight after class. Please email the instructor if you are still having trouble finding a group and Piazza is not working for you.
  • Quiz 2 will be Tuesday, 9/25, and will cover: Python programming, Python style, OOP, Diamond Problem, Error Handling, Lexical vs. Dynamic Scoping, Memory Management.

To do for Thursday:

2018-09-13: SlytherLisp Intro

Slides:SlytherLisp Introduction (4:3 PDF, 16:9 PDF, 16:10 PDF)

2018-09-06: Object Oriented Programming & Exceptions

Slides:OOP & Exceptions (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Thursday:

2018-09-04: More Python

Slides:More Python (4:3 PDF, 16:9 PDF, 16:10 PDF)

Quiz 1 in class today.

CS@Mines Puzzle Challenge starts Friday at 8 AM. Set a calendar event or alarm!

To Do for Thursday:

  1. LGA-05: Python Style

2018-08-30: Python Intro

Slides:Python Introduction (4:3 PDF, 16:9 PDF, 16:10 PDF)

To Do for Tuesday:

  1. LGA-03: Quiz Preparation

2018-08-28: Language Evaluation and Typing Systems

Slides:PL Evaluation and Typing Systems (4:3 PDF, 16:9 PDF, 16:10 PDF)

To Do for Tuesday, September 4:

  1. LGA-03: Quiz Preparation

2018-08-23: PL Concepts

Slides:Programming Language Concepts (4:3 PDF, 16:9 PDF, 16:10 PDF)

To Do for Tuesday:

  1. LGA-02: Language Scavenger Hunt

2018-08-21: Syllabus Day

Slides:Welcome to Programming Languages! (4:3 PDF, 16:9 PDF, 16:10 PDF)

Topics Covered:

  1. Met learning groups
  2. Covered syllabus

To Do for Thursday:

LGA-01: Define what a programming language is in your own terms. Spend some good time thinking about your definition. Be prepared to discuss your definition with your group on Thursday.