Schedule

Exam 2 will be held Thursday, 2018-04-26

  • Exam 2 Study Guide
  • Review session in class Tuesday, 4/24
  • Class after Exam 2 (during dead week) will be optional lab time to work on SlytherLisp

2018-04-17: Tail-Call Optimization

Slides:Finished up Parsing (4:3 PDF, 16:9 PDF, 16:10 PDF), then did Tail-Call Optimization (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Thursday:

2018-04-10: Parsing

Slides:Parsing (4:3 PDF, 16:9 PDF, 16:10 PDF)
  • Class Thursday is an optional lab day.
  • New learning groups next class: you get to choose. Email me your choices (groups of 3 to 4) by Sunday at 5 PM. If you don’t send me your choice, I will assign you randomly.
  • Quiz 5 will be Thursday, April 19th, and will cover regular expressions and parsing.
  • No LGA: enjoy E-days!
  • Shift reduce example covered in class is available as a nice looking table.

2018-04-05: Regular Expressions and FSA

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

To do for Tuesday:

Email me partners for SlytherLisp by Friday, 4/6 at 5 PM.

2018-04-03: Object Oriented Programming & Exceptions

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

To do for Thursday:

2018-03-22

Quiz 4 in class today covering Lambda Calculus.

No LGA over break, but you may wish to complete the following extra credit opportunity: Spring Break Extra Credit Assignment.

2018-03-20: More Python

Slides:More Python (4:3 PDF, 16:9 PDF, 16:10 PDF)
See Also:happy.py

To do for Thursday:

2018-03-15: Python Intro

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

To do for Tuesday:

Quiz 4 will be on Thursday, March 22nd, and will cover the Lambda Calculus.

2018-03-13: Mathematical Foundations for Programming Languages

Slides:Mathematical Foundations for Programming Languages (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Thursday:

Quiz 4 will be on Thursday, March 22nd, and will cover the Lambda Calculus.

2018-03-01: Scoping

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

2018-02-27: Making our own Haskell Types

Slides:Haskell: Making Types (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Thursday:

  1. Get a start on LGA-12: Haskell Tic Tac Toe (which is not due till March 13th)
  2. Start finishing Deliverable 2 of the Language Explore Project (which is due March 4th)
  3. Study for Exam 1, which will be March 6th. You may find this helpful: Exam 1 Study Guide

2018-02-22: Haskell I/O

Slides:Hello World in Haskell (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Tuesday:

  1. Read Chapter 8 and 9 of LYH. Note that this reading is slightly longer than usual, so you may want to start early.
  2. LGA-11: Haskell I/O
  3. Get started on your programs for the Language Explore Project.
  4. Optional Reading: Gentle Intro to Haskell: Input/Output

2018-02-15: Memory Management

Slides:Memory Management (4:3 PDF, 16:9 PDF, 16:10 PDF)

Due Wednesday, Feb 21, at 11:59 PM:

  1. Find a language (and optional partner) for the Language Explore Project
  2. PA-H02: Haskell Programming Assignment 2

Reminder

No class next Tuesday as the campus is closed for President’s Day break.

To do for Thursday:

  1. No LGA: I would rather you spend some time reading the project description for the Language Explore Project, researching a language you would like to explore, and finding a partner.
  2. Optional: Read Chapter 7 of LYH.

2018-02-08: Higher Order Functions (Part 2)

Slides:Haskell: Higher Order Functions (Part II) (4:3 PDF, 16:9 PDF, 16:10 PDF)
Quiz:Quiz 3 at end of class.

To do for next Thursday:

  1. LGA-09: High Order Functions
  2. Start thinking about which language you want to explore in the Language Explore Project, or if/which partner you want to work with.

Optional Lab Day Next Tuesday

You can come to class to work on PA-H02: Haskell Programming Assignment 2 if you wish. If you are involved in the career fair, no need to come to class.

No need to bring your LGA to the optional lab day, save it for Thursday!

2018-02-06: Higher Order Functions (Part 1)

Slides:Haskell: Higher Order Functions (Part I) (4:3 PDF, 16:9 PDF, 16:10 PDF)
Quiz:Quiz 2 at end of class.

To do for Thursday:

  1. Read Chapter 6 of LYH.
  2. Study for Quiz 3 (topics listed on the side of LGA-07: Haskell Quiz Preparation)
  3. No LGA for Thursday! (optionally, repeat LGA-07: Haskell Quiz Preparation for Quiz 3 topics if you find it a valuable study mechanism)
  4. Optional: Read Chapter 5 of LYH, which may help you study for Quiz 3.

2018-02-01: Haskell: Let, Where, Case, Guards

Slides:Haskell: Let, Where, Guards (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Tuesday:

  1. LGA-07: Haskell Quiz Preparation
  2. Read Chapter 4 of LYH (if you have not already)
  3. Read Let vs. Where (optional, but a good read if you want to discover which is better when)
  4. Study for Quiz 2 (topics you should study are in the LGA)

2018-01-30: Haskell Pattern Matching & Recursion

Slides:Haskell: Pattern Matching & Recursion (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Thursday:

  1. Finish PA-H01: Haskell Programmming Assignment 1 by 11:59 PM on Wednesday night and submit to Gradescope.
  2. LGA-06: Haskell Pattern Matching
  3. Read Chapter 4 of LYH. (Can either be done by Thursday, or over weekend. Your choice.)

2018-01-25: Haskell Typing Specifiers

Slides:Haskell Typing Specifiers (4:3 PDF, 16:9 PDF, 16:10 PDF)
Quiz:Quiz 1 at end of class.

To do for Tuesday:

  1. Read Chapter 3 of LYH.
  2. LGA-05: Haskell Typing Specifiers

2018-01-23: Haskell Lists

Slides:Haskell Lists (4:3 PDF, 16:9 PDF, 16:10 PDF)

To do for Thursday:

  1. LGA-04: Haskell Lists (Part I)
  2. Study for the quiz, which will cover Programming Language Concepts (4:3 PDF, 16:9 PDF, 16:10 PDF). I will also give you about 10 to 20 minutes in class before the quiz in which you can study with your learning group, ask questions, etc.

2018-01-18: Haskell Intro

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

To do for Tuesday:

2018-01-16: PL Concepts

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

To Do for Thursday:

  1. Read Chapters 1 and 2 of LYH.
  2. LGA-02: Functional Progamming
  3. Get a start on PA-H01: Haskell Programmming Assignment 1 if you have the time. Not due until Wednesday, 1/31.

Note

Blake will be teaching lecture on Thursday and the following Tuesday. See the slides for more information.

2018-01-09: Syllabus Day

Topics Covered:

  1. Met learning groups
  2. Covered syllabus

To Do for next Tuesday:

  1. Come up with a creative name for your learning group and Email it to me
  2. LGA-01: Expressive Power

Note

Thursday this week is actually a Monday. We will not be meeting on Thursday, 2018-01-11. Go to your Monday classes.