Last blog I talked about my favorite CS courses at OSU. Now, let’s talk about my least favorite computer science courses in the program. Again, this is from my own opinion and experience, other people’s experiences may differ.
One of my least favorite courses in the program is CS 344 (operating systems 1). This course is one of my least favorite because of how difficult I found it. Mainly because this course was taught using the C programming language. Starting the course, I was not used to the C programming syntax, working with pointers, and memory allocation. This made doing the homework programs difficult for me. I had to start the homework projects early because it took me a lot of time to figure out how to implement all the features in the program. I think the hardest project in the class was the creating the shell terminal program. I spent almost the entire two-week period working on that project. I feel exhausted just thinking back at all the projects we had to do and how a struggle it was trying to make things work. Even now, I am not too confident in my C programming and I should probably brush up on that.
Another one of my least favorite courses in the program is CS 372 (intro to computer networks). This is not because of how difficult the course was but how time consuming the course was. The topics taught in the course was interesting and helpful in understanding how the internet and network connectivity works but I think I would have enjoyed just learning about these topics on my own pace and not have to try and implement some of the network features in a program of my own or have to take a quiz every week. Also, most of the project instructions in this course are kind of vaguely described so half the time you’re not sure if you’re meeting the requirements or doing more than what is needed. For one of the projects, we are supposed to implement reliable data transmission and make a protocol that try to have the least number of packets sent so the receiver receives the entire message even though some packets are dropped or received in a different order. I was not sure if we were supposed to just try to implement all the protocols of RDT that an actual network implements or just to implement some of them. It was difficult trying to implementing all of them and making them all work cohesively in the program.
Thank you for reading and stayed tuned for more blog posts.