CS 421: Programming Languages and Compilers
Contacting the Course Staff
  • For email and piazza: please allow about 24 or so hours for a response, except on weekends (see below).
  • The staff do not work on the weekends. If you send something late Friday or over the weekend then you should not expect a reply before Monday.
  • Never ever EVER call any staff at home.

Submitting Assignments
In this course, you will have machine problems (MP) nearly every week. To submit an MP, you must have an account on the EWS systems. Using an EWS Linux machine, you will need to run the handin program. Before submitting an assignment, you MUST make sure that your MP compiles with the student grading script supplied with the assignment. If your MP fails to compile with the student grading script, your assignment will get NO CREDIT. There will be no partial credit for assignments that fail to compile.

There may also be some hand-written assignments (HWs). Instructions for handing in HWs will be given with the assignment.

Both types of assignments are given on the "mps" tab, where detailed instructions are provided.

Extensions
Each MP will normally have an automatic 48-hour extension with a point penalty of 20% of the total value of the MP on that MP. If we cannot give such an extension for a particular MP, for example due to scheduling constraints, we will announce that before the MP is handed out.

During the automatic extension, staff is not obliged to answer questions for that MP. You are on your own.

Extensions without a point penalty for the first 48 hours and any extension beyond the 48 hours will only be granted under very unusual circumstances such as a medical or family emergency. A signed note from a responsible party will be required. If you do need such an extension for some legitimate reason, do your best to let us know as soon as possible, preferably before the normal MP deadline.

Regrade Policy
Our goal as the course staff is to grade your work carefully and accurately. Unfortunately, occaisonally staff may overlook something, misunderstand an otherwise correct answer, or record a score incorrectly. This is where the regrade procedure steps in.

In order to have your regrade considered you must provide the following:

  • your netid;
  • what assignment or exam question was graded incorrectly; and
  • why you think your answer deserves more points than what the grader gave.
You must also submit your regrade request for a particular assignment within one week of receiving grades for that assignment. Late regrade requests will not be accepted or read.

Good reasons to ask for a regrade:

  • You used a notation that was unfamiliar to the grader but is standard (e.g., in a textbook for one of your other courses).
  • The grader recorded a score incorrectly.
  • The problem was ambiguous (or just plain wrong), causing you to interpret it differently than the grader.
  • The grader marked the problem wrong incorrectly.

Bad reasons to ask for a regrade:

  • Part of your answer "matched" the answer given in the solution. A partially correct answer is still wrong.
    "The difference between an almost right word and a right word is the difference between a lightning bug and lightning." -- Mark Twain
  • You wrote down two or more answers, only one of which was correct. Never put more than one answer for a question unless we tell you that such a thing is legitimate.
  • You expended a lot of effort answering the problem. We are measuring mastery, not effort.
  • You wrote something down.

Collaboration
Each assignment is to be done by each student working alone (unless otherwise stated in the assignment). As per usual CS department policy:
  • You still can discuss the assignment with other students.
  • However, you should come up with your own solution, and handin your own MPs and HWs.
  • If you copy or paraphrase (eg by changing variable names and indentation) a friend's solution directly or substantially, you will be caught cheating. We will put some effort into detecting cheating; note that the penalty even for a first offense (see below) is worse than simply not handing in the program.

Think of MPs and written assignments as being part of the practice for the exam. Many of the problems will be used as a basis for the exam problems themselves, and some may occur verbatim. In fact, when it comes time to study, we will likely advise you to redo your MPs and written assignments.

Policy on Cheating

We will be looking for cheating on both homeworks and exams. The penalty for being caught cheating a first time -- either sharing your solution or copying someone else's solution -- is that you will receive a negative score for the unit cheated on equal to the value of the unit. A homework (MP or written assignment) is one unit. A numbered problem on test, including all its parts, is a unit. The penalty if you are caught cheating a second time is a grade of F for the class. Moreover, both cheating episodes will be reported to the department. You should take all reasonable precautions to prevent others from cheating and report any suspected cheating.

University of Illinois rules apply to this course, as to all others. In particular, the section of the Student Code on Academic Integrity is relevant here. The department honor code page gives CS-specific advice and policies on cheating.

Grading
Our goal is to have grades back to you as soon as possible. In practice, this will probably take about a week for each assignment or exam. Whenever your homework is graded, it will either be returned in class if it is a written assignment, or you will receive an email with information about your grades if it is an MP. Do not ask when grades are available. They will be in your inbox or handed back in class when they are available.

Grading Breakdown
Work Weight Notes
Machine Problems and Written Assignments (combined)25
Midterm 1 20
Midterm 220
Final Exam35
ProjectNA Only for 4-unit graduate students

Concerning MPs and written homeworks, here's how they work: Each assignment is worth a certain number of points. At the end of the semester, we will just add all the points you got, divide by the total number of available points, and multiply by 25%.

We may occasionally offer extra credit problems, on both assignments and exams. Here's how extra credit problems on assignments work. We add up all the extra credit you've gotten on the assignments, and again divide by the total number of available points and multiply by 25%. For example, if all the assignments turn out to be worth 500 points (not counting extra credit), and you get 50 points of extra credit, then 2.5 points will be added to your total. We may also have extra credit problems on exams, and they will work analogously.

The key point about extra credit points is that they are not added to your score until after the grade cut-offs have been determined. Thus, they can help you get a better grade, but you will not be penalized for not doing them.

Textbooks
There is no textbook for this course. If you find that the material we provide is not sufficient to do the homework or understand the concepts, there are many resources - both books and web pages - to help; see the resources page for a list.

Of course, your best bet here is to come to office hours for an explanation.

Policies
Contacting Staff
Submitting Assignments
Extensions
Regrade Policy
Collaboration
Cheating
Grading
Textbooks