hwxi

Spring, 2023

I am scheduled to teach BU CAS CS320 in Spring, 2023.

Title

Overview

Concepts of Programming Languages (CPL) 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.

SML is a functional programming language that makes pervasive use of types in capturing programming invariants. We will be starting with SML and then making a gradual transition from SML to Python so as to demonstrate concretely that the concepts learned in the context of SML can be readily applied in the context of Python, one of the most popular language in the world.

Ultimately, we would like to make a convincing argument that programming can be a great deal of fun if you do it the right way!

Syllabus

Logistics

Grading Policy

First and foremost, if you are not sure about what is being asked to do, please seek clarification on the Piazza page.

If you feel that your work is not fairly graded, please raise your concern to me ASAP. If you don’t, then I could not tell.

  1. For a programming task, your implementation must compile and pass a given test in order for you to receive any credit.

Prerequisites

Familiarity with programming in general:

Textbooks

Programming in Standard ML

Programming Languages

Class Calendar

Courses Taught Previously

Year 2022: CS525(Fall)

Year 2021: CS520(Sprn) and CS525(Fall)

Year 2020: CS520(Sprn) and CS525(Fall)

Year 2019: CS520(Sprn) and CS525(Fall)