CSCI400: Programming Languages


Cyndi Rader, , website:, office: Brown Building 280D

Where and When:

T/Th, 9:30-10:45, MZ 26

Office hours: T/Th, 8-9:15

Course Goals:

This purpose of this course is to consider in detail the main constructs of modern programming languages, including abstraction mechanisms, sequence control, data control and storage management. The course will include a brief introduction to functional and logic programming. We'll also discuss some pragmatics of programming as time allows.

Why study principles of programming languages?


Miran Lipovaca, Learn You a Haskell for Great Good, Required (pdf available)

Flanagan & Matsumoto, The Ruby Programming Language, Recommended

Robert Sebesta, concepts of Programming Languages, Recommended

Student Evaluation

Exams/Quizzes Assignments Participation
50% 45% 5%

Late Policy:

Late work is strongly discouraged. Late assignments will be penalized 10% per day and no assignments will be accepted more than 2 days late.

Piazza "Rules of Engagement" (thanks Randy B.)

Online forums can be quite intimidating. I'd like to suggest these guidelines:

We will make use of piazza for this course: