hwxi.github.io

Teaching

I primarily teach the following courses at BUCS:

Fall, 2023

I am scheduled to teach BU CAS CS320 in Fall, 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.

OCaml is a functional programming language that makes pervasive use of types in capturing programming invariants. We will be primarily doing programming in OCaml while making ocassionally use of Python so as to demonstrate concretely that the concepts learned in OCaml can be readily applied in 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

OCaml Programming: Correct + Efficient + Beautiful

Programming Languages

Class Calendar

Courses Taught Previously

Year 2023: CS320(Sprn) and CS320(Fall)

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)