Algorithms: Design and Analysis, Part 1

Provided by:
9/10 stars
based on  35 reviews
Provided by:
Cost FREE
Start Date TBA
Algorithms: Design and Analysis, Part 1

Course Details

Cost

FREE

Upcoming Schedule

  • TBA

Course Provider

Coursera online courses
Coursera's online classes are designed to help students achieve mastery over course material. Some of the best professors in the world - like neurobiology professor and author Peggy Mason from the University of Chicago, and computer science professor and Folding@Home director Vijay Pande - will supplement your knowledge through video lectures. They will also provide challenging assessments, interactive exercises during each lesson, and the opportunity to use a mobile app to keep up with yo...
Coursera's online classes are designed to help students achieve mastery over course material. Some of the best professors in the world - like neurobiology professor and author Peggy Mason from the University of Chicago, and computer science professor and Folding@Home director Vijay Pande - will supplement your knowledge through video lectures. They will also provide challenging assessments, interactive exercises during each lesson, and the opportunity to use a mobile app to keep up with your coursework. Coursera also partners with the US State Department to create “learning hubs” around the world. Students can get internet access, take courses, and participate in weekly in-person study groups to make learning even more collaborative. Begin your journey into the mysteries of the human brain by taking courses in neuroscience. Learn how to navigate the data infrastructures that multinational corporations use when you discover the world of data analysis. Follow one of Coursera’s “Skill Tracks”. Or try any one of its more than 560 available courses to help you achieve your academic and professional goals.

Provider Subject Specialization
Humanities
Sciences & Technology
4699 reviews

Course Description

In this course you will learn several fundamental principles of algorithm design: divide-and-conquer methods, graph algorithms, practical data structures (heaps, hash tables, search trees), randomized algorithms, and more.
Reviews 9/10 stars
35 Reviews for Algorithms: Design and Analysis, Part 1

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.

Sort By
Afref Fetter profile image
Afref Fetter profile image
9/10 starsCompleted
  • 12 reviews
  • 12 completed
6 years, 6 months ago
Prior experience in the field: Some basic reading on algorithms/data structures. Like: Covered many interesting topics, although most involved data structures. The programming assignments were interesting, and allowed you to work in whatever language you wanted (But... see "Dislike"). The quizzes were worthwhile as well, as opposed to most online courses. The lecturer is very enthusiastic and engaging. His tone is informal and this makes the material easy (& fun) to absorb. Dislike: No algorithms were covered, but this will be covered in Part 2 of this course. Tim Roughgarden's handwriting is a little tough to understand, although he gave ample warning at the beginning of the course. The programming assignments only checked the final output and you couldn't receive too much feedback on your code (But, this provided for some advantages... see "Like"). Suggested improvements: Provide more programming assignments. Overall: A good course... Prior experience in the field: Some basic reading on algorithms/data structures. Like: Covered many interesting topics, although most involved data structures. The programming assignments were interesting, and allowed you to work in whatever language you wanted (But... see "Dislike"). The quizzes were worthwhile as well, as opposed to most online courses. The lecturer is very enthusiastic and engaging. His tone is informal and this makes the material easy (& fun) to absorb. Dislike: No algorithms were covered, but this will be covered in Part 2 of this course. Tim Roughgarden's handwriting is a little tough to understand, although he gave ample warning at the beginning of the course. The programming assignments only checked the final output and you couldn't receive too much feedback on your code (But, this provided for some advantages... see "Like"). Suggested improvements: Provide more programming assignments. Overall: A good course to get started with algorithms, Tim Roughgarden explains even the toughest of concepts with ease.
Was this review helpful? Yes7
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
3 years ago
It is an excellent course. Probably the best proffessor to learn Algorithms. He keeps you engaged. But the course doesn't complete advanced algorithms. They are there as part 2(another course) . But for 5 weeks he covered the important ones. Adding other things would be too much for a 5 week course
Was this review helpful? Yes0
 Flag
prashant singh profile image
prashant singh profile image
8/10 starsCompleted
  • 10 reviews
  • 8 completed
3 years, 10 months ago
This course taught us where else we can use merge sort.heap sort and other basic programs.Doing Princeton's Algorithms course helped me.Majorly here Tim(Instructor) explained the running time of all sorting ,graph programs etc.
Was this review helpful? Yes0
 Flag
