1 Anticipated Frequent Questions

This AFQ (Anticipated Frequent Questions) should cover most of your questions. Because I have tried to cover most questions I have gotten and am likely to get, I would appreciate it if you would read this in its entirety first.

Note: All course numbers below refer to computer science (CSCI) courses: e.g., 0190 means CSCI 0190.

Q: How do I enroll in this course?

There is only one way to get into 0190: to follow the placement process, which takes place over the summer (and hence is now over). If you placed into the class you were sent an invitation by email with further instructions.

Q: Is there any other way of getting into 0190?

No, sorry. We have tried different options in the past, and evolved this entrance structure based on our findings.

Q: I’ve been admitted to 0190. How do I register? Will you give me an override code?

You don’t need to do anything for now. We’ll give you instructions in class.

Q: Will my performance in the placement process affect my final grade in the course?

No, it won’t. Everything gets reset once the semester begins.

Q: If I pass the placement process, do I have to take 0190?

No! You will have “shopping period” to finalize which course you want to take. You can’t use this period to get into 0190, but you can choose to take a different course instead.

If you choose to take a different course, we will not hold this against you in any way. You don’t have to inform us or even justify your choice. Brown CS is virtually unique in offering four different introductory offerings leading to the concentration—to say nothing of a half-dozen other introductory courses for non-concentrators—so we are deep believers in choice, just like the rest of Brown. We respect your freedom to choose and the choices you make without judgment.

Q: Why does the early part of the semester look so hectic?

This is on purpose. We want you to experience as many assignments as possible before the free add deadline so you can make an informed decision about 0190 without incurring a financial penalty. (The lecture schedule is also designed to give you a taste of several components.) The rapid-fire deadline pressure eases up after that initial period, though the difficulty of the assignments also increases, commensurate with the duration.

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: I’ve also heard that …

The only definitive source of information about 0190 is this site.

A few students do make various sweeping claims about aspects of 0190. Many of the things we read are slightly or even completely wrong. Sometimes students make strong statements based on their personal experience, but not only is this limited to a very small sample, even then it’s sometimes incorrect! However, we can’t publicly contradict many of these statements because to do so would be to reveal private student information.

Therefore, don’t assume that our silence means we’ve seen and agreed with what is stated. We suggest you ignore these rumors, but if you do trust them you do so at your peril.

Q: How bad is the workload?

According to the 2015 Critical Review, the average hours per week for the three introductory courses the previous year was:



Average hours


Max hours
















For 2017, the corresponding numbers were:



Typical hours


Max hours
















Q: What is the content of 0190?

In principle, 0190 is an amalgam of 0150/0160 and 0170/0180. It was supposed to cover the entire first year curriculum. In practice, however, this is not possible with the available time. Nevertheless, 0190 does cover all the basic expectations of the first year (with one important exception, below), namely: teaching you a rigorous, structured program design methodology; giving you several useful programming skills; teaching you about algorithm and data structure design; teaching you about algorithm analysis; explaining trade-offs inspired by these analyses; and teaching you several basic algorithms and data structures covering linear data, tree-shaped data, and graph-shaped data.

What 0190 does not cover is: these topics in as much depth as those other courses can; all the algorithms and data structures within the above list of topics that they do; some of the more sophisticated or nuanced analyses; and some topics that are usually taught but that we’ve decided are not required of the first year sequences. The big thing that 0190 does not teach (that is required of the year-long sequences) is Java. We assume that you either have prior Java experience or, given a semester of programming, can teach it to yourself (using textbooks, on-line tutorials, etc.) over winter break. Or, of course, you can take 0180 in the spring (see below).

Q: What should I do after 0190?

After you have completed 0190, you have numerous options.

First of all, you are welcome to take any course that requires the intro “sequences” (0150-0160, 0170-0180, or 0190) as a prerequisite. This can even include upper-level (1000-level) courses. Yes, some 0190 students start taking upper-level courses in their very second semester of college!

Second, many students take 0320, but not everyone does.

Third, you can also take 0180.

In particular, if you have some Java background, or can acquire it over winter break, you are ready to move on. If you don’t have it and would rather be taught it by a course, you can take 0180, which is the usual follow-up course for 0170 students. There will be some overlap between what you do in 0190 and what you will see later in 0180, but that should just make you better at that material. Indeed, another good reason why students take 0180 is to get reinforcement of the algorithms and data structures content: seeing it again, from a different perspective, and in more depth, is often very helpful, and this material is so important that having it thoroughly under your belt is a good idea.

In general, talk to your academic advisor and to people in the department, especially if you decide to follow an unconventional path. There may be subtle dependencies between courses that you may not appreciate, and talking to people will help you avoid getting into a mess later on.

We know you probably have many more questions about this topic. Don’t worry: We will devote an entire class session of 0190 to the subject of what courses to do next, and will have it just before the spring semester course sign-up period. During this session you will hear from a variety of course staff who took different paths (including all of the above).

Q: If I’ve taken 0111, 0150, or 0170 before, should I take 0190?

No. You should instead proceed to the next course in that sequence. You will learn more from them.

Q: If I’ve taken 0160 or 0180 before, should I take 0190?

No. You should instead proceed with the rest of the curriculum.

Q: If I’ve already taken 0020, 0030, 0040, or 0931, should I take 0190?

0190 may indeed make a lot of sense. You will still need to take the placement process. If you don’t place in, please take one of the other three introductory courses (0111, 0150, or 0170).

Q: Are there major differences this year?

There will be lots of small differences but no major ones.

As in recent years, 0190 will run the duration of the semester, instead of starting a month in.

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

Address it to me.