for Oregon State University's Computer Science Post-Bacc Program
Upper Division
Core Class
CS 325
Analysis of Algorithms
Filter:
133
Reviews
13
Hours per Week
3.6
/ 5.0 Difficulty
CS 361:
35 times
CS 340:
24 times
CS 362:
14 times
Page 1 of 13
This class covers really good concepts, but teaches them in the most god awful way possible. This class has a format of one homework assignment and one quiz every week. There's a proctored midterm and final as well, and a couple very simple group projects that shouldn't have really been group projects since there's no collaboration to do. This class is covering very math-heavy topics, and complicated things like dynamic programming, things that most people can't learn very quickly without help. The modules are written by someone who clearly doesn't have a grasp of the English language, they assume you remember every math concept, and the provided examples rarely match what you see on the homework. The homework solutions are easily found online, but that won't save you on the exams. I recommend doing your best to learn the first few weeks material the most, and for the exams, write down literally every algorithm example onto that paper in the smallest font possible so you fit it all.
Submitted Fri Oct 25 2024
I'm suspicious they've dialed back the difficulty of this course over the years. I went into it expecting the biggest challenge yet, but it wasn't that bad in reality. Like everyone says, the first two weeks suck, but there's really not that much math. The assignments usually have only 2-3 questions, and the programming questions are LC problems. You can find plenty of walkthroughs diagramming the problems, and a decent amount of them have pseudocode provided that you can cite and use. Also, the exams were easier than the HW assignments. Start the assignments early, fill out your cheat sheets on the exams, and you can get a high A. This class combines the concepts of 261 and 225, but the amount of work they ask you to do could be so much worse than it is.
Submitted Thu Jun 20 2024
Be on time, start assignments early. The first weeks are the hardest ones, don't let this discourage you. I highly recommend relying on outside sources, such as Grokking Algorithms (book) or the infamous Abdul Bari (youTube). Don't worry if you don't get the exploration materials, at some point I just skimmed them and didn't bother wasting time anymore trying to understand them. Throw everything on your study sheet that fits while you are still able to read it. I didn't add only code, also theoretical sections outlining the differences between all the individual algorithms, time complexities, etc.
Submitted Tue Jun 04 2024
Be consistent, don't stress about learning everything, and study for the tests. I am taking this as my 13th class in the program, and I think it is one of the easier ones in terms of time commitment and effort. I feel like the ratings for this class are misleading.
Submitted Mon May 13 2024
Students tend to exaggerate the level of difficulty of this class. While I agree that the exams were tough, they were certainly fair! Anyone who spends a few hours studying for them, or at least watches the review session and makes their own cheatsheet will be fine. I am terrible at implementing algorithms, and frankly I'm not the best at programming in general, and I managed get out with an A. Do not stress out about understanding everything from the start, finish your assignments on time (grace days are nice but you might fall behind) and give yourself ample time for the quizzes (only 2 attempts allowed). You're gonna do great!
Submitted Sat Mar 30 2024
Less hours spent per week than 261, but the hours are more painful. Difficulty is sorta consistent throughout the term. Homework can finished in 1 good day. What makes this class hard is exams are worth 40% of your grade so it's challenging to land a solid A, but if you just want to pass, its easy peasy. Course materials are probably the worst in the program but there's great resources online, I recommend skimming the modules for the topics, looking at outside resources and then coming back to the modules to see if you missed anything.
Submitted Fri Mar 22 2024
The modules aren't great at explaining the concepts, but there are plenty of resources available online. The assignments aren't terrible - there is enough time to figure things out with outside resources and get perfect or near-perfect scores. The exams are ridiculous, however. Exams are proctored, only one sheet, single-sided notes allowed. No scratch paper, but a whiteboard is allowed. Final is cumulative. Exams will often use strange wording for concepts, making it difficult to know what the right answer is. Know the differences between big O, big Theta, and big Omega, and know them well. And be able to describe them in different ways (upper bound, lower bound, etc). Learn P vs NP vs NP-Complete complexity classes and be able to describe them. I wouldn't say it's hard to pass this class, but the exams make it really difficult to keep that A.
Submitted Mon Dec 11 2023
This class is not particularly difficult, provided that you are comfortable with math. Math topics that are relevant include the behavior of functions (i.e., what does the graph of n^2 look like compared to the graph of n), logarithms, induction (but not as formal as in 225), limits and taking derivatives, and graph traversals/terminology. That being said, the class is not really heavily mathy, it's just that you'll understand things faster if you have a good grasp on those topics. All in all, I'd say this class has a lower time commitment than 261, and while it is conceptually more challenging than that class, the actual assignments are easier. There isn't much coding in 325 - there is usually a single small-scale coding problem in each homework and the rest of the questions are about proofs, techniques, and concepts. You should expect to get most of your practice actually implementing algorithms outside class by doing LeetCode. Another thing that makes this class challenging is that the learning material is extremely bad. It's a contender for having the absolute worst quality modules in the entire program. However, there is an abundance of really good learning material for this topic available online for free. By now you may have heard of Abdul Bari's excellent videos, but you should also check out the University of Washington lectures in the semester playlists on the @cse373 YouTube account that correspond with the topic you're learning. The recommended textbook, the famous CLRS, is a great resource (and a great place to find help with homework), and there's also a book by a guy called Steven Skiena called The Algorithm Design Manual that is pretty good too, and has great coverage of logarithms if you're confused by that. (Note: Steven Skiena also has lectures on YT and his class is also called CSE 373, but that's just a coincidence. The lectures I recommend are SP 2022 at University of Washington). One other thing that can be challenging - the exams are weighted very heavily in this class (this final is 25% of the grade). Careless mistakes or blanking out can bring your grade down multiple points, so be careful. Thankfully, the exams aren't very hard - they involve no coding, you get to bring a cheat-sheet, and there are only a pretty small number of questions that aren't multiple choice. For exams, focus on understanding the concepts and be able to identify the pseudocode for algorithms described in the explorations. Don't get too pressed about not being able to come up with solutions to algorithms problems (especially harder things like dynamic programming), because you won't be expected to solve novel algorithms problems on the exams. Just know how things works and be able to identify problems and you should be set.
Submitted Tue Aug 22 2023
This class couples nicely with data structures and I'm glad I took data structures before hand. If you enjoy mathematical analysis for proving the time complexity of an algorithm then you'll enjoy the class. If you only enjoy coding then this class will be the bane of your existence. Also, I get why NP hard problems are discussed but I definitely hated that module more than anything else in this class. It was way too abstract for my liking.
Submitted Sat Aug 19 2023
Go through the pain of gaining access to the GitHub Student Pack (https://education.github.com/pack), which will get you limited access to Educative and its basic algorithms courses. The material in the course modules might not be sufficient to explain the concepts for you. Attend office hours at least once a week. Remember that the professor and the TAs WANT you to pass this course--if you're struggling, let them know; they'd like you to avoid repeating it.
Submitted Tue Jun 20 2023
Page 1 of 13
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