Yizhak Abudi profile image
Yizhak Abudi profile image
10/10 starsTaking Now
  • 1 review
  • 0 completed
4 years, 3 months ago
The best course I ever took online. A well understood teacher. Fast pace, no time wasted. Useful, explains the most useful algorithms every technology expert needs.
Was this review helpful? Yes1
 Flag
Steven Frank profile image
Steven Frank profile image
10/10 starsCompleted
  • 59 reviews
  • 57 completed
4 years, 6 months ago
Part I of Stanford’s course on algorithms, taught by Prof. Tim Roughgarden, begins by laying out the criteria by which an algorithm can be judged -- its complexity in time and space, and how well it scales to large input sets. The class then turns to divide-and-conquer algorithms, graph algorithms, and data structures such as heaps, binary search trees, hash tables and Bloom filters. The class is not introductory -- programming ability and basic familiarity with the concepts presented is assumed. As it happens, all of the topics in this class (and its successor) are covered at a simpler level in the excellent MIT 6.00x online class, which should be considered a prerequisite for this one. I would have been quite lost without that introduction, and certainly never felt as if I was covering the same ground again -- this class delves far deeper. Prof. Roughgarden is a fabulous teacher. His presentation is so articulate and so engagi... Part I of Stanford’s course on algorithms, taught by Prof. Tim Roughgarden, begins by laying out the criteria by which an algorithm can be judged -- its complexity in time and space, and how well it scales to large input sets. The class then turns to divide-and-conquer algorithms, graph algorithms, and data structures such as heaps, binary search trees, hash tables and Bloom filters. The class is not introductory -- programming ability and basic familiarity with the concepts presented is assumed. As it happens, all of the topics in this class (and its successor) are covered at a simpler level in the excellent MIT 6.00x online class, which should be considered a prerequisite for this one. I would have been quite lost without that introduction, and certainly never felt as if I was covering the same ground again -- this class delves far deeper. Prof. Roughgarden is a fabulous teacher. His presentation is so articulate and so engagingly down-to-earth that you can lose sight of how complex the material actually is. Fear not, however, because the challenging weekly problem sets will have you scurrying back to the slides and maybe the lectures as well to deepen your understanding. The final exam has a few difficult problems but by and large is easier than the problem sets. Besides the problems, there are weekly programming assignments that have you coding up one of the algorithms discussed that week. You can use whatever language you want -- you’re given a dataset and asked to submit results. In a couple of cases, the datasets are so large that your programming environment may crash, as mine did, resulting in panicked discussion-board postings a lot of ad hoc advice. It was unnecessary. Yes, coding algorithms in the real world means figuring out how to accommodate the limits of your system, but such strategies are not covered in this course and solutions can be elusive. Just getting the algorithm to work right is challenge enough. This is a computer-science course and there’s plenty of math – proofs galore, probabilities, topologies and much more. But it’s never math for math’s sake. Prof. Roughgarden always introduces topics with a statement of motivation – how a mathematical construct can describe or model real-world systems, the sometimes-surprisingly practical applications of abstract graph algorithms or esoteric data structures. The syllabus progresses through a diverse series of topics but the unifying theme is identifying a job to be done and figuring out how best to do it – and more importantly, understanding the elastic limits of “best.”
Was this review helpful? Yes3
 Flag
heinrich vimmstadtl profile image
heinrich vimmstadtl profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
4 years, 9 months ago
I took this course and the follow up, both taught by professor Roughgarden. I taught myself some java beforehand and I studied math in college, which definitely helped when it came to understanding the proofs. The only other coursera courses I had taken were the princeton series in design of algorithms by professor Sedgewick (also great). Professor Roughgarden is awesome. His explanations, proofs, and the motivations for them are well articulated and concise. The course was a nice hybrid between an applied course and a theoretical one, almost all results had an accompanying proof. That said, this course is more mathematical than the princeton ones. The problem sets require a thorough understanding of the material and the programming assignments took me a long time (I am a novice programmer). The discussion boards were very lively and people provided a lot of useful insight into how to approach the problems, without ever giving away t... I took this course and the follow up, both taught by professor Roughgarden. I taught myself some java beforehand and I studied math in college, which definitely helped when it came to understanding the proofs. The only other coursera courses I had taken were the princeton series in design of algorithms by professor Sedgewick (also great). Professor Roughgarden is awesome. His explanations, proofs, and the motivations for them are well articulated and concise. The course was a nice hybrid between an applied course and a theoretical one, almost all results had an accompanying proof. That said, this course is more mathematical than the princeton ones. The problem sets require a thorough understanding of the material and the programming assignments took me a long time (I am a novice programmer). The discussion boards were very lively and people provided a lot of useful insight into how to approach the problems, without ever giving away the answer. I highly recommend this course to anyone wanting to learn more about algorithms and I had a great time taking it.
Was this review helpful? Yes3
 Flag
