I primarily teach the following courses at BUCS:

Fall, 2022

I am scheduled to teach BU CAS CS525 in Fall, 2022.



Compiler Design and Implementation is a course that introduces students to some basics in the design and implementation of compilers. In this course, we are to teach the theory behind various components of a compiler as well as the programming techniques involved to put the theory into practice. The chosen programming language for implementation is ATS. However, you are free to choose another programming language (preferably, one of functional style) if you so wish.




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. You receive 10% bonus points for submitting each assignment on time.

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

  3. You can fix bugs in your code and submit for re-grading. There is an automatic 20% deduction of credit for each re-grading. For instance, if you earned 100 points on a re-grading, you would actually be credited with 80 points. A request needs to be explicitly made if you want something to be re-graded for the 2nd time.


Familiarity with programming in general:

Reference Books

  1. Modern Compiler Design and Implementation by Andrew Appel.
  2. Introduction to Programming in ATS by Hongwei Xi.
  3. A Crash into Functional Programming via ATS by Hongwei Xi.

Programming Languages

Class Calendar

Courses Taught Previously

Year 2022: CS525(Fall)

Year 2021: CS520(Spr.) and CS525(Fall)

Year 2020: CS520(Spr.) and CS525(Fall)

Year 2019: CS520(Spr.) and CS525(Fall)