This course’s primary learning goal is to make you develop a rich appreciation of programming languages. This means understanding both their principles and their diversity.
Except where otherwise indicated, the sole assessment in the course will be homework assignments. These are take-home and “open book” relative to the policy on Honesty and Sharing. Occasionally you will be asked to do some readings, especially if they are found relevant based on questions and discussion in class.
To help you achieve the learning goals, and to assess your progress towards them, the course employs four kinds of assignments (see the Anticipated Frequent Questions). The combined purpose of these is to give you the basic skills you need for someday creating your own languages, and make respectable creations.
The work load in the course is uniformly distributed across the semester. Students can expect to spend about 10 hours each week on assignments. Combined with the 2.5 hours spent per week in class, this translates to approximately 180 hours over the course of the semester.
The connection between assessment and grades is also explained in detail in the Anticipated Frequent Questions.