Julia Brauer profile image
Julia Brauer profile image
9/10 starsCompleted
  • 4 reviews
  • 4 completed
4 years, 10 months ago
Tim Roughgarden is by far the best instructor I have encountered in the MOOC world so far - he manages to be mathematically concise and absolutely hilarious at the same time. The current iteration of part 2 actually has a thread on the discussion forums titled "Favorite Tim Roughgarden quotes", and it has gotten quite some attention. Tim's mantra ("Can we do better?") will stay with me forever. About the course... Pros: The topics are carefully chosen and always motivated by some real-life problem. The programming assignments were absolutely awesome. Some reviewers criticized the absence of an auto-grader, but this has been a conscious decision to enable people to choose whatever programming language they want to work in, so the whole auto- grader issue is really just a matter of preference. I think it makes sense for this course, since the focus is clearly not on implementation-specific details. Another reviewer criticized the (huge... Tim Roughgarden is by far the best instructor I have encountered in the MOOC world so far - he manages to be mathematically concise and absolutely hilarious at the same time. The current iteration of part 2 actually has a thread on the discussion forums titled "Favorite Tim Roughgarden quotes", and it has gotten quite some attention. Tim's mantra ("Can we do better?") will stay with me forever. About the course... Pros: The topics are carefully chosen and always motivated by some real-life problem. The programming assignments were absolutely awesome. Some reviewers criticized the absence of an auto-grader, but this has been a conscious decision to enable people to choose whatever programming language they want to work in, so the whole auto- grader issue is really just a matter of preference. I think it makes sense for this course, since the focus is clearly not on implementation-specific details. Another reviewer criticized the (huge) size of the data sets for the programming assignments. I have to politely disagree. If I'm confronted with a relatively small data set, I might as well go ahead and just use a brute-force implementation. Sure, I can run a sophisticated algorithm on a small data set - after all, I'm doing this class because I want to learn something new... But well, I think we all know how that can go. Personally, I found it highly motivating to deal with data sets that made a brute-force approach absolutely unfeasible. It also made me think very hard about the data structures I used - space is definitely an issue in some of the assignments. Cons: For some reason I just couldn't get myself to enjoy the weekly quizzes. I have thought about it for a while, and I still can't quite figure out why I disliked them. I'll try to explain anyway. There seemed to be two types of questions: The first type required some light-weight calculations, maybe two or three lines and/or some doodling. Those were okay, although I wouldn't have minded something a little more challenging. The second type of questions were... kind of black- and-white. Either you were looking at the problem from the right angle (and then the correct answer was obvious), or you weren't (and then it was just like, "huh?"). I'll admit that I had my fair share of aha-moments with the type-2 questions, and they did complement the lectures nicely, but still, something was missing. I felt like I didn't engage as much with the material as I would have liked. Now the con part of my review turned out to be almost as long as the pro part... but don't let that fool you. This is a great course, highly recommended!
Was this review helpful? Yes3
 Flag
Akshay Jain profile image
Akshay Jain profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
4 years, 9 months ago
The course content was really very apt. You get a good knowledge of the basic algorithms you'll encounter in simple/moderate programming exercises. And it creates a strong base for the part-II, where some more advanced algorithms are discussed.
Was this review helpful? Yes1
 Flag
Sylvain Benner profile image
Sylvain Benner profile image
9/10 starsCompleted
  • 1 review
  • 1 completed
4 years, 10 months ago
Was this review helpful? Yes0
 Flag
Gwen M profile image
Gwen M profile image
10/10 starsCompleted
  • 11 reviews
  • 10 completed
4 years, 11 months ago
I was happily challenged during this class (and I did not make it easier on myself by programming in perl, not so popular nowadays among academics!) This class made me realise why students from prestigious universities have better chances in life: having such enthusiastic, knowledgeable and altogether excellent teacher is such an advantage! The technical content and delivery are both excellent. I am looking forward to get some free time again to take part 2 of this class.
Was this review helpful? Yes0
 Flag
