Policies and grading for the course

Syllabus

There are several components to the course:

  • Lectures
  • Quizzes
  • Assignments (first half of the course)
  • Projects (second half of the course)

Lectures

The course has lecture each Tuesday and Thursday in Center 214, 20 total. Some attendance and participation is required – you have to come to 8 lectures in-person, and participate, to pass the course. There are a few reasons for this policy and this particular number:

  1. Without any incentive, it’s too easy to decide that attending isn’t worth the effort of commuting, putting on shoes, etc, and that you can learn just as well by watching the podcast after the fact or participating remotely. I don’t believe this is uniformly true, and I want people to at least get exposed to the value of being part of an in-person community.

  2. Lectures will be designed for you to engage and discuss with your classmates via peer instruction and other active learning methods. Research shows convincing evidence that these are effective ways to learn!

  3. I don’t want you or us to have to do complex logistics around you being sick, traveling for a conference or interview, etc. Also, being physically present is an investment of time, and a lot of us are living somewhat hybrid lives still. It will take some time to adjust back to in-person activities. I want to respect that, and I also want to respect the choices of students who feel they learn best remotely.

    As a result, I settled on 8 and I am firm on this requirement. This is the only policy for extenuating circumstances, travel, sickness, etc. Please plan to attend more than 8 so that you give yourself a fair amount of slack, and front-load your attendance as much as possible to avoid later surprises. You might even find that you like coming to class!

Mechanically, this means that you’ll need an iClicker to click into live quiz questions that happen during class, which is how we’ll gauge participation. You don’t have to get the questions right! There will be app options that you can use on a mobile device instead of purchasing a clicker, but these are subject to WiFi connectivity and not always supported. We highly recommend that you get an iClicker at the UCSD Bookstore to bring to class.

Each lecture will also be streamed over Zoom and recorded. There will be course staff both in the room physically and on a live chat to answer questions and facilitate discussions during lecture. Attending on Zoom does not count towards 8 required attendances.

Weekly Quizzes

Each week there will be a lecture quiz that reviews the content from the previous week. These will be due on Friday evening. They will be administered on Gradescope. You can submit as many times as you like and will get immediate feedback on the correctness of your answers.

The quizzes will reference the readings given each week, as well as content from lectures. They may also involve downloading and running code to get expected output from a program or other nontrivial tasks, so leave some time for them.

Assignments

For the first 4-5 weeks of the course, we will have a few programming assignments. These will involve you writing a compiler according to some specification that we provide, and submitting on Gradescope. You’ll get a mix of automated and manual feedback from us.

The assignments are, roughly:

  1. Basic Compiler (variables and arithmetic)
  2. Functions Compiler (functions, conditionals, primitive datatypes)
  3. Peer Code Review of Functions Compiler
  4. Objects Compiler (classes)

Projects

For the last 5-6 weeks of the course, you’ll work on projects. More about these will be announced as they get closer, but:

  • You’ll work in groups, and we’ll give you some choice in who you work with, so keep that in mind as you meet folks in the class.
  • You will have an individual assessment related to the project where you’ll do some addition to the project independent of your group members. This constitutes your final exam/comprehensive assessment for the course, and will be a mix of a report/code and an oral exam.
  • The projects will involve large-scale collaboration, potentially across groups, to build an interesting and more full-featured compiler.
  • There will be several checkpoints to keep you on track and give feedback on your project progress.

Grades

We will turn your scores from the above items into a letter grade.

  • You have to do all the quizzes, and eventually get all the questions right on all but one, to get an A. You can work on them after the deadlines to get to this point. If you have more than one quiz where you don’t eventually get all the answers right, your grade is capped at a B. Think of this as 10-15% of your grade.
  • Class participation doesn’t count towards your grade, but you have to come to 8 classes (as described above) to pass the class.
  • The assignments in the first half of the class are graded holistically, and excellent performance on later assignments can make up for missed credit on earlier ones. Think of this as around 25-30% of your grade. Rubrics for individual assignments will be included on those assignments.
  • Your team has to participate in the project and do quality work for each milestone to get an A; individual milestones will have clear rubrics. Think of the group project part as another roughly 30% of your grade.
  • Your individual assessment at the end of the quarter is how you demonstrate to us that you’ve understood the work your group has done, and that you’ve generally mastered the material in the course. Think of this as the remaining 30% of your grade.

You have to complete all of the assignments, the project, and the individual assessment to pass the course (don’t skip any). In general, always submit something on time; don’t try to submit work late. Trust that the next assignment in sequence will have structure for recovering.