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 placement process. This takes place over the summer, and is now closed. 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: 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: I heard 0190 is limited in size. Is that true?
No! There is no size limit on 0190: anyone who does well will get in. Therefore, you are not competing with your classmates.
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, go ahead! 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—
Q: How do I keep on top of things, and where can I ask questions while the assignments are in progress?
See the quick links on the course home page.
Q: How “introductory” is the course?
This is a complicated question.
On the one hand, this course is open to everyone, and I welcome everyone who has placed into it to stay and finish. Every year, over 10% of students who successfully finish the class had no prior computing background, and about a third had only a little. Combined, that’s nearly half the class!
On the other hand, the course was originally created to cater to students who have prior computing experience and want to go faster and farther. The course does have numerous students who fit this profile. It isn’t fair to them to retard their development.
To accommodate this wide spectrum of students, everyone has to respect the
right of other students to be in the class and get the most from it. The course
will sometimes digress into more advanced computer science topics. These will
be explicitly signposted. Students with no prior background need to make peace
with this (someday you will know everything that was said, and much more—
To create this classroom environment while still giving ample room for students to grow, I have a simple policy: If you have questions outside the scope of what we’re covering in class, please ask them on EdStem, not in class. I may not be able to answer all of them: that depends on whether they are worded clearly enough for me to understand, whether I think they’re reasonable, and also whether I have time. But you are always free to ask.
Given that this outlet exists, in response to a question that I feel steps outside these bounds, I may say something like, “I have never heard of that”. There’s an extremely good chance that I have heard of it, and may even know a good deal about it. That’s my hint that you’re violating the policy, and I’m hoping to diffuse the situation without calling you out explicitly.
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.
Q: I’ve 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; nor do we want to spend all our time chasing down Web sites that have misinformation.
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: What is the content of 0190?
In principle, 0190 is an amalgam of the other introductory sequences. 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 two important exceptions, 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 two big topics that 0190 does not teach (that is required of the year-long sequences) are Java and object-oriented programming. (Those are not at all the same. Want a quick, one-minute self-test? Even though Java has loops, explain why loops are inherently not object-oriented and indeed are in opposition to it.) If you have these topics from prior education, you may be fine. You may also be able to teach it to yourself over winter break, with resources we can point you to. Of course, you can also take 0200 after 0190, which cover all this and more, very well and in great detail.
Q: I have a question not answered above! Where do I send it?
Address it to me. I am shriram@brown.edu.