An ongoing evaluation of how to pick courses, from someone who is trying to make the best use of Brown's open curriculum.
In my first semester, I was determined to get my CS prerequisites out of the way, so I could take interesting courses next semester.[1] That's where "Advanced Introduction to Computer Science" (CSCI 0190) and "Accelerated Introduction to Probability for Computing and Data Science" (CSCI 1450) came in.
Every year, upperclassmen give a lot of advice about whether to take CSCI 0111, 0150, 0170, or 0190. They are all intro-level courses, but they are very different in terms of size, difficulty, and content.[2] Difficulty is roughly 11 < 15 <= 17 < 19, and size is roughly 19 < 11 < 17 < 15. As far as I know, 15 is the only one that teaches object-oriented programming, and the rest teaches functional programming.
For a variety of reasons, some of which I anticipated, 19 was an especially good choice for me. It was a small class, so I knew most of my classmates, and became close friends with a few of them. The professor was the best lecturer I have ever had. I can say a lot more about this class, so if you are a prospective CS-concentrator at Brown, please feel free to reach out.
As for the probability prerequisite, I had the option of taking CSCI 1450, APMA 1650, or APMA 1655. I chose CSCI 1450 fairly arbitrarily, mostly on the basis that a friend of mine was taking it. I did not attend lecture, but this actually ended up being my favorite class that semester, just because the problem sets were so fun. But I spent so much effort on this class that I regret taking it S/NC.[3]
I also took "Formal Proof and Verification" (CSCI 1951x) I had the choice between that course and "Advanced Deductive Logic" (PHIL 1635), but the latter was on Godel's incompleteness theorem, which seemed like a difficult topic to tackle in my first semester. This ended being a good choice, because I later learned that I was not interested in philosophy. CSCI 1951x was a very intersting course that exposed me to interactive theorem proving. I ended up TAing this course the next fall.
My last course was on "The Classical Chinese Philosophy of Life" (COST 0120). I thought it might help me solve a few existential problems I had at that time. It did not help that much, but I did learn a lot about Mengzi, Xunzi, and Zhuangzi.
A brief summary of what I actually did in these courses: I went to class, skipped class, did problem sets, wrote papers, and spent a lot of time talking to my TAs.
I could have, but did not, take "Introduction to Linguistics" (CLPS 0300), "Diversity of Life" (BIOL 0210), "Form and Formalism" (APMA 1920), and "Writing Graphic Memoir" (ENGL 1050U), and "Advanced Deductive Logic" (PHIL 1635). I do hold a little bit of regret for not shopping APMA 1920 and ENGL 1050U, but I was very busy with CSCI 0190 assignments at that time and missed the opportunity. Here was the full shopping list:
My takeaways from this semester were:
I will end up disputing points 3-5 in the future, but that's a lesson for another semester.
I was a bit more confident in my course choices in my second semester. Perhaps too confident. I took "Fundamentals of Computer Systems" (CSCI 0300) because I had to fulfill a computer systems concentration requirement, and I heard it was an excellent course. (It was.) I also took "Deep Learning" (CSCI 1470) because I had to fulfill an AI/ML concentration requirement, and all of my friends were taking it. (It was not as excellent.)
Abiding by the lessons I learned last semester, I also chose "Linear Algebra with Theory" (MATH 0540), which was both (1) a small class, (2) a difficult class, and (3) a class with my friend and (4) a math class. This probably would have been a great choice, if I didn't also decide to take "Modal Logic" (PHIL 1665) with another friend. That was a lot of problem sets...
I also took "Language and the Mind" (CLPS 0800). It was a great course, but I realized that I wasn't that interested in psycholinguistics or clinical research.
A brief summary of what I actually did in these courses: I went to class, skipped class, did problem sets, did more problem sets, did so many problem sets, and did not have the time to go to TA hours. There are no achievements for this semester, because I was in the trenches.
My takeaways from this semester were:
But now that I look back on it, I didn't have any particularly good alternatives either. I'll just take a better workload next semester.
Course | Title |
---|---|
CSCI 0190 | Accelerated Introduction to Computer Science |
CSCI 1450 | Advanced Introduction to Probability for Computing and Data Science |
CSCI 1951x | Formal Proof and Verification |
COST 0120 | The Classical Chinese Philosophy of Life |
CSCI 0300 | Fundamentals of Computer Systems |
CSCI 1470 | Deep Learning |
MATH 0540 | Linear Algebra with Theory |
PHIL 1665 | Modal Logic |
CLPS 0800 | Language and the Mind |
Depending on the department culture, prerequisites might be more flexible than you think.[4] ↩︎
Let me put in a note about demographics. In Fall 2023, 15 had 450 students, 17 had 150 students, and 19 had 60 students. Because of that, 15 and 17 were very lecture-based, and 19 felt more like a seminar. However, the gender-ratio was also worse. (I have the impression that the 19 professor tries very hard to address this, but it is what it is.) ↩︎
S/NC stands for satisfactory or no credit and is an alternative grading option at Brown. ↩︎
Opinions expressed are solely my own and do not express the views or opinions of my employer. ↩︎