The Second Year of a Computer Science Degree at Northeastern University
Tags: Northeastern University, University, Data Science, Artificial Intelligence, Computer Science

I just received my grades for this semester and it is that time of year to reminisce these past couple of months. This was my first fully online semester, however, I was pretty used to this style by now after doing half a semester and two summer semesters online. I was also going on co-op search for 2021, which is basically a six month full-time internship. Co-ops are Northeastern University are well known for, and it was finally my time to look for one. Despite everything going on, I had a pretty good semester. I only took 13 credits instead of the usual 16/17, so I wasn’t as busy as I should have been. However, don’t get too caught up on the actual grades, I honestly got quite lucky and clutched it at the end.

CS 1210 — Professional Development Co-op

This was a 1 credit course that everyone needs to take the semester before they plan on going on co-op. The course itself was pretty easy. There were weekly asynchronous modules to watch and complete, and we also had discussion posts almost every other week. I learned a couple of nitpicky things about the co-op search process like making a competitive resume and how to follow up with an employer after an interview. Both of these things actually helped me land my first co-op. I’d also like to delve into the actual application process itself. Oh man was it demoralizing. CS is already such a competitive field. With so many companies reducing their employee numbers or not even holding co-ops anymore, the competition was so much harder. I applied to over 100 companies, with many of them ghosting me. From the few that I did hear back, they were mainly rejections. In this entire semester, I only heard back from two companies, one of which offered an interview after I had already accepted my first offer. I went through two interviews for the company that ended up hiring me. While the course itself required virtually zero effort or time, I spent so many hours per week grinding LeetCode questions and practicing behavioral interviews. I wish those of you who are going on co-op search luck, it’ll be a discouraging and arduous process.

CS 3650 — Computer Systems

This course is notoriously difficult at Northeastern University. The course content includes learning about Assembly, pointers in C, shell scripts, file descriptors, cache, POSIX threads, and multi-threaded programming. There were 9 homeworks, a midterm, and a final. However, unlike most CS courses, the exams carried the weight of the course. The professor I took this with was very disorganized. We didn’t have any Piazza, TA with office hours, and the professor rarely responded to emails. We also didn’t have any lecture notes or PowerPoint slides as all Zoom lectures were him writing on a chalkboard in a classroom. In general, a lot of the stuff he talked about in class were messy and didn’t pertain to the homework or exams. To put in perspective how disorganized it was, instead of submitting homework onto the HandIn server, which is what most courses use to turn in code, we had to submit it directly to the professor using our Khoury Linux accounts and logging in using SSH. Instead of our grades being on a HandIn server or Canvas, he would directly email us what we got on each homework. Despite all these downsides, there were pros to taking this class with this professor compared to the other two professors teaching it this semester. The TA that graded our homeworks and exams were extremely lenient, giving us full points for pretty much everything as long as we understood the concepts. We also got our grades back relatively quickly (~1–2 weeks), especially compared a different professor who apparently released 90% of the grades at the end of the semester. In the end, I received a very good grade while learning a decent amount, however, I spent many hours per homework not even knowing how to start because the content had nothing to do with the lectures. The Indian guys on YouTube was my best friend for this course.

CS 4100 — Artificial Intelligence

This was a very well taught course. The grades were comprised of 5 homeworks, quizzes after every lecture (~25), and a final project. Honestly, I don’t have much to say about this course other than every single lecture was very well-thought-out and interesting. We learned about a lot of different artificial intelligence and machine learning algorithms such as A* search, minimax, Q-learning, and a myriad of machine learning techniques. What I liked about this course was that compared to all the previous machine learning courses I took, this one focused less on the math and more about how it worked. Obviously, there was still math in it but we got to actually program these algorithms for our homeworks. I always did poorly on every quiz but I made up for it by getting A’s on all the homeworks and a 100 on the final project. To be honest, our final project wasn’t even that cool or interesting, we just tried to predict stock market prices using various machine learning algorithms and compared them. Overall, a class worth taking as it’s pretty interesting and not insanely difficult.

DS 3000 — Foundations of Data Science

This is an “eh” course. Honestly, I think it’s a pretty good course for those new to programming or data science. It’s a relatively easy course that fit nicely into my schedule. This class was run mostly asynchronously, with videos that we needed to watch every week. Every Friday, we were required to show up to a Zoom call and basically did a mini-lab for the material we learned that week. This course was made up of six homeworks, four quizzes, the labs each week, and a final project. I always did poorly on the quizzes because we were given only 20 minutes for 20 questions and he made it so that if we got the question wrong, we would LOSE points (instead of just not getting the point). Other than that, however, I did great on everything else. All we really learned in this course was basic Python, statistical tests, and the basics of various machine learning algorithms. By basics, all we did was learn how each machine learning algorithm worked on a elementary level and how to use a library that had that algorithm. Since this is a foundations course, I wish we learned how to actually analyze data and results. Besides learning statistical tests, we didn’t really learn how else to deem a result significant. Overall, this was a pretty easy course and I recommend taking this if you want an easy course where you learn a decent amount.