Taiwan Mountains
« All Posts by this Blogger

My computer science experience before coming to Dartmouth was very little: I had taken one class before during junior year of high school and just thought that that was the end of it. I wasn't planning on taking any COSC courses once I got to college, but with coronavirus happening my freshman spring term and all grading being moved to P/F, I decided to give it a go!

Since I had placed out of COSC 1 with AP credit, I went straight into COSC 10, which is basically data structures but is named Problem-Solving with Object-Oriented Programming. Most students take either COSC 1 or COSC 10 their freshman year if they are planning to be a computer science major, but there are all years in both courses since programming can be a really valuable skill to have. Unless you know you absolutely can't code, I would recommend you to try it out during your first year. Coding is super rewarding, develops other skills such as logic and even stylization, and can open up students to a world that many have never even seen before. I still remember the first time I completed a difficult project and it felt like I could conquer the world! Especially as a girl who has always identified as a "humanities" person, I can definitely feel for you readers who think that STEM or computer science is just not your forte. I think you should still consider it, and at the very least, you'll come out of it as a stronger and more determined than you ever thought possible. A fellow '22 blogger named Catherine has a great post on why everyone should take CS 1. 

My own foray into CS has been relatively smooth. COSC 10 itself is the last prerequisite/"non-major" class you can take in the department before it gets really specialized and people will wonder why a non-CS major or minor is taking the class. Because of P/F this term, the class is absolutely huge and lots of people are trying it out. We have lecture three times a week and recitation once a week, which is basically an hour set aside where you meet with your assigned TA and do short, in-person coding to make sure that you're keeping up with the material. Just a warning: COSC 1 teaches Python but COSC 10 presupposes Java knowledge, so the very first few weeks of the term can be very hard for students who never took AP Computer Science A.

I spend around 6-15 hours per problem set (depending on how much I paid attention during lecture that week), which I think is a reasonable number for a course, given that I don't do much work outside of class besides going to recitation (which never ends up taking the whole hour) and doing short assignments. In addition, COSC 10 doesn't just teach data structures but works on applying the material to real-life situations, such as designing a webcam paint program or coding your own Kevin Bacon game. It's very cool to be able to see how things that you use everyday (maybe like filters or social media friend networks) are actually just made up of code put into fancy UI/UX design. However, I also found this to make the course a little harder because I would need to understand both the algorithm/structure/principle while also learning about GUIs, webcams, etc. Sometimes I would get into a dead-end on my code and not be able to figure out whether it was my logic that went wrong, or maybe I just didn't understand this "application" enough to code around it.

Side story: that happened during my first problem set and I am still so worked up about it. We were working with buffered images and I had no idea what they were or how they worked. My entire class depended on me creating a buffered image that was black so I could backtrace with it while I was re-coloring another image, but since I didn't know what buffered images were or how to set them to black, I typed in BufferedImage.TYPE_INT_RGB instead of BufferedImage.TYPE_INT_ARGB and my if-statement never returned a true boolean so the rest of my class never ran. Anyways...

Overall though, I still really like the course. In fact, it is my favorite course this term, which is super surprising considering I added it as a fourth class last minute. I always want to do my homework and find my work in this class to be the hardest to put down. Programming as a whole takes up a ton of time, though, so I would advise caution for people who have a heavy workload or lots of extracurricular activities. If I were on-campus, I don't think I would have made the time to take this class. But I'm very glad I did! Tons of my friends are in the class, which is fun, and I enjoy doing recitation with my TA, who makes everything very easy to understand and is so patient with us when we obviously know nothing. If you're an incoming freshman and are on the fence about taking CS, I highly suggest that you do it! You never know what might happen.

Posts You Might Like