The First Year of a Computer Science Degree at Northeastern University

@PatrickYoon
6 min readApr 15, 2020

--

I was inspired by other YouTube channels talking about the classes they took in college. I attend Northeastern University as a computer science major with a minor in business analytics, as of now. I say this because my major has switched quite a few times. I came with a couple of credits from high school, so I was able to get out of many classes that others would have normally taken.

Here was my transcript for my first semester of college

CS 1200 — Leadership Skill Development: Also known as a waste of time. This was a one credit course that focused on “life” skills. This meant assignments such as creating a Google calendar, building a resume, and learning to navigate around the Northeastern website. This would have been useful if not for the fact that this course was poorly taught and very few students put in effort towards this class. This course included a lot of discussion, which might have been great for a business course, but CS students don’t like interaction.

CS 1800 — Discrete Structures: Honestly, not a terrible course. Despite its tag, it had zero programming and I had already learned most of its material back in high school. It mainly taught us boolean logic, discrete probability, and lots of counting. The only thing I really took out of that class was that homework had to be turned in using LaTeX, which is an incredibly useful tool. There was weekly homework that was worth like 30–40% of our grade, and it was much harder than the midterm or final. CS 1802 is the recitation for this class.

CS 2500 — Fundamentals of Computer Science 1: This was taught in Racket (a dialect of Lisp)… I think this is a fantastic course for anyone without prior programming experience. However, it’s hard to get used to when you’ve taken other programming classes before. It emphasizes in helpers, recursion, and comments. As long as your homework had these three components, you were bound to get an A. In short, this course strays away from fundamental concepts in object-oriented programming. CS 2501 is the lab for this class.

ENGW 1111 — First-Year Writing: An interesting class to say the least. That was mainly because of my professor though. If you can get Trudy Stone, I would recommend her. She is incredibly passionate about what she does, and is always willing to help her students out. Her grading, however, is quite questionable (in a good way). This class has 3 big papers, which are typically like 4–5 pages about some concept that we read in class. For my first essay, I wrote an essay in the style of this particular author. My second essay was about growing up as a Korean-American and my identity. For my final essay, I talked about how 4chan would behave if there was strict moderation. There are smaller assignments roughly once every three weeks, and they’re only a page long. She is an incredibly generous grader, and I rushed all of these essays and still managed to pull a solid A. Trust me, I am a terrible writer who didn’t pass the AP English exams.

PHIL 1101 — Intro to Philosophy: I heard this class was hit-or-miss and it was quite a miss for me. My professor liked to ramble and it was mainly a discussion course (which would make sense for a philosophy course). However, I hate talking in front of the class and I’m much more of a note-taker. BUT THERE WERE NO NOTES TO TAKE. OR EXAMS. Our only grade was in-class participation and we had weekly readings with online group discussions. There were also two papers to write (you can find both on my Medium account). The weirdest part about this course was that my professor came from an information science major. This meant that ALL of his content was about technology. I can’t complain about it, but I felt that we only talked about his area of expertise, Deep Fakes. I barely managed to get an A-, which is great considering I talked once that whole semester.

Here is my spring semester transcript:

CS 2510 — Fundamentals of Computer Science 2: It’s in Java! I was quite excited for this course but I was ultimately disappointed. They still emphasized concepts from the first course, which is fine if the first course taught important concepts. We couldn’t use loops or arrays until the last third of the course. Instead, we had to rely on recursion and these things called “cons” (a fundamental function in most dialects of Lisp, like Racket) in Java. Imagine having to write a class called “ConsList” and “MtList” just to hold multiple values instead of simply using an array or an ArrayList. It was incredibly frustrating to use, and I believe this course can be redone. However, they do eventually teach the four OOP concepts: abstraction, encapsulation, inheritance, and polymorphism. My AP computer science teacher would be proud. CS 2511 is the lab for this class.

CS 2810 — Mathematics of Data Models: I love the material that they teach in this class. This course is divided into thirds: linear algebra, multivariable calculus, and statistics. However, the course ties these concepts into machine learning and artificial intelligence. Every idea we learn, we see how it is used in machine learning, whether that is matrix manipulation, gradient descent, or even Bayesian statistics. Even though there are weekly homeworks, they are not super difficult. Every homework included a small Python portion that allowed us to use what we learned into a machine learning environment. The biggest downside of this course was that the lectures were not sufficient, to put it best. The professor who teaches it is very knowledgable and enthusiastic, but the lectures themselves can be very dry and hard to follow. I stopped going to lecture after a couple weeks since the lecture notes were more than enough.

MATH 1365 — Intro to Math Reasoning: This class was a waste of my time. Not because the material was useless, but because everything that was taught in that class overlapped with Discrete Structures, and I had already learned that material in high school. So basically, I was learning the same stuff for the third time. Only difference was that this course focused more on formal proofs, so rather than just solving for the number of combinations, we had to write combinatoric proofs. The only reason why I even had to take this class was because all pure computer science majors had to take this, and I had switched from data science + math to computer science with a minor in business analytics. Everyone in this class were people who had switched to a pure computer science major, which meant that everyone had already taken Discrete Structures. This course had weekly homeworks with three exams and a final.

MATH3081 — Probability and Statistics: This class was also a waste of my time, but this time, it’s because I switched majors and computer science majors don’t need to take this. Honestly, it’s a standard statistics course that covers probability, various types of distributions, hypothesis tests, and confidence intervals. It’s not a bad course, but I wish we delved more into the distributions, rather than covering basic formulas. It’s a very average course, and I can’t say too much about it. There weren’t any homeworks, just biweekly quizzes, two midterms, and a final.

--

--

No responses yet