Skip to main content Link Search Menu Expand Document (external link)

The following schedule lists the topics we plan to cover and approximately the number of meetings we plan to spend on each topic. The schedule is tentative. Most likely, some things will change during the semester, and the schedule will be revised as necessary. This class is yours, so please make suggestions.

The exam dates are fixed, so you may plan accordingly.

The Reading column lists the assigned reading for the meeting. You should do the reading before attending class and view it as an introduction to spark discussion in class.

The Assignment column lists the due date for each assignment.

Readings.

The readings will be classified into the following order of recommendation:

  1. Advised (i.e., expected, required, and of highest importance) — assigned.
  2. Recommended (i.e., important but read after previous category) — assigned.
  3. Supplemental (i.e., additional material for a different perspective) – optional.
  4. Fun (i.e., related fun additional material) – optional.
Week Date Topic Reading Assignment

1

T

8/23

Welcome. Getting your money’s worth.

Advised. Notes 1.1. FW Foreword and Preface.

Recommended. OSV Chapter 1 A Scalable Language.

Supplemental. Bootstrapping: Torben Mogensen. Basics of Compiler Design, Chapter 13.

Fun (optional) - Controversial Editorial. Joel Spolsky. The Perils of JavaSchools.

Fun (optional) - Why Twitter uses Scala.

Fun (optional) - Posters.

R

8/25

Scala Crash Course: Basic Values and Types. Evaluation.

Advised. Notes 1.2. OSV Chapter 2 First Steps in Scala (Step 1-4), Chapter 5 Basic Types and Operations, Section 6.10 Identifiers in Scala, Section 7.7 Variable Scope, Section 17.5 Tuples.

F

8/26

Course Tools. Team Formation.

Lab 1 checkpoint

2

T

8/30

Recursion. Data Structures and Pattern Matching.

Advised. OSV Chapter 15 Case Classes and Pattern Matching.

R

9/1

Recursion. Data Structures and Pattern Matching.

Advised. Notes 1.3 (ok to skip 1.3.1 for now).

F

9/2

Lab 1

Lab 1 due

3

T

9/6

Syntax: Grammars; Scoping; Binding.

Advised. Notes 2.1: 2.1.1-2.1.3.

Exercise 1

R

9/8

Syntax: Grammars; Scoping; Binding.

Advised. FW Chapter 2 Data Abstraction.

Lab 2 checkpoint

F

9/9

Lab 2

4

T

9/13

Syntax: Concrete versus Abstract.

Advised. Notes 2.1.4. Notes 2.3 (ok to skip 2.3.3 for now).

R

9/15

Inductive Definitions. Expression Evaluation.

Recommended. FW 3.1-3.2.

F

9/16

Lab 2

Lab 2 due

5

T

9/20

Operational Semantics.

Advised. Notes 3.1.

Exercise 2

R

9/22

Small-Step Semantics; Evaluation Order; and Short-Circuit Evaluation.

Advised. Notes 3.2.

F

9/23

Lab 3

Lab 3 checkpoint

6

T

9/27

Small-Step Semantics; Evaluation Order; and Short-Circuit Evaluation. Dynamic Scoping.

Recommended. FW Chapter 3.3-3.4 PROC and LETREC.

R

9/29

Small-Step Semantics; Evaluation Order; and Short-Circuit Evaluation. Dynamic Scoping.

Supplemental. FW Chapter 3.5 Scoping and Binding of Variables.

F

9/30

Lab 3

Lab 3 due

7

T

10/4

Midterm Review

Exercise 3

R

10/6

Midterm Exam

F

10/7

Cancelled for Review Sessions

8

T

10/11

Collections and Callbacks (Higher-Order Functions)

Advised. OSV Chapter 16.1-16.9 Lists.

Recommended. OSV Chapter 17.2 Sets and Maps.

Supplemental. Twitter Scala School. Collections.

R

10/13

Collections and Callbacks (Higher-Order Functions)

Advised. Higher-Order Functions: Code Worksheet

F

10/14

Lab 4

Lab 4 checkpoint

9

T

10/18

Type Checking. Records.

Advised. Notes 4.1.

R

10/20

Type Checking. Records.

F

10/21

Lab 4

Lab 4 due

10

T

10/25

Imperative State.

Advised. Encapsulating Computation: Code Worksheet

Exercise 4

R

10/27

Imperative State.

Recommended. FW Chapter 4 State (4.5).

Supplemental. OSV Chapter 23.2, 23.4-23.5 For Expressions.

F

10/28

Lab 5

Lab 5 checkpoint

11

T

11/1

Variables and Pointers.

R

11/3

Variables and Pointers.

F

11/4

Lab 5

Lab 5 due

12

T

11/8

Continuations. Regular Expressions.

Advised. “Twelve Days of 3155

Advised. FW Chapter 6.1 Writing Programs in Continuation-Passing Style.

Supplemental. FW Chapter 5 Continuation-Passing Interpreters. This supplemental reading provides some additional context for 6.1.

Exercise 5

R

11/10

Continuations. Regular Expressions.

Supplemental. Michael Sipser. Introduction to the Theory of Computation. Chapter 1.3. For the lab, you really only need to basic “operational” definition of regular expressions, but this reading is a nice supplement to connect regular expressions with the theory of regular languages and finite automata in your other courses. Similarly for Chapter 2.1-2.2 for context-free grammars, context-free languages, and pushdown automata.

F

11/11

Lab 6

Lab 6 checkpoint

13

T

11/15

Continuations. Regular Expressions. Parsing.

R

11/17

Continuations. Regular Expressions. Parsing.

F

11/18

Lab 6

Lab 6 due

-

T

11/22

No class. Thanksgiving break.

R

11/24

No class. Thanksgiving break.

F

11/25

No class. Thanksgiving break.

14

T

11/29

Objects and Classes.

Exercise 6

R

12/1

Objects and Classes.

F

12/2

Project

15

T

12/6

Project Presentations.

R

12/8

Final Review

F

12/9

Final Review

W

12/14

Final Exam