1 Anticipated Frequent Questions

This AFQ (Anticipated Frequent Questions) should cover most of your questions.

Q: How do I keep on top of things, and where can I ask questions while the assignments are in progress?

Please use the message board linked from the course home page. You should use your Brown email address to access the board.

Be sure to not post hints or solutions publicly! Be aware of the Honesty and Sharing policy before you sign up.

Q: Are there any exams in this course?

No. I don’t believe exams are a useful way of measuring learning except inasmuch as they can be proctored to detect cheating (for which we have other mechanisms). In return, they are too dependent on test-taking ability, time preferences, not being ill on a particular day, personal constraints, etc. Therefore, this course has no exams, only Assignments.

Q: Why do you want anonymous submissions?

To the extent possible, we want to eliminate biases when grading. These may include biases both in favor or against people based on attributes such as race, gender, or even how they present themselves in person. To make clear we are serious, we will impose a small penalty if you do include personal identifying information (unless asked to).

I know this runs counter to what you have probably been told by countless prior instructors, and maybe even those in your other classes. If you’re turning in pieces of paper, it is important to label them clearly. Since your submissions here are electronic, that’s not a problem.

In case you’re wondering: yes, your identity is recorded when you submit. However, we run an anonymization script before distributing work for grading. Therefore, the graders only see an anonymous token (e.g., “103”) in place of your identity.

You may then wonder what happens when you go in for help after you get graded material back. Would that deanonymize you for the future, i.e., will that TA henceforth know who person 103 is? No, because the script randomly assigns different tokens on each use. Therefore, there’s no reason to believe person 103 from the previous assignment is the same as 103 on this one (in fact, there’s a very high likelihood it’s a different person).

Q: How is the course structured? What’s new this year?

Wow, so many changes! There are changes to
  • the core principles,

  • the homework structure,

  • the grading philosophy,

and more! Some of these things are hard to explain in the abstract; you will understand them as the semester progresses. But two things are worth describing up front.

First, we have four threads of work (yes, the course is multi-threaded). Each thread corresponds to a completely different kind of activity:
  • The Quizius thread uses a tool to get you to answer questions from others and create questions for others, based on a pedagogic technique called contributing student pedagogy.

  • The Mystery Language thread has you understand the design space of specific language features. You can read more about this in the 2018 course AFQ, thought his year we will not be asking you to write theories.

  • The Implementation thread will have you implement the core of multiple languages and tools.

  • The Read/Do thread will have you read up on some materials and write prose and/or code responses. These will help you situate the course’s materials in the broader world of programming languages.

Both the Quizius and Read/Do threads are completely new this year, and there are substantial changes to the other two as well. It is, in effect, a new course.

Second, we have three levels of assignments. The levels loosely correspond to letter grades; each assignment (or thread) is given a level:
  • Quizius and Mystery Languages: All assignments in these threads are at level C.

  • Implementation and Read/Do: Each assignment has a different level.

The general idea is: to get a letter-grade of X, you must do very well in all the assignments for levels up to and including X. However, there is some room for slippage.

Q: Explain these levels in more detail!


There are three ideas here, combined:
  • We want to make grades more transparent, so students have a good sense of where they stand during the semester.

  • We want to reduce the workload on students whose primary focus is elsewhere.

  • We want students to focus on mastery rather than superficiality.

The way we do this is as follows. We’ve thought hard about what things we want you to know to say you deserve a C; what things to earn a B; and which for an A. We’ve then tagged each assignment to reflect these expectations. (Note: a C assignment is also a B and an A assignment; a B assignment is also an A assignment.)

Sometimes, during the semester, students’ grade expectations for the course change. When this happens, it’s been hard for them to know to allocate their time in 1730. No longer. Now the level tells such students exactly which ones to focus on and which ones they can ignore completely.

Notice that word, completely? This is where mastery comes in. A grade should represent some useful unit of learning. Pure numbers hide this: though they have the same average, there’s a world of difference between getting 50% on two (equally weighted) assignments and getting 100% on one and a zero on the other. The former suggests you didn’t understand anything particularly well; the latter suggests you mastered one thing and ignored the other. We want you to aim for the latter. Hence, we want to see a strong performance on all the assignments that we feel demonstrate that grade level of knowledge; you can completely ignore all the others.

Conversely, your grade will be the highest level at which you did well in most of the assignments up to that level. Yes, things go wrong, people screw up. So there will be a little slack. In particular, we’ll forgive poor performance on the early assignments (especially in the Implementation track) so you can get into the groove.

The grade levels roughly imply difficulty, but not entirely. Rather, the C level corresponds to everything I feel you should know to be considered to have passed a course on this subject, the B level corresponds to what I expect for a Good grade, and A to what I expect for Excellent. In general, though, the difficulty of assignments does go up for the most part with the grade levels. However, difficulty is a matter of perception, and your experience may be different from ours. Therefore, you could find an A assignment really easy, but conversely, don’t be too lax in approaching C assignments: you may get an unpleasant surprise.

Because the threads are so different, what it means to do “well” in each thread will vary:

Q: How much time will things take?

It’s very easy to go down a rabbit hole when doing these assignments. Not only do they have points of diminishing returns, there is also a point in each assignment beyond which the returns turn negative (due to frustration and stress). Therefore, it’s important for you to monitor your time usage and, when you exceed the times listed below, come talk to the course staff. Note that the times are per assignment in that thread.

Q: There seems to be a lot of novelty in the course. Is that okay?

Brown is a research university. Research shouldn’t, and isn’t, limited to subject material: it can also be in education. Courses should innovate in response to identified problems and new opportunities. That’s what we’re doing (and indeed what every course should, and to some extent does, do).

As with any research project, things will not go perfectly smoothly. We’ll keep an eye out, especially for large-scale behavior. If, for instance, we find most students did much more poorly on a new assignment than we expected, we’ll assume our calibration of the assignment was off. Based on this, we may revise its grade-level expectation upward (or, in an extreme case, remove it from the expectations entirely).

Q: I have a question not answered above! Where do I send it?

A: Address it to me!