timothy235 profile image
timothy235 profile image
10/10 starsCompleted
  • 12 reviews
  • 10 completed
3 years, 10 months ago
Excellent lectures. Good assignments. The assignments were crafted so that if you understood the algorithm your solution would run in a reasonable amount of time, otherwise the solution would take forever. So that in itself was a good check on your work. If you're teaching yourself programming and want to leave amateur status, you absolutely must learn algorithms, and this course will teach you all the most important methods. Highly recommended.
Was this review helpful? Yes2
 Flag
Shruti Tiwari profile image
Shruti Tiwari profile image
10/10 starsCompleted
  • 2 reviews
  • 2 completed
4 years, 11 months ago
This course is excellent introduction to the world of analysis and design of algorithms. I loved the detailed mathematical proofs accompanying all algorithms covered in the course. The programming assignments were challenging and some of them took more than 5-6 hours to finish. I am an experienced software developer however in most of my work, so far, I did not had to use tricky algorithms. Hence, my algorithm fundamentals were very weak before taking this course. This course has helped me in taking footsteps towards conquering that weakness and with the part2 of the course (along-with Princeton course on algorithm), I hope to have learnt enough to start working in algorithmic domain.
Was this review helpful? Yes0
 Flag
Shubham Agarwal profile image
Shubham Agarwal profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
4 years, 11 months ago
Undoubtedly must for algorithmic enthusiast, computer science interested students.
Was this review helpful? Yes0
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
4 years, 11 months ago
I undoubtedly must for algorithmic enthusiast, computer science interested students.
Was this review helpful? Yes0
 Flag
Jim Humelsine profile image
Jim Humelsine profile image
10/10 starsCompleted
  • 7 reviews
  • 7 completed
4 years, 11 months ago
I have a BS and MS in CS. I've been a software professional for ~30 years. This course compliments Sedgewick's Algorithms courses from Princeton and also on Coursera. Pros: \+ Tim’s enthusiasm - “blazingly fast” algorithms. \+ Proofs had enough description to follow without getting bogged down in too much rigor. \+ Tim’s practical advice: \+ Constant, linear and loglinear operations are so fast that we also get them for free, so we should always consider running them on our data sets, even if it’s not obvious at first that doing so will help solve the problem. For example: \+ Loglinear sort your data. Maybe sorted data will help in the solution. \+ Heap your data. Maybe its constant operations may come in useful later. \+ BFS and DFS linear algorithms are the fast workhorses of graph problems. If you’re not sure how to approach a solution, just do Breadth and/or Depth First Searches to see if either or both approaches lead to the sol... I have a BS and MS in CS. I've been a software professional for ~30 years. This course compliments Sedgewick's Algorithms courses from Princeton and also on Coursera. Pros: \+ Tim’s enthusiasm - “blazingly fast” algorithms. \+ Proofs had enough description to follow without getting bogged down in too much rigor. \+ Tim’s practical advice: \+ Constant, linear and loglinear operations are so fast that we also get them for free, so we should always consider running them on our data sets, even if it’s not obvious at first that doing so will help solve the problem. For example: \+ Loglinear sort your data. Maybe sorted data will help in the solution. \+ Heap your data. Maybe its constant operations may come in useful later. \+ BFS and DFS linear algorithms are the fast workhorses of graph problems. If you’re not sure how to approach a solution, just do Breadth and/or Depth First Searches to see if either or both approaches lead to the solution. \+ Think about your sub- algorithm needs. For example, Dijkstra’s shortest path algorithm requires processes nodes based upon a greedy algorithm that wants the next shortest total sub-path link. When a superlative is part of an algorithm, such as “shortest,” then think about using a heap or priority queue which returns superlative values efficiently. \+ You don’t need to “solve” complicated recurrence relations. If you have a hunch (or hope) of its form, try induction to confirm it. Cons: \+ Some of the quizzes and assignments had confusing wording. They should be reviewed and addressed. \+ The programming assignments involved data that was massively larger than it had to be. A program that finds strongly connected components in a 1,000 node graph properly will work just properly on an 800,000+ node graph, but without straining the development environment. \+ I don’t recall seeing Tim on the forums. A greater presence, even if only to address clarification in confusing assignment wording would have been appreciated.
Was this review helpful? Yes0
 Flag
