Algorithms
Below are the top discussions from Reddit that mention this online Coursera specialization from Stanford University.
Algorithms are the heart of computer science, and the subject has countless practical applications as well as intellectual depth.
Algorithms Dynamic Programming Greedy Algorithm Divide And Conquer Algorithms Randomized Algorithm Sorting Algorithm Graphs Data Structure Hash Table Spanning Tree NpCompleteness
Reddsera may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Coursera. Thank you for using these buttons to support Reddsera.
Taught by
Tim Roughgarden
Professor
and 13 more instructors
Offered by
Stanford University
This specialization includes these 4 courses.
The primary topics in this part of the specialization are: asymptotic ("Bigoh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts).
Tim Roughgarden
10 mentions
The primary topics in this part of the specialization are: data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadthfirst and depthfirst search, connectivity, shortest paths), and their applications (ranging from deduplication to social n...
Tim Roughgarden
1 mentions
The primary topics in this part of the specialization are: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, optimal search trees).
Tim Roughgarden
4 mentions
The primary topics in this part of the specialization are: shortest paths (BellmanFord, FloydWarshall, Johnson), NPcompleteness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems (analysis of heuristics, local search).
Tim Roughgarden
1 mentions
Reddit Posts and Comments
1 posts • 432 mentions • top 50 shown below
22 points • rjray
Recommendation for new Clojure learners: the Coursera Algorithms Specialization
I just finished the 4class (16 weeks total) Algorithms Specialzation from Coursera. Prior to this, the only real Clojure I had written was in solving Project Euler problems. I felt like this would give me something more substantive to learn, and I was right (more so than I expected).
I found it very challenging, figuring out how to implement algorithms like QuickSort or Dijkstra's shortest path in a functional paradigm with immutable data structures. I have a B.Sci. in software engineering, but I've been out of school for nearly 30 years. I assumed (!) that this would be mostly a review of the algorithms study I had done in college. It turned out to be much more indepth than what I had done so long ago. So not only did I get to push myself into more substantive Clojure development, I also learned a lot of material that was new to me. As a bonus, there were several of the programming assignments that ended up being flatout EASY to implement in Clojure, given that maps, sets, etc. are all firstclass types. And most of the Clojure solutions were very short and compact.
Overall, I feel like I got a lot out of this series of classes, and really extended my grasp of FP in general and Clojure in particular.
(Note: the classes do require a monthly subscription fee. I am not affiliated with Coursera in any way or form, and I do not benefit from anyone subscribing to these classes.)
13 points • 14ashray
Try this course by Stanford University https://www.coursera.org/specializations/algorithms it's worth it. Excellent instructor
10 points • Eufrasia_
Has anyone done the Algorithms course from stanford ? Is it worth doing it ?
https://www.coursera.org/specializations/algorithms
here's the link for it.
9 points • stellar678
Help set up or join a local study group for algorithms and data structures ?
Hi all 
I'm looking at signing up for the Algorithms Specialization on Coursera (https://www.coursera.org/specializations/algorithms).
As a selftaught programmer, I have a gap in my computer science fundamentals that I'm trying to fill, and this set of courses seems like a good way.
Are you interested in doing the same and setting up a weekly local study group? I'm thinking up to around 5 people who could get together for two hours, two times per week at a cafe, library, coworking space, something like that.
I know that I'm more likely to complete the courses, and have an easier time getting through them, if I'm doing it with some peers. The course takes 4 months if you're doing 7 hours a week  we might move more quickly if the group is up for it.
7 points • pieter_steenekamp
I recommend Tim RoughGarden's Stanford series of MOOCs on algorithms @ www.coursera.org/specializations/algorithms .
9 points • ZestyData
Learn the 4 principles of Object Oriented Programming, and also the SOLID principles. And practise them. Write OOP code just for the purpose of using those principles.
I assume you learned Data Structures & Algorithms (DSA) in your masters degree? Trees, Binary Search Trees, Hash Tables, Sorting algos, Search, Shortest path, etc. If not: https://www.coursera.org/specializations/algorithms
If you did learn DSA, use Leetcode to practice coding problems. This is the website for CS professionals to practice tech firm interviewstyle problems, and general coding problem practice.
8 points • unknownuserNs
Which Specialization is more suitable?
TLDR;
Which coursera specialization is better for algorithms and data structures (Standford's or UCSD's)
Hello there,
I'm currently a first year computer engineering student, almost finished my first year though, I took two programming languages courses this year (I had no prior knowledge), I took both MATLAB and C++ both courses that had some advanced concepts like OOP,Polymorphism ,I didn't take separate algorithms or data structures courses,they aren't taught in my college as separate courses I guess I might be unaware of the syllabi though, I prefer self learning anyways, however I'm planning to study them this summer, so I found two coursera specializations and I'm hesitated which one would be more suitable.
However those are the links for reference, and advice is always appreciated! , And thanks in advance! :)
1_Data Structures and Algorithms Specialization  UNIVERSITY OF CALIFORNIA SAN DIEGO
12 points • DIYjackass
I think that this course would be a great introduction:
Introduction to Computer Science and Programming from MITx.
It is a very involved course and covers a lot of ground, but it has more focus on the things are important to building strong foundations when compared to CS50. CS50 does things like throws external sources at you and says here this is web development and this is cyber security. When they introduce it to you, you don't have the background to understand the context of what you are reading, and you keep yourself busy without effectively learning. One of the pitfalls of being a beginner is mistaking being busy for being productive.
After I learned basic programming I went through this MOOC series: Algorithms from Tim Roughgarden on coursera.
It was super challenging but really built my programming chops because I had to learn how to "think like a computer scientist" by mastering control flow, imperative programming, and the effective representation of data. Then you need to learn how to deal with larger software projects. That's the stage I am on.
3 points • BB611
My recommendation is Tim Roughgarden's Algorithms Specialization at Coursera. It's structured, Roughgarden is a very good teacher, and you'll actually learn the fundamentals you need to solve problems. It's about ~160 hours total if you're a total beginner, so it's 12 months if you're working hard.
A lot of people here are recommending CLRS. I wouldn't use it even though I've worked through it at various points over the last year and my algorithms course was taught in it. It's focused on the mathematical analysis rather than practical understanding and implementation of algorithms. You can use it for that, but that's not the intended audience of the book.
3 points • tomekanco
I really liked this series by Tim Roughgarden.
3 points • handsomejack777
Ok thanks
Is this the one?
https://www.coursera.org/specializations/algorithms
I can't seem to enroll without giving credit card information.
3 points • driscoll42
I took the Stanford one before applying for OMSCS and I think it helped me get accepted. Good set of classes: https://www.coursera.org/specializations/algorithms
6 points • RainwaterTrap
CPEN 221 is very similar to MIT’s Software Construction course. You can get a headstart if you work through some of that. Bonus: it’s also one of the most applicable courses to actually working as a software engineer, so you can get a small sense of whether you might like that career path.
I’d also recommend looking at an algorithms class. Stanford’s is good. This will help you in software interviews and CPSC 221.
In general CPEN is a lot of learning how to learn. You’re not expected to know Java before 221 but you should be okay with it by the end of September. You don’t need to know anything about hardware but you’ll have built a toy processor in Verilog by the end of second year. This is also the way it is on the job: you don’t need to know any of them before you start, but you might work in 4 different languages in the span of a 4 month coop.
2 points • Dogopusss
Maybe getting started with Algorithms and Data Structures would be the best way to go. Since you already know the basics of Python, you can start by doing this Stanford University Algorithms course from Coursera.
Coupled with these, starting out with solving basic algorithmic problems at Hackerrank / Codechef should be a good way to go.
All the best!
​
​
2 points • NFLAddict
do you have a solid math background? not that you 'need' it persay, but it would make it a little easier. this is prob the best course ive ever taken, but it gets a little math heavy at times, some people like learning the actual proofs of the algorithms. not just learning the algorithm but why it works the way it does, why its correct etc...you can always skip those videos though
4 courses. different paradigms in each. divide and conquer / greedy/ dynamic programming...also teaches many diff data structures. its challenging, but give it a try. see how you like it. hes an excellent teacher.
2 points • danielroseman
Depends what kind of thing you want. For an actual course, I definitely recommend Tim Roughgarden's one on Coursera: https://www.coursera.org/specializations/algorithms  it looks like another session of this has just begun this week so an ideal time to sign up.
23 points • RambaFoxRal
Programmers of r/India , I need advice on which Algorithms courses to recommend to a friend(I have a list of em)
This two part course from MIT OCW
2)Design and Analysis of Algorithms
The NPTEL course by Naveen Garg
1) Data structures and Algorithm
These two Princeton courses from coursera.
These two Stanford Algorithms courses.
1) Algorithms design and Analysis 1
2)Algorithms design and Analysis part 2
The above two courses are available as a 5 part course in coursera
So which of these should I ask him to complete? He said he is learning some python(I don't know how proficient he is in it) and wants to learn machine learning.(I think he is being bit naive in thinking learning ML without a good DSA base)
I also want to know the websites where you can do code challenges that may or may not get you a Job interview(I know about Hackerrank but nothing else).
He has asked me some advice on this as I was interested in learning programming a while back(I have given up on it for now).
What are the things he should learn at the very least to get a entry level job. He has been in TCS for nearly 3 years as a support guy. Two main things.
1) Anything else you guys recommend he should do?(as in like an intro to programming like CS50 or the MIT intro to programming with python)
2) How should he progress?(as in the sequences of courses one should do)
3) How long would it reasonable take to cover said courses?(as he is working right now)
5 points • deliberatelymistaken
What is the difference between Stanford's paid algorithms specialization on Coursera and the free algorithms course by Stanford on their own website?
I am referring to these courses https://www.coursera.org/specializations/algorithms
https://lagunita.stanford.edu/courses/coursev1:Engineering+Algorithms1+SelfPaced/about
39 points • ChuckStrange
Algorithms courses  prep for Graduate Algorithms
There are some good online algorithms that explore algorithms, including graphs (Coursera  Stanford and Princeton algorithms courses). They are good courses, and you can download the slides for offline reading  I recommend them when you have spare time.
The Princeton course has two parts:
The Stanford algorithms specialization has four courses:
4 points • iusedtoloveavltrees
How do I prepare for 373?
Not so good mark in 263 (66, check my history), want to rise from the ashes in csc373.
Assuming I have a summer to prepare, what are the best things to go through to ensure I ace 373?
I heard good things about these;
https://ocw.mit.edu/courses/electricalengineeringandcomputerscience/6006introductiontoalgorithmsfall2011/
https://www.coursera.org/specializations/algorithms
Advice please? RemindMe! December 2017 for redemption story
4 points • leungleoqin
Algorithms Part 2 still not open  any alternatives?
The course page was created in Coursera more than two months ago. Originally it is said to be starting in October 2016 but still hasn't after two months. Now the page says it will start in December 2016, but again, still waiting. I have completed Part 1, and some classmates said the constant delay is due to Coursera's policy of shifting to purchaseonly courses. So I am not even sure if the course will ever begin.
Are there any good alternatives to learn about algorithms? I heard about the Stanford course but unfortunately it is now purchaseonly.
Or should I just wait and start the next course on Functional Programming/Scala first? I assume it won't require specific knowledge from that particular Algorithm course?
Thanks!
6 points • CompSciSelfLearning
https://ocw.mit.edu/courses/electricalengineeringandcomputerscience/6006introductiontoalgorithmsfall2011/syllabus/
http://www3.cs.stonybrook.edu/~algorith/videolectures/
https://www.coursera.org/specializations/algorithms
10 points • ConnorMcLaud
Practice makes perfect.
Incomplete list of what can help you
 Topcoder tutorials
 Cormen. Introduction to Algorithms book
 Skiena. Algorithm design manual book
 Princeton's Algorithms two part course at Coursera
 Stanford's Algorithm Specialization at Coursera
 MIT Algorithms course at OCW (completely free)
