Going to CS 0180 (aka CS18)

CS 0111 and CS 0180 form a valid intro sequence for all CS and CS-joint concentrations. You might not yet see this listed in the Brown Bulletin (we are working on those edits), but it has been approved in all appropriate departments.

All CS intro sequences (0150/0160, 0170/0180, 0111/0112/0180, 0111/0180, and 0190) prepare you for subsequent courses in the CS department. The first courses are all rather different in style and somewhat different in content (we bring them together across by the end of the sequence).

In order to take CS 0180 directly after 0111, you need to be able to work on problems at the complexity level of those in CS 0170. Those problems draw on the same concepts and style of programming that we do in 0111. You just need to be able to scale your skills to more complex problems. We will therefore offer additional exercises to help you prepare for 0180, most of them attached to existing 0111 assignments.

These additional exercises are NOT required for 0111, nor do they affect your grade in 0111. They are only for those who wish to take CS0180 without going through CS0112. If you finish the additional work, you can take 0180 anytime before you graduate (it doesn't have to be this year).

The Assignments

  • Sorting lists

  • Working with trees:

    In lecture, we looked at using data to capture a form of real-world data with a branching structure (family relationships). Sometimes, we organize data into a tree shape to enable a particular approach to a computation. These next two assignments explore these two uses of trees. You can do them in either order.

    • Files and Directories (this is in the spirit of the problem we discussed in lecture about trees that let us navigate from people to their offspring).

    • Binary Search Trees (this is a different use of trees, but you might find this one easier to start with). The last problem on the run-time performance can be done either as part of this assignment or as a question on the running times assignment below -- your choice.

  • Running times: this is the one topic that we haven't gotten to discuss in 111. There's a lecture-capture video with background in the handout. Kathi will also offer a session on this content at some point later this semester.

  • We wrap up with two more examples of interesting uses of trees, this time for capturing documents and programs. Getting these conceptually will likely be more challenging than the (small bit of) corresponding code.

Frequently-Asked Questions

  • When do I have to decide about trying for CS0180?
    We will start 0180-related assignments about 5 weeks into the course.

  • How do I sign up?
    By turning in the work once it starts. There's no need to formally tell us you want to do this.

  • Where do I submit the extra work?
    There will be a separate assignment area on Gradescope for each assignment.

  • When will the extra work be due?
    We strongly encourage you to try to complete the assignments as they are released, as this will help acclimate you to the workload of CS18. That said, we understand that remote learning is posing its own challenges for many students. You can therefore take up through December 21, 2020 to turn in all of the assignments. PLEASE do not leave all of the work to that point. If you only start it after finals, you are unlikely to finish in time.

  • Will the extra work be doable for those new to programming?
    Yes. The extra work will not assume any more material than what we are covering in regular 0111 lecture (with the exception of one additional lecture that we will schedule in November). The extra work simply uses the 111 material in somewhat more complex ways.

  • How much time will the extra work take?
    Roughly an extra 3-4 hours per assignment beyond the normal 0111 workload. This is in line with the time requirements of assignments in CS0170, which is the course that normally feeds into CS0180.

  • If I don't want to do 0180, can I still take CS 0112?
    Absolutely, but we won't be offering 0112 again until next year (likely fall). We apologize for the inconvenience, but the 3-semester schedule for this year needed us to offer some courses twice, which cuts into our available teaching staff.

  • Can I take 0180 without doing the extra work?
    No. Since you won't have taken 0170, you'll need an override code for CS 0180. Kathi will only give override codes (this year or in future years) to students who have done the bridge work or completed CS 0112.

  • If I took 0111 in a previous semester, can I still take CS0180 this year?
    Yes. Reach out to Kathi to make arrangements.

  • Is there a grade cutoff for getting into CS18?
    That's not the right way to think about it. The goal of these assignments is to make sure that you understand the concepts sufficiently well for what 18 will expect. Kathi will get a sense of that from a combination of your work on the assignments, the kinds of comments that come up in your reflections, interactions in office hours, etc. Kathi will look at the quality of your work and reflections, not at whether you were above some arbitrary cutoff.

  • Will we get grades and feedback on the bridge work? When?
    You will get some feedback, but it won't necessarily be the kinds of rubric-based grades that you get on the regular 111 homeworks (since Kathi is handling these herself, without the backup of the TAs). Kathi will work on providing feedback as work comes in, starting in mid-November.

  • Where can I get help if I'm stuck on these?

    Kathi has two open-access office hours per week (see the 111 calendar), and is available for appointments (contact her by email). Some of the TAs can answer 18 questions, but as a general rule, questions on the bridge work should route through Kathi (since our TA staff is primarily allocated to help with 111). Kathi will be monitoring Campuswire and can take questions there as well.

Reach out to Kathi with other questions, as she will be handling this part of 0111.