Ilya Rudyak profile image
Ilya Rudyak profile image
9/10 starsTaking Now
  • 6 reviews
  • 5 completed
5 years, 1 month ago
This course is truly brilliant. What do I mean by that? There is no one algo course to fit everybody: 1) Essence of this course is in crystal clear explanation of the material. It's especially good for people with conceptual and birds-eye way of thinking. Problem sets are doable but you'll get challenge problems (not graded) that sometimes are really hard. 2) It's not a math class (like CLRS and MIT course), it's rather use this approach from UCB textbook (p. 9): "Playing on the strengths of our students , instead of dwelling on formal proofs we distilled in each case the crisp mathematical idea that makes the algorithm work". 3) It's also not a programming class - go to Princeton course. There is a programming assignment on every week but it's by far not enough to understand proper implementation of an algo.
Was this review helpful? Yes0
 Flag
Dmitriy Borisenkov profile image
Dmitriy Borisenkov profile image
9/10 starsCompleted
  • 4 reviews
  • 3 completed
5 years, 1 month ago
Prior experience: I'm software developer with 5 years of experience, thus I had a lot of prior knowledge on the topic before taking this course, but I desired to refresh some of them. Pros: 1\. There are excellent programming assignments in the course. There is no way to solve it without implementing algorithms optimally. 2\. Lectures is consistent, coherent and well read. 3\. There are challenging enought optional theoretical problems in the course. Cons: 1\. The algorithms analysis topic coverage has flaws (e.g. amortization analysis wasn't mentioned at all). 2\. Despite course is introductory many students already familiar with topic, but the is no really difficult (optional) programming assignmens in the course. Overall: I think this course is excelent for anyone who want to familiarize yourself with algorithms. It's also suitable for refreshing knowledge on the topic despite it is primarily aimed to beginners.
Was this review helpful? Yes0
 Flag
Homer Thompson profile image
Homer Thompson profile image
8/10 starsCompleted
  • 9 reviews
  • 7 completed
5 years, 2 months ago
Algorithms: Design and Analysis, Part 1 is an interesting course covering some of what Prof Roughgarden calls the greatest hits of computer science. It's focused much more on math and correctness than is Sedgewick's Algorithms series, which deals with concrete implementations. So they are very different courses despite having similar names. Unfortunately, this type of course doesn't translate nearly as well to the MOOC format as the more implementation centered course by Sedgewick. While Tim Roughgarden is a very good teacher and he gives you the same lectures he gives his students in Stanford taking the class (the actual Stanford lectures are available online and not too hard to find in google), he cannot give the same level of assignments. In a course like this you really need to do lots of proofs and derivations, so Prof Roughgarden should really employ peer grading in future iterations of the course to make it more like the real ... Algorithms: Design and Analysis, Part 1 is an interesting course covering some of what Prof Roughgarden calls the greatest hits of computer science. It's focused much more on math and correctness than is Sedgewick's Algorithms series, which deals with concrete implementations. So they are very different courses despite having similar names. Unfortunately, this type of course doesn't translate nearly as well to the MOOC format as the more implementation centered course by Sedgewick. While Tim Roughgarden is a very good teacher and he gives you the same lectures he gives his students in Stanford taking the class (the actual Stanford lectures are available online and not too hard to find in google), he cannot give the same level of assignments. In a course like this you really need to do lots of proofs and derivations, so Prof Roughgarden should really employ peer grading in future iterations of the course to make it more like the real thing. The assignments aren't as good as the lectures. The quizzes are multiple choice questions while the projects require algorithm implementations where you type in a numerical answer that can usually be arrived at even with lousy implementations of the algorithm, and often even with other much more inefficient but straightforward algorithms. I can't hold it against Tim because it's not a reflection on him, but on the limitations of the online format. I hate to sound too negative though, because I really did learn a lot from Tim in the course and the lectures are of very high quality. Overall it was a great experience taking the course. One thing I really thought was awesome was that he gave optional advanced lectures that weren't required to succeed in the class nor to get an excellent overview of the subject, but that filled in details in the more difficult corners of the topics discussed. Overall I'd highly recommend the course, but would also suggest having a textbook like CLRS to work problems out of while you go through it. My personal highlight in the course was Karger's algorithm for finding minimum cuts in graphs, as it's often not taught until graduate level in a course on randomized algorithms.
Was this review helpful? Yes5
 Flag
