Computer Science 365

Programming Langauge Concepts
Spring 2012
Thomas VanDrunen



Meeting time: MWF 9:15-10:20 am.
Meeting place: Science 131

Office hours: MF 2:00-4:00 pm; W 2:00-3:45 pm; Th 9:30-10:45 am.
Contact: Sci 163 ; 752-5692; Thomas.VanDrunen@wheaton.edu
http://csnew.wheaton.edu/~tvandrun/cs365


Syllabus


Resources:
Java Language Specification



Final exam: Tuesday, May 1, 1:30 PM


Moon's dayWoden' s dayFrigga's day

Jan 9

Prolegomena. Introduction. History of programming languages
Slides

Short assignment, due 1/18

Jan 11

More history of programming languages [1.(1-5)]

Short assignment due 1/13

Jan 13

Defining programming languages

Jan 16

NO CLASS

Jan 18

Imperative programming. Lexical and syntactic structure [1.6; 2.(1 & 2); 3.(1 & 2)]
Slides

Project 1. Due 1/25

Jan 20

More on grammars and syntactic structure

Jan 23

Parsing [3.3]
Slides

Jan 25

Concrete and abstract syntac [2 & 3]
Slides

Project 2. Due 2/2

Jan 27

Types [5.(1-3); 6.3]
Slides

Jan 30

Type-checking [6]

Project 3. Due 2/9

Feb 1

Formal semantics [7.(1-4); 8.(1, 4)]

Feb 3

Implementation

Feb 6

Loops, scope [4.1-3; 7.5]
Slides

Project 4. Due 2/15

Feb 8

Switch statements; casting [5.3]

Feb 10

Procedures [9]
Slides

Feb 13

More on procedures [10]
Slides

Feb 15

Parameter passing modes [9.4]; nested procedures [9.(5-7)]

Project 5. Due 3/2

Feb 17

Arrays and dynamic memory [5.4.3; 11.(1 & 2)]
Slides

Project 6. Due 3/2

Feb 20

NO CLASS

Feb 22

More on arrays
Slides

Feb 24

Records [5.4.5]

Feb 27

Review

Feb 29

MIDTERM

Mar 2

Exceptions [7.7]
Slides

Mar 5

NO CLASS

Mar 7

NO CLASS

Mar 9

NO CLASS

Mar 12

Object-oriented programming. Introduction [13]
Slides

Mar 14

Types in OOP; polymorphism. [5.(8 & 9)]

Project 7. Due 3/26

Mar 16

Type-checking in OOP

Mar 19

Inheritance

Mar 21

Alternate formulations of OOP

Mar 23

More on alternate formulations

Mar 26

Method update

Mar 28

Functional programming. Introduction; the lambda calculus [14]

Mar 30

More lambda calculus

Apr 2

Building a functional programming language

Project 8. Due 4/16

Apr 4

More building a functional programming language

Apr 6

NO CLASS

Apr 9

Types in functional languages
Slides

Apr 11

Type soundness proofs [18.4]

Apr 13

More type soundness proofs

Apr 16

Compilation. Introduction

Project 10. Due 4/25

Apr 18

Classfiles and the JVM

Apr 20

(Back to functional programming.) Efficiency; tail form
Language description

Apr 23

Continuation-passing style

Apr 25

"Growing a Language"

Apr 27

Review
Review sheet