Compiler Writing – CSCI 4800 / CSCI 6800

Fall 2021

Clément Aubert

December 1, 2021

Quick Facts

Direct Feedback

You can post comments of any nature (bug report, recommendation, criticism, …) at etherpad.wikimedia.org/p/CSCI4800. Please, keep in mind:

I will monitor this channel and either post answers there or through email, depending on the nature of the comment.


Presentation

Factual

We will not be using an hybrid course model, the class will be fully face-to-face, but we will enforce the University’s regulations on social distancing and face covering. You will need a computer with admin rights to install (free) software.

CSCI 4800

This is Compiler Writing – CSCI 4800 - 20444 - A, an undergraduate semester class of 3.000 credits, whose pre-requisite is a minimum grade of C in CSCI 3500 or CSCI 341, and a minimum grade of C in CSCI 3370.

Course Description

An examination of compiler techniques used in generating machine code. Topics covered include scanning and parsing, code generating, optimization and error recovery. Programming projects in compiler construction.

🎓 CSCI 6800

This is Compiler Writing – CSCI 6800 - 21779 - A, a graduate semester class of 3.000 credits, whose pre-requisite is to be in the graduate program.

Course Description

This class examines how programs in existing high-level languages are translated to machine level so that they can correctly and efficiently execute on modern hardware. The class is centered around a significant project where students get hands-on experience implementing the techniques studied in the class. Most techniques studied will be for imperative languages.

Learning Outcomes

Upon successful completion of this class, the student will be able to:


Planned Course Schedule

The week starts on Monday.

Week Date Note Topic
1 08/09 - Syllabus, Introduction
2 08/16 - -
3 08/23 08/26: Quiz -
4 08/30 - -
5 09/06 09/06: Labor Day, 09/09: Project -
6 09/13 09/16: Exam Review Session
7 09/20 - -
8 09/27 09/30: Quiz -
9 10/04 10/04: Midterm, 10/07 – 10/08: Fall Pause
10 10/11 -
11 10/18 10/21: Quiz -
12 10/25 - -
13 11/01 11/04: Exam Review Session
14 11/08 - -
15 11/15 11/18: Project -
16 11/22 11/24–26: Thanksgiving -
17 11/29 -
18 12/06 12/9 (11am–1pm): Final -

You can also find on-line

This schedule is subject to change and enhancements, but provide an indication of the pace, assignments, and major deadlines that you will need to plan for the semester.

Homework

Code

Grades

Students will be evaluated using four different types of evaluation:

  1. Homework assignments will be given during the course of the semester: they are not expected to be handed back, and won’t be graded, but quizzes with questions taken or inspired from those assignments will be given. Those quizzes are closed book and timed (± 10 min.).

  2. Projects will be carried at home.

  3. There will be in-class exams, held during the regular class periods.

  4. The final exam will take place during the exam period.

Refer to the planned schedule for precise dates, and to Brightspace/D2L to get your current grades.

🎓 Graduate students will be evaluated using a different modality that will be discussed at the beginning of class.

Your grade will be computed as follows:

Quizzes (×3) 10%
Project (×2) 10%
In-class Exams (×2) 40%
Final Exam 40%

using the following course grade scale:

Below 65 65–70 70–79 80–89 90–100
F D C B A

Refer to the Course Requirements for information about late or missed evaluations.


Format, Teaching Philosophy & Requirements

Format and Procedures

Lectures are devoted to general explanations of the concepts and ideas underlying the topic at stake. All practical work, coding, programming, testing, etc. will be carried at home or in the lab portion if there is one.

Homework assignments will assist the students in making sure they understand classes expectations and the content of the lecture, as well as to practice their coding and problem-solving skills. The progression of the students will be regularly tested and assessed through quizzes and exams. Active and relevant participation during the lectures is appreciated.

Teaching Philosophy

It is our mutual interest for you to succeed: I love to share knowledge and to expand it by helping students, and students want to gain a useful and agreeable experience that will prove valuable in their future endeavors. To this end, here is:

What I’m expecting from you

  • Check periodically your email account and read the email I send.
  • Read this entire syllabus carefully.
  • Participate actively in all class discussions.
  • Do the homework wisely: read your notes before starting the homework assignment, make sure you understand it completely before considering it done.
  • Come prepared and on time to classes, exams and quizzes.

What you should expect from me:

  • Clear and accessible lectures.
  • Fair and impartial grading.
  • Availability, during office hours, by appointment, and by email.
  • Open hear to your suggestions to improve this class.
  • Commitment to the principles of universal design.
  • Transparency, as my student evaluation as well as many past exams and their solutions, are shared with you.
  • Dedication to your success!

You can have a look at my Quick Reflexion on Course Evaluations, that contains my previous student evaluations, and at my “Definitive” Study Guide.

Course Requirements

In case of conflict, the proper etiquette is to reach out to me, and if no solution can be found, then we should turn to our undegraduate study director Anthony Lawrence or to the dean of Students to help as an ombudsman.


Practical Information

Lab Space

For this class, you will need to access a computer. You can either:

If you need room to engage in a synchronous class, you can go to (this information may need to be updated)

Getting Help

I should be your first point of contact for any question regarding the content of this class, but many other resources are available:

ACM Club

The Augusta University chapter of the A.C.M is one of the university’s best resources for Computer Science, Information Technology and Cyber Security students. It provides a platform to network with other students in similar majors; presenting countless opportunities to expand not only the people you know, but also a fantastic place to learn and ask questions. Because of Covid-19, we will only be holding meetings virtually in our Discord server. If you are interested in joining these meetings, or you have any questions about Computer Science or Cyber Security, feel free to join through our link.

Covid

The University has implemented specific requirements to minimize exposure to COVID-19 and support the safety of all during the pandemic. These requirements apply to all persons on campus (faculty, staff, students, and visitors). These requirements are subject to change. Visit jagwire.augusta.edu/coronavirus/ and augusta.edu/covid-resources/ for the latest details.

If you are unsure about the procedure to adopt, please refer to the protocols - guidelines. If you need to miss class to self-isolate or get tested, please notify me at your earliest convenience.

Where to Go for More Information About COVID-19?


Miscellaneous