With deliberate practice knowledge above will be enough to land you a job at Google or whatever you want.
1 points • Crislips
I'm looking at the (Stanford Coursera algorithms course right now.)[https://www.coursera.org/specializations/algorithms] Does this look like it covers the right prerequisite material or should I review something else?
1 points • IserlohnArchmage
He also has algorithms courses on Coursera, which I assume may have the similar content.
1 points • Lostwhispers05
Thanks for the response. Not from the US sadly.
The most widely recommended and exhaustive course I've found is this specialization course on Coursera, which is a specialization track made up of 4 DS&A courses.
In terms of accreditation it seems it might not carry much ballast, but do you reckon it might reflect more willingness to independently learn and plug in gaps.
1 points • JustPear
Will 4.1 the coursera Algorithm specialization be enough?
(And thereafter practicing questions)
1 points • Redducer
C’est une forme de développement. Quand je parle d’algorithmique je pense par exemple à ça: https://www.coursera.org/specializations/algorithms C’est une introduction au sujet, et à mon humble avis, à moins d’etre un authentique génie, on n’apprend pas tout ce qui est dedans par la seule pratique. Il y a de la théorie, pas triviale.
1 points • find_my_path01
Try to look into data structures and algorithm design. No matter which way tou decide to take your career as a developer. This will help you.
https://www.coursera.org/specializations/algorithms
This is the one that i have tried out. Really helpful.
1 points • lina_d_inrahd
Thanks again, now I understand the use of learning data structures and algorithms to become an efficient developer Algorithms specialisation by Stanford will this course cover everything I need to understand data structures and algorithms? Or would this be an overkill. There is an another course offered by Princeton uni but it looks like there's only a part of it available online. And also please suggest If there's any better alternative to these courses. Are there any other concepts I need to build, which I might have missed because of not doing CS degree, before doing the udemy course you suggested?
1 points • WebNChill
Like to ask, what made you decide on the Princeton one versus the Stanford algorithm class? Stanford Algorithm Class
1 points • austinzheng
Coursera has classes from both Princeton and Stanford that cover the material to a level expected from a CS undergrad (e.g. their Algorithms track).
I took the Stanford courses some time ago and they were extremely helpful for someone with no formal CS background. They do represent quite a bit of time commitment (if you want to do more than just watch the lecture videos), but they are free.
1 points • ghostat1m
I'm currently learning DSA from Stanford University's Algorithms specialization on coursera. It is a 4 part course and can be audited for free. They teach you algorithms independent of any programming language and only provide u with pseudo code.
1 points • chinacat2002
https://www.coursera.org/specializations/algorithms
There is one from Stanford and another from Princeton.
Both are excellent.
You'll have to look at the topics list.
1 points • llamagish
This one? https://www.coursera.org/specializations/algorithms?
1 points • DargeBaVarder
I was looking at: https://www.coursera.org/specializations/algorithms Does that look any good?
What about data structures?
1 points • crosswindzz
What about the Stanford Algorithms specialization on Coursera? I haven't taken it, but it has some great reviews: https://www.coursera.org/specializations/algorithms
1 points • zeValkyrie
Thanks  I did the Khan academy algorithms course a while back. I don't think it was as in depth (or it has too much hand holding) as I would like (it was interesting to code up merge sort, quicksort, etc but I retained very little of the details). I decided to start working through this https://www.coursera.org/specializations/algorithms which so far looks good and covers things I definately don't know yet.
1 points • roastvarren
Go for UCL course. The Queen Mary one doesn't offer a DS&A module (which is a pretty big omission)
However, if you do go for Queen Mary, there are online courses out there to get yourself familiarised with those concepts. I'd personally recommend this one
1 points • I_Am_Become_Dream
Coursera has several Stanfordrun courses on this. Here's a sequence on algorithms https://www.coursera.org/specializations/algorithms Browse through those and check them out. You usually don't need much more than videos and assignments.
1 points • BeMyPenPalPlease
Since you already have a BE in Computer Science, you should be good with the basics. To build on top of what you already know, I would recommend this: https://www.coursera.org/specializations/algorithms
I was in a similar situation as you till very recently. Took this course, prepared, started my new job 3 weeks ago. :)
1 points • klexomat3000
Verstehe. Also ich will dir auch nicht C++ aufschwatzen. Es kommt natürlich darauf an, was du so lernen möchtest. Sprachen wie C++ bieten sich gut dafür an so Datenstrukturen und Algorithmen zu lernen, weil sie dich relativ nah an den Speicher lassen. Wenn dich das interessiert, kann ich sie dir empfehlen. (Wobei es auch nicht unmöglich ist das mit anderen Sprachen zu lernen.)
Was die Länge der Bücher angeht hast du natürlich recht. Das wirkt erst mal ernüchternd. Aber wie gesagt, es ließt sich schneller als man denkt. Die hohe Seitenanzahl kommt schon allein deswegen zusammen, weil viel Code gedruckt ist. In dem ersten Buch sind nach jedem Kapital (ca. 50 Seiten) auch Übungen mit dabei, die machen solltest. (Der Author sagt eindeutig, wer die Übungen nicht macht, hat das Buch nicht gelesen.) Das lockert das ganze sehr auf und macht Spaß. Ich habe damals im Studium jeden Abend ein Kapital gelesen und danach die Übungen gemacht. War nach 6 Wochen oder so durch. Danach hast du halt ein solides Fundament. Soweit ich mich erinnere war auch kein Kapitel überflüssig oder zu komprimiert geschrieben.
Für Algorithmen kann ich den Kurs von Tim Roughgarden empfehlen. Ansonsten lohnt es sich wirklich auf Websites wie HackerRank die Probleme zu lösen. (Du schreibst ein Programm und die Website checkt dann ob es anständig und effizient läuft.) Das ist ein super Spaß und Coding Interviews sind danach ein Witz.
1 points • Alaharon123
I don't know how you did 106A, but it's followed by 106B and 161. Note that 161 has a Coursera version (each individual course is free, don't buy the specialization) simply called Algorithms and that although oncampus it requires 103 and 109 beforehand, you can likely get away with not taking a Discrete Math course because the Coursera version covers necessary math as needed.
1 points • not_a_theorist
I recommend https://www.coursera.org/specializations/algorithms
1 points • hextree
Nah, it was Tim Roughgarden: https://www.coursera.org/specializations/algorithms
I did it back when the course was free. Looks like it's no longer free.
15 points • CoderMonkey123
Here's a list of a few free and good Algo & DS courses:
1 points • itslenny
Hmm looks like they no longer have the classes I took. Which were just called DSA 1 and 2.
Seems like they replaced it with an algorithms specialization. Same school, same professor. I'd assume the content is similar.
https://www.coursera.org/specializations/algorithms
6 points • enum5345
See, the thing is, when you're actually working, you probably only think about CS concepts like 1% of the time. A lot of people slowly forget after graduating college, but as long as you remember the idea behind then, you can look it up.
If you want to see what a top company like Google recommends studying: https://careers.google.com/howwehire/interview/#interviewsforsoftwareengineeringandtechnicalroles If you can recognize all the terms in this list, that's a good place to be. If you can actually describe everything, even better.
I recommend taking some free online courses like on Coursera. Example:
https://www.coursera.org/learn/csalgorithmstheorymachines
https://www.coursera.org/specializations/datastructuresalgorithms
https://www.coursera.org/specializations/algorithms
The courses might teach you a little bit about hardware, but you can skip those if you want.
edit: If these courses aren't free, look around on other sites. There are even plenty of videos on youtube if you know what to search for.
3 points • Street_Theory
I’m currently an undergrad majoring in Computer Science and Physics, so hopefully I can lend some helpful info.
As far as the typical math sequence is concerned, we do Algebra 1, Geometry, Algebra 2, PreCalculus, Calculus 1 (AB), Calculus 2 (BC), Calculus 3 (Multivariable) in that order starting from Algebra 1 in 7th/8th grade.
I’m not sure how far you’ve done math. You said till Geometry, so in that case, you would technically need to know Algebra 2 and PreCalculus before you start any Calculus.
I would highly recommend Professor Leonard on YouTube (https://m.youtube.com/channel/UCoHhuummRZaIVX7bD4t2czg). Go to his YouTube channel and click on Playlists at the top. He has complete video playlists for Calculus 1, 2, AND 3. He also has playlists for PreAlgebra, Intermediate Algebra, and PreCalculus, but they’re not complete like the Calculus ones. Focus on the playlists that say fulllength videos as those are usually the best. Keep in mind though that his videos are pretty long  23 hours each. However, he is the only reason I survived Calculus in college. He’s an absolutely phenomenal teacher. So if you want to master calculus, I highly recommend Professor Leonard.
Other than that, you also have KhanAcademy which is a pretty good (if not in depth) resource to at least get a idea of the topics in every course. You could maybe do Algebra 2 and PreCalc through KhanAcademy (supplementing with Leonard as needed) and use Professor Leonard more for the higher math like Calculus. Or if you want and I think this should be ok: you could just try watching from the beginning of Leonard’s Calculus 1 (Full length vids) playlist. He starts out pretty basic. See if you understand like the first 4 vids. If not, then do Algebra 2 + PreCalc like I mentioned before.
You could also do courses through edX, Coursera, and udemy, which all have very good online courses. I’ll put some recommendations below to help you get started.
As far as “CS math” is concerned, that generally means discrete mathematics and Algorithms. In general, you don’t really need like PreCalculus or Calculus for this. However, you need a decent amount of basic mathematical maturity to be able to handle the complexity of an in depth Algorithms course which is why in a sense you kind of should do it.
So, in general, I would first recommend building some basic math maturity i.e. maybe till or through Calculus 1 to get yourself ready. And then, I would recommend doing some of the CS specializations through Coursera to acquire more of a formal CS background with respect to Discrete math, Algorithms, and Data Structures. I’d recommend doing all the courses in the following specializations:

https://www.coursera.org/specializations/algorithms

https://www.coursera.org/specializations/datastructuresalgorithms
Later on, you could also look at courses on AI, Machine Learning, and Deep Learning. Coursera has some great courses for these topics.