soesilo wijono profile image
soesilo wijono profile image
10/10 starsCompleted
  • 19 reviews
  • 19 completed
5 years, 1 month ago
I completed this course with 98% score. So, if average student like me got that percentage you know this is a good course. When compared to the Princeton Algorithm class, this class more focuses on algorithm design paradigms and relevant mathematical models for analysis, as said in the course info. The key of success, (1) watch all the lectures, (2) read the textbooks (CLRS, DPV, KT, SW), (3) write the programming code, (4) follow the discussion forum. That's all.
Was this review helpful? Yes0
 Flag
Greg Hamel profile image
Greg Hamel profile image
10/10 starsCompleted
  • 116 reviews
  • 107 completed
5 years, 9 months ago
Algorithms Part 1 is an excellent introduction to the study of algorithm analysis and design. The course teaches some fundamental principles of algorithm analysis like big O notation and other important topics in algorithm design like data structures to represent graphs, the divide and conquer paradigm, heaps and hash tables. Algorithms discussed include quick sort, breadth first search, depth first search, finding strongly connected components of a graph and Dijkstra’s shortest path algorithm. The course requires the ability to program, but it is language neutral, meaning you can use whatever language you are most comfortable with to complete the assignments. The material is fairly dense and the quizzes and programming assignments are difficult if you haven’t taken a course on algorithms before. I’d highly recommend this course to anyone that wants to get serious about going beyond basic programming/scripting and learning some real ... Algorithms Part 1 is an excellent introduction to the study of algorithm analysis and design. The course teaches some fundamental principles of algorithm analysis like big O notation and other important topics in algorithm design like data structures to represent graphs, the divide and conquer paradigm, heaps and hash tables. Algorithms discussed include quick sort, breadth first search, depth first search, finding strongly connected components of a graph and Dijkstra’s shortest path algorithm. The course requires the ability to program, but it is language neutral, meaning you can use whatever language you are most comfortable with to complete the assignments. The material is fairly dense and the quizzes and programming assignments are difficult if you haven’t taken a course on algorithms before. I’d highly recommend this course to anyone that wants to get serious about going beyond basic programming/scripting and learning some real computer science.
Was this review helpful? Yes0
 Flag
Pedro Forquesato profile image
Pedro Forquesato profile image
10/10 starsCompleted
  • 4 reviews
  • 4 completed
5 years, 11 months ago
The course is difficult, but it is top notch quality, and it really delivers the learning possibility of a real top university course. If you are reallly interested in algorithms and willing to work hard to learn it, this is the perfect opportunity.
Was this review helpful? Yes0
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
6 years ago
Took algorithms course 15yrs ago. I loved this course. Liked the way he explained things. Assignments were challenging and I learned a lot.
Was this review helpful? Yes0
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
6 years ago
I really loved this course. I have enjoyed the art Prof. Tim makes his lectures: he is really enthusiastic and this enthusiasm is infectious, he can really good explain complicated stuff and he has a great sense of humor. The subject of the lectures was also very interesting, especially the depth of analysis. The programming exercises were helpful for understanding of explained algorithms. Really, I liked everything! I also did the second part of this course and it is much more complicated, but it gives you a good feeling to became more intelligent :-) I would definitely recommend this course and it's second part.
Was this review helpful? Yes0
 Flag
Karthik Puthraya profile image
Karthik Puthraya profile image
10/10 starsCompleted
  • 5 reviews
  • 5 completed
6 years ago
I signed up for this course to help me better prepare for graduate studies which I will begin a couple of months. Lacking a formal background in theoretical topics of Computer Science, I found this course immensely useful. I did this course concurrently with the Algorithms I course taught by Prof. Sedgewick. I found this combination, though very hectic, ultimately very rewarding. The theory being taught in this course was complimented nicely by the practical Java programming being taught in Prof. Sedgewick's course. I especially enjoyed Prof. Roughgarden's enthusiasm and teaching style. I don't have any real complaints about the course. Two thumbs-up and looking forward to the second part of the course.
Was this review helpful? Yes0
 Flag
Jesse Spaulding profile image
Jesse Spaulding profile image
7/10 starsCompleted
  • 4 reviews
  • 4 completed
