I am not interested in judging you and giving you a grade.
I would rather evaluate your growth as a computer scientist and your ability to think critically about programming languages, their design, and implementation.
That said, the College expects grades. I attempt to structure assignments and assessments so as to achieve my goals (deep learning on your part) while simultaneously appeasing The Machine (generating grades).
| Activity | Percentage |
| Homework | 55% |
| Oral Exams | 20% |
| Final Project | 15% |
| Participation | 10% |
Homework
Homeworks will be graded on a criterion referenced scheme. This means I will communicate to you the expectations for C, B, and A work. You may revise any given assignment once. (You are, of course, encouraged to discuss those revisions!)
Oral Exams
There will be two orals, one near the midterm and one at the end of semester. In these orals, you will demonstrate your mastery and understanding of the material explored in your homeworks and in class discussions.
Final Project
In your final project, you will propose an exploration of limited scope that is relevant to the study of programming languages. It may be an extension of work done earlier in the semester, an exploration of a language you are interested in, a critical comparison of one or more languages, etc. While it is a "final" project, it is not "massive" in scope, as indicated by its weighting. A half-poster of your project will be presented during our final exam slot.
Participation
We will be reading and discussing articles throughout the semester. See the discussion rubric for guidance. In short, you must come in having read the material, reflected on it, and be prepared to discuss it critically.

