Concepts of Programming Languages
Semester: Spring 2013

Course Information

  • Instructor: Hongwei Xi (email: hwxiATcsDOTbuDOTedu)
  • Instructor's Office: MCS 287
  • Instructor's Office Hours: TR: 2-3; W: 4-6; by appointment
  • Teaching Fellow: Zhiqiang (Alex) Ren
  • TF's classpage
  • TF Office Hours: Mon 3:30- 5:00; Thu 4:30-6:00
  • Grader: William Blair (wdblair AT bu DOT edu)
  • Syllabus: (pdf) (ps)
  • A week-by-week schedule
  • Lecture Times: Tuesday and Thursday 12:30-2:00
  • Classroom: PSY B33
  • Midterm1: In-Class, Thursday, March 7, 2013
  • Midterm2: In-Class, Tuesday, April 16, 2013
  • Final: In-Class


Concepts of Programming Languages is a course that introduces students to some fundamental concepts in programming language design and implementation. The primary goal is to allow students who complete this subject to have a good feel for the elements of style and aesthetics of programming and a good command of the major techniques for controlling complexity in programming.

ATS is a functional programming language that makes extensive use of types in capturing programming invariants. We are to explain how datatypes in ATS can be employed to conveniently model data structures and how pattern matching can facilitate programming with datatypes. Also, we are to make use of the module system of ATS in the construction of (relatively) large programs.

Ultimately, we would like to make a convincing argument that programming can be a great deal of fun.


  • CS112 (CS Intro II) or equivalents.


Reference Books

Programming Languages

  • ATS (this mode may be helpful if you use emacs to edit ATS source code)


Class Calendar


    Midterm 1

    • A 1.5 hour in-class exam on Thursday 7 March, 2013.
      Please find related files in this directory: midterm1

    Midterm 2

    • A 1.5 hour in-class exam on Tuesday, 16 April, 2013.
      Please find related files in this directory: midterm2

    Final Exam

    • A two-hour exam from 12:30 to 2:30pm on Tuesday, 7 May, 2013.


    This page is maintained by Hongwei Xi (email: hwxi AT cs DOT bu DOT edu).