6 years, 1 month ago
I came at this course without any formal background in computer science. Everything I know I've learned as a result of simply learning as I go. However it occurred to me I could never pass a technical interview because I didn't know the most basic of algorithms that interviewers expect you to know. Pros: \- Taking this course made me feel like a bad-ass software developer. I now have a good understanding of algorithm complexity and how to develop solutions in any areas where performance is an issue. \- Tim knows his stuff Cons: \- Tim's handwriting is often quite poor AND what he is diagramming/writing often seem to be way out of sync with what he is saying. This makes things really confusing. I often found I had to look away from the screen and just listen to his voice. \- In some of the other courses I've taken I really get the feeling the professor is there to help me learn.. In this one it feels like Tim is there to simply convey... I came at this course without any formal background in computer science. Everything I know I've learned as a result of simply learning as I go. However it occurred to me I could never pass a technical interview because I didn't know the most basic of algorithms that interviewers expect you to know. Pros: \- Taking this course made me feel like a bad-ass software developer. I now have a good understanding of algorithm complexity and how to develop solutions in any areas where performance is an issue. \- Tim knows his stuff Cons: \- Tim's handwriting is often quite poor AND what he is diagramming/writing often seem to be way out of sync with what he is saying. This makes things really confusing. I often found I had to look away from the screen and just listen to his voice. \- In some of the other courses I've taken I really get the feeling the professor is there to help me learn.. In this one it feels like Tim is there to simply convey information. \- This course did not take advantage of the medium. For algorithms like quick sort or merge sort I can fully understand it with a simple animation so much easier than a long description. See here: http://www.youtube.com/watch?v=y_G9BkAm6B8 In conclusion I think with a bit more effort this course could be amazing. Having said that I did learn a lot and found this to be a very valuable course.
Was this review helpful? Yes0
 Flag
Chris Beard profile image
Chris Beard profile image
10/10 starsCompleted
  • 3 reviews
  • 3 completed
6 years, 1 month ago
My first algorithms course. Prof was excellent; explains things in a very systematic and clear way with great examples.
Was this review helpful? Yes0
 Flag
Brock Sides profile image
Brock Sides profile image
7/10 starsCompleted
  • 10 reviews
  • 8 completed
6 years, 3 months ago
The biggest problem with this class, I think, is that it's language-agnostic. At first I thought that would be great - I can use whatever language I'm most comfortable with - but there are big downsides to this. First, you won't get to see sample code from the instructor after an assignment to compare with your own. And second, since so many different languages are in use, it's hard to get help in the forums. I made it through the sorting algorithms, but I had to give up when we got to graph algorithms, because I had trouble implementing the data structures. I think a better approach would have been to pick a popular language such as Java or Python, and conduct the class in that language. The instructor could then provide a code base that included the data structures, and the students could just focus on implementing the algorithms.
Was this review helpful? Yes1
 Flag
Colin Jack profile image
Colin Jack profile image
10/10 starsCompleted
  • 4 reviews
  • 3 completed
6 years, 2 months ago
Absolutely superb course, the professor is clearly highly passionate about the topic and does a great job of explaining all the content. One thing I'd recommend is if you aren't too hot on probability then do learn that before the course, it is actually quite important.
Was this review helpful? Yes0
 Flag
Jack Shen profile image
Jack Shen profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
6 years, 2 months ago
What was your prior experience in the field? I work as the a lead software engineer in a Fortune 500 company that contracts work for Defence. What did you learn? Many complicated algorithms and more so than the ones I learned during my University years. Also asymptotic analysis was covered in depth which will definitely come in handy in my current work. Did the course meet expectations? Definitely exceeded! What did you like/not like? Really like the amount of detail put into the lecture videos. But did not like the ambiguity of the way some problem sets were worded. How does this course compare to similar courses? This was my first Coursera course so I do not know how to compare. But compared to my university studies I would say it is equivalent to a 4th year subject. I scored the highest among my peers for my 4th year study yet I found this course quite challenging!
Was this review helpful? Yes0
 Flag
Dongliang Yu profile image
Dongliang Yu profile image
10/10 starsCompleted
  • 2 reviews
  • 2 completed
6 years, 2 months ago
Fantastic course for algorithm. The professor is interesting and the lecture is well organized. Great!
Was this review helpful? Yes0
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.