Course Syllabus: Lectures
Office Hours
Textbooks
Outcomes
Grading Policy
Schedule
Instructor
Dennis Brylow
Email: brylow at mscs dot mu dot edu
Office: Cudahy 201C
Lab: Cudahy 310

Meetings
MWF 3:00-3:50pm, CU 417

Office Hours (Virtual)
Mon   12:00pm  -  1:00pm
Mon   9:00pm  -  10:00pm
Wed   12:00pm  -  1:00pm
Fri   9:00am  -  10:00am
MU CS Department Logo

Textbook

Compilers Textbook Cover
Modern Compiler Implementation in Java.
Second Edition.
Andrew W. Appel with Jens Palsberg.
Cambridge.

We will be covering Chapters 1 through 12, the "Fundamentals of Compilation." The second half of the textbook consists of advanced topics more appropriate for a second, graduate-level compilers course.

Course Outcomes

Upon completing this course, students will be able to:

Course Policies

Grades

Grades will be calculated using the following formula:
Projects 60% Weekly individual or team projects and homework assignments
Reading Quizzes 10% Quizzes on the textbook readings
Midterm Exam 10% Midterm exam
Final Exam 20% Final exam

Grades will be assigned using the standard formula: A: [93, 100]; A-: [90, 93); B+: [86, 90); B: [82, 86); B-: [78, 82); C+: [74, 78); C: [70, 74); C-: [66, 70); D+: [62, 66); D: [58, 62); F: [0, 58)
At the instructor's discretion, grades may be "curved" up; grades will not be curved down.

Grades will be routinely posted in the gradebook on the course D2L site, as they become available.

Attendance

Student attendance will not be explicitly tracked in this course, and will not directly impact student grades. However, students who routinely miss class discussions or lectures should expect to be unprepared to complete the assignments and exams upon which grades so heavily depend. In short, I don't bother with attendance bean-counting because students who cut class usually fail themselves out of the course before I would need to take any action. Make good decisions.

If you know you will be missing class for a legitimate reason, I appreciate a heads-up, but in accordance with Marquette University Attendance Policies, neither require nor accept documented excuses, except in those specific cases detailed in the policy above. Please try to have a peer in the class take notes in your absence, and get any assignments in ahead of the deadline.

The size and structure of this course will not normally allow me to accept late work under any circumstances. There are enough opportunities for points in the course for most students to miss a few without severe consequences for their grades.

Academic Integrity

All students are expected to abide by Marquette University's Policy on Academic Integrity, and we will proceed under the assumption that everyone has committed themselves to the University's Honor Pledge:

I recognize the importance of personal integrity in all aspects of life and work. I commit myself to truthfulness, honor, and responsibility, by which I earn the respect of others. I support the development of good character, and commit myself to uphold the highest standards of academic integrity as an important aspect of personal integrity. My commitment obliges me to conduct myself according to the Marquette University Honor Code.

The Honor Code has particular implications for computer scientists and engineers, as well as computing professors, whose course work is so readily duplicated and shared in our modern digital world.

For my part, I will strive to ensure that your assignments and exams are engaging, challenging, and worth your investment in time and energy. For your part, I expect you will work hard, strive to learn, and present your work with honesty and integrity.

There will be many opportunities for you to collaborate with your peers in this course, and I strongly encourage you both to seek help when you are stuck, and to share your knowledge with your peers when you have achieved understanding. Problems will only occur if you falsely claim work as your own when it is not, or collaborate when an exam or assignment has been specified to be individual work.

In the unlikely event of an academic integrity violation in this course, Marquette University's Procedures For Incidents of Academic Dishonesty will be closely followed.

COVID-19

This is obviously a uniquely uncertain and difficult time for most, if not all of us. Your instructor, the CS Department, and Marquette are all deeply committed to supporting the safety, health and well-being of all of our students and staff. Toward that end:

We are Marquette, and I consider it to be my job to get as many of you as possible successfully through a challenging class in this chaotic time.

Schedule

Week Topics Readings Assignments
01 Introduction and Overview Ch 1,2 Project 1: Interpreter
02 Lexical Analysis, Automata Ch 3 Project 2: Scanner
03 Labor Day
Syntax Analysis, Grammars
Ch 3 Homework 1: Automata and Grammars [D2L]
04 Parser Generators Ch 4 Project 3: Parser
05 Abstract Syntax Trees Ch 5
06 Semantic Analysis Ch 6 Project 4: Semantic Analysis
07 Activation Records
MIDTERM EXAM Friday, Ocotber 9, in class
Ch 7 Homework 2: Activation Records
08 IR Translation
Midterm Break - Oct 16
Ch 8
09 Basic Blocks Ch 9 Project 5: Translation
10 Instruction Selection Ch 10
11 Liveness Analysis Ch 11 Project 6: Instruction Selection
12 Register Allocation Ch 12
13 Register Allocation Project 7: End To End
14 Summary and Conclusion
Thanksgiving Break
(End of face-to-face class)
15 Study Days
FINAL EXAM
Fri Dec 04, 8:00am-10:00am
The instructor reserves the right to adjust this schedule as necessary.

[back]

[Revised 2020 Aug 26 12:52 DWB]