Analysis of Algorithms
Hours per Week
/ 5.0 Difficulty
Page 1 of 12
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
Take soon after data structures, and find resources outside the course. Also, study a lot.
Submitted Wed Jun 14 2023
Focus on activities for the exam. Look up and prep with deriving recurrence formulas, P = NP proofs (lightly touch on), and graph algorithms (Prims, TSP, MST).
Submitted Tue Jun 13 2023
Compared to 261, this course was easier in terms of getting an A grade because the solutions for homework are easily found online and the exams are quite easy. However, the actual learning materials themselves were much more challenging than 261. The course materials were poorly written, and I often found external resources to be more helpful. You can easily find solutions to all the problems and algorithms you need to know for this course. While ChatGPT is great for coding assignments and homework, I recommend trying to come up with solutions on your own first. It provides a valuable learning opportunity. The midterm and final exams make up a significant portion of your grade, but they are straightforward. They are slightly more difficult than the quizzes, but much easier than the homework assignments. It will take a considerable amount of time to fully comprehend the materials, but you can learn a great deal by practicing coding algorithms and solving problems.
Submitted Tue Jun 13 2023
Start early. Look at the homework immediately. Use any resource you are allowed to use.
Submitted Thu Jun 08 2023
Definitely use outside resources. Make sure you spend time ingesting the material. The homework can go quickly, but that doesn't mean you know the core concepts. Prep as much as you can for the tests. Focus on understanding more than memorization. I personally did not find talking to the instructor very helpful, so I would spend your time on outside resources. She is extremely kind though.
Submitted Tue Jun 06 2023
Start early! This class is really interesting but it definitely takes some time to wrap your head around the concepts. My suggestion is to read over the module at the beginning of the week and have it in the back of your head until you're actually ready to take notes/do the quiz/do the homework so it'll be easier to get started on it since you already know at least a little. If you don't understand something check out Abdul Bari because he'll 100% have a video on it. If the pseudocode is confusing or doesn't make sense to you, definitely use your knowledge of the algorithm and try to make a clearer one for yourself! As long as you understand what is happening and why in each step, you'll be fine.
Submitted Sun Mar 26 2023
Both Professor Umma Reddy and Dr. Maher Elshakankiri were great professors, who made sure to contact me regarding important information and the effort to help students out with understanding the material. Make sure to get in to the first Office Hours Session if you can, so that you can ask questions about the material and get to vote on the when office hours are held. While the professors are great, the material can be a bit confusing to comprehend so I would recommend that you do watch Abdul Bari's Algorithm's playlist and look at other online resources while going through this course if you are stuck on a specific topic. If you have taken Calc 1 and Calc 2, or Differential and Integral Calculus, then the first two weeks of the course shouldn't be too difficult, since you're going to be using Limits and L'Hopital's rule.
Submitted Fri Mar 24 2023
Page 1 of 12
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.