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.