Syllabus
Location and Times
- Course Title: Programming Languages and Compilers
- Dates: January 18 to May 4.
- Instructor: Mattox Beckman
- Textbook: course notes
- Section B3/B4
- CRNs: 31375,31376
- Location: 3039 Campus Instructional Facility
- Section D3/D4
- CRNs: 48195
- Location: 0035 Campus Instructional Facility
Official Description and Learning Goals
The instructor’s course goals are on the homepage, but here’s the university description of the course:
structure of programming languages and their implementation. basic language design principles; abstract data types; functional languages; type systems; object-oriented languages. basics of lexing, parsing, syntax-directed translation, semantic analysis, and code generation.
course information: 3 undergraduate hours. 3 or 4 graduate hours.
prerequisite: cs 233 and cs 374.
Here are the official learning goals:
- learn to program in a functional programming language
- understand the evaluation of programs in a functional programming language
- be able to write a type checker / type inferencer given a formal type system
- be able to write a lexer, and a parser using recursive-descent parsing.
- program translation: be able to write a syntax-directed translator from abstract syntax to intermediate representations
- recognize and use major methods of specification of dynamic semantics
- write a interpreter based on a formal operational semantics of the language
Assignments and Grading
This course will use mastery grading. The grade for this course will not be determined by total number of points, but by completing a required number of learning modules, and a required number of machine problems.
Learning Modules
A learning module is a bundle of learning outcomes (skills you should acquire) along with assessments that measure these skills.
- Each learning module will typically contain four or five assessments.
- Each assessment is graded pass/fail. You must get full credit on an assessment to pass it, but…
- You will have multiple opportunities to complete each assessment.
- To complete a learning module, you must pass all of the underlying learning outcomes.
Machine Problems
Typically there will be about six machine problems, called machine problems (MPs). We will release one approximately every two weeks. You are allowed to get help on the machine problems, but you need to cite your help.
In-class Activities
This class is an active learning / flipped lecture class. The intent is that you will watch a “pre-lecture video” before class, and then during class you will participate in a team activity. These activities are POGIL activities.
Attendance and participation in the team activities are required. Please see these instructions if you want to take the class remotely or as a Chicago City Scholars student.
In order to get an A in the class, you must attend (or be excused from) 80% of the team activities.
Web Assignments
In addition to the written part that is done in class, there is an online part that tests the concepts you learned in class. You are allowed as many attempts as you need to solve the problems, and most activities will fulfill part of the associated learning module. You will have one week to complete them.
Exams
There will be three midterm exams and one final exam. The exams do not confer points, but each problem on the exam will fulfill part of a mastery area. Each of these mastery area components will appear again on the final exam, which gives you a “second chance” if you need it: If you have already gotten credit for an area, you may ignore it on the final exam without penalty. If you did not get credit on an area from taking the midterm, you can still get credit by doing that problem on the final. This also means that the entire final exam is optional if you have already obtained the grade you want.
One week before an exam, we will provide a practice exam that follows the same format for your studying pleasure.
This course uses the college of engineering computer-based testing facility (CBTF) for its exams. The policies of the CBTF are the policies of this course, and academic integrity infractions related to the CBTF are infractions in this course.
If you have accommodations identified by the division of rehabilitation-education services (DRES) for exams, please take your letter of accommodation (LOA) to the CBTF proctors in person before you make your first exam reservation. The proctors will advise you as to whether the CBTF provides your accommodations or whether you will need to make other arrangements with your instructor.
Any problem with testing in the CBTF must be reported to CBTF staff at the time the problem occurs. If you do not inform a proctor of a problem during the test then you forfeit all rights to redress.
4th Hour Project
If you are a graduate student taking the course for 4 hours, then you need to complete a project. The project does not confer a grade, but if you do not do a satisfactory job on it you will lose a letter grade.
Late Policy / Missing Exams
Late submissions are built into PrairieLearn. For machine problems, you will have one week to turn it it for 95% credit. (This would be enough to fulfull the turn-in and LM requirements, but you would need full credit.)
Code Efficiency
Unless stated otherwise, you should assume that code that does not compile, or code that is inefficient (in terms of time and space complexity), will not earn any points. We will not hand grade non-compiling code.
Regrade Requests
If there is an error in the grading of an assignment, please file an issue request on your github repository. Please assign the tag “regrade” and assign the issue to the instructor.
Once grades are released, you have one week to file any regrade requests.
Grade Cutoffs
We will determine your grade based on how many of the 20 learning modules and 6 MPs you complete, and also attendance.
Grade | Learning Modules | MPs | Attendance |
---|---|---|---|
A | 18 | 5 | >=80% |
B | 16 | 4 | <80% |
C | 14 | 3 | |
D | 10 | 2 |
If you complete more MPs than are required for your grade, or enough learning modules for the next higher grade, we will give you a + grade. E.g., if you did 16 learning modules but all 6 MPs, you would get a B+. Similarly if you completed 18 learning modules but only 4 MPs.
To get an A+, you must complete all 20 learning modules and all 6 MPs.
As explained above, 4 credit hour students must also complete the project or else lose a letter grade.
Undergraduates are encouraged to do the extra project as well. It will not affect your grade, but it will give me something to say if you happen to want a letter of recommendation later.
Academic Integrity
The University of Illinois at Urbana-Champaign student code should also be considered as a part of this syllabus. Students should pay particular attention to Article 1, Part 4: Academic Integrity. Academic dishonesty may result in a failing grade. Every student is expected to review and abide by the [academic integrity policy. Ignorance is not an excuse for any academic dishonesty. it is your responsibility to read this policy to avoid any misunderstanding. Do not hesitate to ask the instructor(s) if you are ever in doubt about what constitutes plagiarism, cheating, or any other breach of academic integrity.
Students with Disabilities
To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor as soon as possible. To insure that disability-related concerns are properly addressed from the beginning, students with disabilities who require assistance to participate in this class should contact disability resources and educational services (DRES) and see the instructor as soon as possible. If you need accommodations for any sort of disability, please speak to me after class, or make an appointment to see me, or see me during my office hours. DRES provides students with academic accommodations, access, and support services. To contact DRES you may visit 1207 S. Oak St., Champaign, call 333-4603 (v/tdd), or e-mail a message to disability@uiuc.edu.
Emergency Response Recommendations
The university police have posted some emergency response recommendations. I encourage you to review this website and the campus building floor plans website within the first 10 days of class.
Of course, since we’re all online, your classroom is likely your living space. Have you considered making a fire safety plan with your family or roommates?
Family Educational Rights and Privacy Act (FERPA)
Any student who has suppressed their directory information pursuant to family educational rights and privacy act (FERPA) should self-identify to the instructor to ensure protection of the privacy of their attendance in this course. see the FERPA site for more information.
Mental Health
Diminished mental health, including significant stress, mood changes, excessive worry, substance/alcohol abuse, or problems with eating and/or sleeping can interfere with optimal academic performance, social development, and emotional wellbeing. The University of Illinois offers a variety of confidential services including individual and group counseling, crisis intervention, psychiatric services, and specialized screenings at no additional cost. If you or someone you know experiences any of the above mental health concerns, it is strongly encouraged to contact or visit any of the University’s resources provided below. Getting help is a smart and courageous thing to do – for yourself and for those who care about you.
Counseling Center: 217-333-3704, 610 East John Street Champaign, IL 61820
McKinley Health Center:217-333-2700, 1109 South Lincoln Avenue, Urbana, Illinois 61801