Skip to content

General Info

Info

Meetings: MWF 10:30AM - 11:20PM, ZOOM

Instructor: ThanhVu (Vu) Nguyen
Email: tnguyen@unl.edu
Office Hours: After class

In this course, you will learn fundamental ideas of the design and implementation of a compiler. You will learn fundamental operations of a compiler including lexical analysis, parsing, semantic analysis, code generation, optimization. As part of the course, you will build a working compiler, which consists of fundamental components such as lexing, parsing, type checking, and evaluating.

Requirements

Grading

Assignments and Grading

Assignments Percent
Programming Assignments (PA) 50%
Quizes 5%
Midterm 1 15%
Midterm 2 15%
Final 15%

Programming Assignments

This course consists of several Programming Assignments (PA's). Taken together, the assignments form a complete compiler for Cool, the Classroom Object-Oriented Language. The project components are assigned in roughly increasing order of size and difficulty; proportionately more time is allotted for the later assignments. Later assignments will be weighted more heavily in the final grade.

Your program submissions will be evaluated for correctness, organization, and documentation. We will not examine your source and/or giving design feedback. Also note that we will not attempt to fix broken submissions that fail to compile or to execute properly on our tests; only limited partial credit will be given in such situations.

Assignments are due at 11:59pm on the due date.

  1. Team Work

    Other than PA1, which you must work alone, you may work in a team for other PA's. You may work in a team for any or all programming assignments. You do not need to keep the same teammate.

    Students on a team are expected to participate equally in the effort and to be thoroughly familiar with all aspects of the joint work. All members bear full responsibility for the completion of assignments. One member turns in one solution for each programming assignment; each member receives the same grade for the assignment. Teams may not be dissolved in the middle of an assignment.

  2. Late assignments

    No late assignments

Quizzes, Midterm and Final Exams

  • Take-home or online formats

Grade Distribution

Grade scale

A+ >= 96% A >= 92% A- >= 89%
B+ >= 86% B >= 82% B- >= 79%
C+ >= 76% C >= 72% C- >= 69%
D+ >= 66% D >= 62% D- >= 60% F < 60%
A+ >= 97% A >= 93% A- >= 90%
B+ >= 87% B >= 83% B- >= 80%
C+ >= 77% C >= 73% C- >= 70%
D+ >= 67% D >= 63% D- >= 60% F < 60%

Course Policy

  • It is CSE Department policy that all students in CSE courses are expected to regularly check their email so they do not miss important announcements.

  • All homework assignments, quizzes, exams, etc. must be your own work. No direct collaboration with fellow students, past or current, is allowed unless otherwise stated. The Computer Science & Engineering department has an Academic Integrity Policy. All students enrolled in any computer science course are bound by this policy. You are expected to read, understand, and follow this policy. Violations will be dealt with on a case by case basis and may result in a failing assignment or a failing grade for the course itself.

  • The CSE Department has an anonymous contact form that you may use to voice your concerns about any problems in the course or department if you do not wish to be identified.

  • Consider the Student Resource Center in Avery 12 for additional help (e.g., TA's, tutorings, etc)

  • Students with disabilities are encouraged to contact the instructor for a confidential discussion of their individual needs for academic accommodation. It is the policy of the University of Nebraska-Lincoln to provide flexible and individualized accommodations to students with documented disabilities that may affect their ability to fully participate in course activities or to meet course requirements. To receive accommodation services, students must be registered with the Services for Students with Disabilities (SSD) office, 132 Canfield Administration, 472-3787 voice or TTY.

Acknowledgements

This class is heavily modeled after the Compilers courses from Westley Weimer at the University of Michigan and Alex Aiken at Stanford.