CS 421 Web Content

Ideas

Documentation

Grading Details

Learning Modules and Outcomes

  • There are 20 learning modules in the course, each themed around a specific course topic.
  • Each learning module has 10 points that we distribute among one or more outcomes.
  • Each outcome has one or more assessments that will “fulfill” it if completed.
  • To fulfill a learning module you must complete enough outcomes to have 10 points in the learning module.
    • Most learning modules will have exactly 10 points, but it is possible for there to be more than 10. In those cases, you still only need to get 10 points.
  • You cannot partially complete a learning module.

Assessments

There are four kinds of assessments you will see.

Machine problems (MPs)
These are long programming assignments. The threshold for passing them is 95%.
  • Before the MP is due you can get full credit on it.
  • There is a one-week extension period in which you can only get 95%. Thus, you must fully complete the MP for it to count.
Exam Questions
Most exam questions involve coding or some kind of mathematical manipulation (like lambda calculus reductions).
  • The threshold for passing an exam question is 100%, except for proof trees. These are passing at 95%.
  • If you don’t get an exam question right, you will have another attempt on the following midterm (if there is one).
  • You will also get an attempt on the final exam.
  • An exam question usually will affect only a single outcome. If you miss an exam question you only need to focus on the outcomes you missed, not the whole learning module.
Activity Questions
  • Activities are primarily designed for you to practice the assessments you will see on an exam.
  • An activity may contribute to some of the outcomes of a learning module, but not always.
  • We use the score for the whole activity, not the individual questions within it.
In-Class POGIL Activities
  • These are graded based on participation. Signing into a POGIL group on PrairieLearn during the class period (for live section) or during the next five days (for asynchronous students) will be called “attendance”.
  • In order to get an A in the class, you must attend (or be excused from) 80% of the group activities.

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

Lectures