Welcome to CSCI 200 at Brown!

CSCI 200 is a new course that will replace the current CSCI 160 and CSCI 180 starting in Spring 2022. Students will take CSCI 200 after taking CSCI 111, 112, 150, 170, or 190. It will be taught by Kathi Fisler and Milda Zizyte (who is joining Brown starting in Fall 2021).

Like the current 160/180 courses, CSCI 200 will center around data structures, algorithms, analyzing algorithms for performance and social-impacts, and good programming practices.

We know there are many questions about the new course. We'll keep this page up to date as we work on the course design (in summer 2021).

Questions and Answers (last updated May 2021)

What programming language(s) will the new course use?
Java and Python. We will start in Java, then migrate to Python later in the semester. Java is better for much of the data-structures content, whereas Python will let us explore when to use different programming styles and constructs on a given problem. We do not assume that you know either of these language before the course starts!.

Won't students from CSCI 150 have an advantage because they already know Java?
No. Our intro courses are about more than just programming. Students from 150 and 170 will come in equally, but differently, prepared. CSCI 200 will make heavy use of the following concepts:

Topic In CSCI 150 In CSCI 170
Implementing and traversing recursive datatypes yes
Analyzing run-time of programs yes
Functional programming yes
Object-Oriented programming yes
Imperative programming yes
As the table shows, each of CSCI 150 and 170 cover some topics that we rely on in 200, but neither covers them all. Students from CSCI 150 may have a leg-up at first on the programming aspects, but CSCI 170 students will have a leg up on the conceptual aspects. These should balance out fairly evenly given the course organization.

The first two weeks of the course will features two tracks, one for students coming from 111/112/170/190 and the other for students from 150. Each track will give students a foundation in the material that the other track did in the first semester, so that we can further develop those skills for everyone in the bulk of the course.

Will there be one large lecture?
After the first two weeks, yes. Lectures will be interactive, involving a lot of short exercises that you'll work on with those sitting around you, in-class polls, in-class Q&A, etc. You won't be sitting in an auditorium listening to the instructors drone on. We want lectures to be worth attending in person, even though lecture-capture will be available for review outside of class.

We are still deciding how to run the two tracks in the first two weeks, but with two instructors, we have flexibility there. We'll update this page once we've made that decision.

Will there be section/labs?
Yes. There will be a two-hour lab in addition to lecture every week. Labs will have a combination of programming exercises to practice material from recent lectures and time to learn and practice working with new libraries that will be needed on an upcoming project. Labs will not be a conceptual rehash of lecture content.

What will the workload be like?
A mix of week-long homeworks (combining programming, analysis, and written questions) and two-week projects. There will also be a midterm and a final focusing on your conceptual understanding of course content. We expect that assignments will take roughly 9-12 hours per week outside of class.

Are CSCI 150/170 changing?
No. Those courses, and students' ability to freely choose among our first-semester courses, will be the same as before.