for Oregon State University's Computer Science Post-Bacc Program
Upper Division
Core Class
CS 344
Operating Systems I
Filter:
111
Reviews
16
Hours per Week
3.8
/ 5.0 Difficulty
CS 361:
28 times
CS 362:
17 times
CS 372:
17 times
Page 1 of 11
Easily my worst academic experience. Just trash. The assignments are what takes up everyone's time, as everyone else says. Here's my feedback on each assignment: base64 is a crapshoot because the modules don’t prepare you for it. It’s a common thing tho so there’s good YouTube videos on it. Start early but if you really get stuck module 3 should help you out tree imo is the easiest of the quarter. Make sure you know generally what the code does and really really pay attention to the helper functions. Most of it is just a bit of code and using the helpful functions smallsh sucks but it’s mainly a time game so start early and you’ll get there mtp is a nightmare if you’re not careful about it so test the shit out of every step before adding anything. Also about 3 days in the prof posted the megathread with a wayyyyy easier method of doing it so don’t start this one until the megathread goes up. I’m serious it will save you so much time otp is actually kind similar to mtp. I actually think it was the easiest second to tree. Like mtp, just be able to test with every single new thing you add to it, and definitely stream each character, don’t try to push everything through with buffers
Submitted Thu Nov 30 2023
Start every assignment as early as you can. Expect to spend about 3-5 hours to understand the project that's being assigned and what to review before writing your first line of code. Create a task list and incrementally go through them as each assignment is large and can be a lot to take in at once.
Submitted Tue Jun 13 2023
The instructor, Ryan, is a pompous [donkey], but he also puts a lot of time into the class and answers questions on discord. The class is mostly difficult because many people (including me) have to learn how to code in C, use a vi code editor, and learn about operating systems all at the same time. Ryan craps all over the modules, but they aren't all that bad. Ryan's main advice is to "read the man pages", but the man pages don't make sense until you have some familiarity with C. This is the one class I'd recommend pre-studying for if you don't already know some C. As stated in other reviews, Ryan has no empathy or ability to put himself in the position of someone who didn't start coding in C at the age of 8. I still have a 4.0 in the program, but this was the closest I got to losing it.
Submitted Fri Apr 21 2023
This class is hard and is going to take up a lot of your time. You will go days where you feel completely lost on assignments and you're just sifting through the modules, man pages, discord, etc over and over again but slowly but surely things will slowly starting piecing together. I had a little C/C++ experience prior to this class but still spent an large amount of time on the projects. Start as early as possible on the projects because again, the first few days of starting the projects you're just trying to find your way in the dark and then progress will be slow but the projects are doable if you put the necessary amount of time in. In terms of resources, I didn't find the modules helpful at all, I would rely most on the man pages and then the provided sections from the textbooks but by far the best resource is going be the Discord channel. Make sure you stay up to date on what people are talking about for each assignment because it can be tough trying to search through all the conversations after the fact when you're working on your assignment. The instructor Ryan is a blessing and a curse for this course. He is knowledgeable and willing to help/available but he explains things to students in a manner that is not very helpful. When he answers questions or explains a certain topic he does it in way that it's more of him trying show off how much he knows about a certain subject rather than explaining it in a way that the students (who most don't have tons of C experience) are going to be able to understand. He will go off on these tangents about how youtube tutorials, tutorial websites, stackoverflow, etc. are all horrible ways of learning C/operating systems and the only way to learn properly is to read the man pages and textbooks. For example, he provided a video for one of the assignments showing how to create a function that would find a subset within a greater string and return it. The video easily could have been 15 min long max but ended being an hour and 15 minutes because he spent the first hour walking through some random youtube tutorial on this topic that no one would ever watch because it was such poor quality and literally going segment by segment in the video and explaining how this person is wrong and doesn't know what they're talking about. Then finally at the end of the video he gives you the code that you need for the assignment. Overall I think his intentions are right but he's just going about it in the wrong way. I walked away with an A in this class because I had the time to put into it but you need to make sure you're getting close to 100% on all the assignments because the final is definitely difficult and not a way to gain back points.
Submitted Thu Apr 06 2023
The course isn't nearly as bad as most of the worry warts will have you believe. I was able to use the Linux manual pages, the course explorations, and cpp reference to complete all of the assignments. Spent time on getting the assignments 100% working so that the final doesn't drop your grade to a B. Ideally, you want to go into the final with a 100% grade. As others have mentioned, the final is not an environment where you will be gaining grade points. The instructor cares that students learn the material and he puts forth a great deal of effort attempting to help students learn. However, he doesn't explain information very well. He frames his answers in a manner that assumes the learner is already a master of the material. By the time that you will find his explanations useful, you will no longer need his help. I am a bit skeptical that this magical rework will actually be a benefit to the course...
Submitted Thu Mar 30 2023
Worst class I've ever taken in my life, and it's not because I'm salty: I got an A. The reality is that OSU ecampus doesn't prepare students for 344 and it's up to us to play catch-up because the professor is not interested in meeting us at our level or helping us through the transition to C. Be sure to learn pointers, strings, arrays, and structs in C before taking this class and don't believe anyone who tells you it's ok to just jump in without previous experience. I had a terrible time, particularly in the first three weeks because of very tight deadlines for the first two projects coupled with never having programmed in C before. Project 3, Smallsh, took me 16 straight days of hacking away at it all day. Other people were faster but definitely prepare to work on it for at least a week, likely more. Project 5 was difficult in its own way and took me a week to debug. The professor is OBSESSED with making things harder than they have to be, from long-winded, often insulting Ed Discussions and Discord posts, to requiring Vim. VS Code is banned, so I would recommend using CLion and SSHing into os1 through another terminal.
Submitted Wed Mar 22 2023
I dreaded this course since the day I enrolled in the program. I can assure you not to fret. Here is my general advice: If you have time to prep with some C before the course, then you should. It is not a necessity, but of course it would be helpful. Regarding time, this course requires a lot of it--the most out of any course I have taken in the program so far. Of course your experience will vary, but Smallshell and OTP took me the longest with 20hr+ and 12hr+ respectively. Also, run your own race. There will always be people in the Discord bragging they finished a project. Good for them, but come on, no one cares. Regarding the development environment, some people hate on vim, but I would suggest to just use it. Use vim and develop on os1 to avoid any issues and possible penalties if you are using something else like VSCode. It's just a few keyboard commands to learn. I don't see the big deal. Regarding the course materials, the modules for the course are essentially useless, but The Linux Programming Interface is "optional reading" that, while dry, is helpful (it feels like the modules were an attempt to distill the relevant chapters from that book). I read the relevant chapters in the LPI book and the man pages and that was enough. Regarding the final, the prof uses a normative approach, so I think there was some misunderstanding regarding last terms final and the horror stories associated with it. The final was a fair assessment in my opinion, but I have no idea what the questions were like last term. But, it is a better final than others in this program (I'm looking at you 271). I think you will hear a lot of horror stories about this course because it is indeed difficult with little to no guard rails--at least that was my experience. But if you put in the time and test thoroughly on os1--including your makefile-- then you will be just fine. Hell, you might even like it. Probably not, but maybe.
Submitted Tue Mar 21 2023
Know C before taking this course. Understanding C and pointers (no need to be an amazing C programmer) takes this course from "prepare to be wrecked" to "kinda hard." Find a reputable source (e.g., a university's online intro to C or similar) to learn the fundamentals of C. I cannot say this enough: UNDERSTAND POINTERS. This term some skeleton code was given for several assignments. The final was incredibly fair. The major issue I had was that the instructor would sometimes seem not to know what was in the modules and then tell us the modules were completely incorrect on topic X, which was very frustrating. However, I believe summer 2023 is the revamp and that particular issue should go away. The current instructor has an interesting attitude---ranges from incredibly condescending to very appropriate, and I could do without the incredibly condescending range. However, in general he does seem to care about students being able to understand the material in the course and is a very reasonable grader.
Submitted Tue Mar 21 2023
This class has a steep learning curve if you're unfamiliar with C, but if you can make it through the first few weeks you should be okay. The first few projects Base64 -> Tree -> Smallsh felt like impossible tasks at first, but with time and breaking them up into bite-sized pieces you can pull through! Some people seem to take issue with the current professor, Ryan Gambord, but he ended up being pretty helpful. Get comfortable navigating the class Discord as it will be one of your most helpful tools, and pay attention to any skeleton code provided by Ryan. Side note: Supposedly, this class is scheduled for a revamp in Summer 2023.
Submitted Mon Mar 20 2023
Summer 2023 is the latest revamp, so advice will be deprecated soon. But: do pay attention to C, and learn the basics, and learn about memory management. Take the time to code a few small things in C. This class is about Operating Systems but you can get really distracted and tangled up in C syntax if you don't prepare a bit beforehand, and that will waste time, which you don't want to do. Follow the professor's advice on useful material. The modules are mediocre. Get used to using the Man pages, and USE THE CLASS DISCORD: your professor and fellow students will be a huge help to you on there.
Submitted Sun Mar 19 2023
Page 1 of 11
Course Analytics was developed for students of Oregon State University's online Computer Science program. The data on difficulty, time commitments, course pairings, and tips have been submitted by real students using this survey. Feel free to add your own reviews if you are a current student! The data is scraped from this spreadsheet.
Course Analytics is an open source project by Nic Nolan.
View the repository on GitHub