CSCI 5525: Compiler Construction

 

Instructor: Prof. Joseph (Joe) Izraelevitz

Email: joseph.izraelevitz@colorado.edu

Lectures: Tues/Thurs 2:00 - 3:15 PM in ECCR 105

Instructor Office Hours: Tuesday 3:15-4:15pm in person, ECOT 351.

Course Syllabus

You can find the full syllabus (including course policies, grade breakdown, etc.) here.

Course Website 

https://canvas.colorado.edu/courses/102091

Mandatory Textbooks

  • A Problem Course in Compilation: From Python to x86 Assembly by Jeremy G. Siek and Bor-Yuh Evan Chang;Available for free here. Near the end of the course we will switch to Engineering a Compiler by Keith D. Cooper and Linda Torczon; online text available here through CU library.
  • Optional Textbooks / References : Python in a Nutshell: A Desktop Quick Reference by Alex Martelli; Compilers: Principles, Techniques, and Tools by Aho, Lam, Sethi, and Ullman; and Modern Compiler Implementation in Java by Andrew W. Appel (all available free via CUlibrary, see here for access instructions).

Grading Queries

For grading queries, concerns, see class policy here.

Slack

We have a class slack channel (invite here , link at https://compilerconst-pig3312.slack.com ) The TAsand professor will be generally available here for questions and concerns. Please make sure to set up your account (invite/instructions here ) - slack can be accessed via browser, desktop application, or phone app, here.

Lecture Slides/Recordings

Slides will generally be uploaded to Canvas shortly after lecture here , assuming nothing goes wrong. Initial lectures will be recorded and uploaded to the course Media Gallery , and subsequently to Lecture Videos . You are still expected to attend class.

Jupyter

Jupyter is a web interface that allows you to remotely access a personal and private Linux computer. We'll be using jupyter as it provides a standardized interface and minimizes debugging issues caused by your environment - we'll be grading projects using jupyter. You can check it out here and you can follow the tutorial here.

Git, Github, Github Classroom

To facilitate assignment release, development, and submission, we'll be using a the git version control software, along with the associated github and github classroom websites. For information on git and github, see our class tutorial here . For information on github classroom and how to complete assignments, see the tutorial here

Late/Regrade/Resubmissions

If you believe that there has been an error in grading, or if you want to submit a late submission or resubmission, you will need to fill out the regrade/late/resubmission form. For every day late, assignments will be docked 5%, and will not be accepted after the final day of classes. See details here.

The most important rule

Please take care of yourselves - do not risk your health or the health of those around you for this class. If anything in this class (homework, tests, attendance, etc.) becomes a problem for you, get in touch with me. I will be understanding.