Table of Contents

CS315 - Programming Languages, Spring 2013

Objective

The objective of this course is to learn programming language design. We will look at various aspects of programming languages and discuss alternative designs and their tradeoffs. We will also look at various examples from different programming languages and thus increase our familiarity with a wide range of programming languages and tools. Importantly, this course will also teach you how to specify the syntax of programming languages and how to use tools (such as lex and yacc) to build syntax checkers for a programming language. If you like this course, you should consider taking the CS 416 Compiler Design course as a follow up.

Location and Times

Course Material

Grades

Note: The midterm is mandatory. Those who did not take the midterm and do not have a valid excuse (medical report or special permission) will get an FZ from the course. They can't take the final. There will be only one make-up exam, which can be taken only by those who have missed the midterm exam and have a valid excuse. There is no make-up for the final, as the final-retake can be used for that.

Homeworks

Important Dates

Course Topics

Project

The project is done by groups of 3 students. The project has 2 sub-projects to it.

You can find your group number from here.

Course TAs and Graders

Syllabus

We will have 15 weeks of classes. Each week will have 2 lectures, where each lecture consists of 2x 50 minutes with a 10 minute break in between. The second hour of the Friday lecture is our 'spare hour' and will be used rarely.

Languages

Some suggestions for programming languages to get familiar with:

In my personal opinion, a CS student should be familiar with at least the following languages:

Functional programming languages, such as Scala, Haskell, Scheme, etc. are perhaps not as commonly used in the industry, but they would broaden your perspective. Scientific languages, such as Matlab and R, would prove useful for research work.

My favorite language? That would be the much hated C++ and lately, the D programming language.