Algorithms, Part II
Below are the top discussions from Reddit that mention this online Coursera course from Princeton University.
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations.
Graphs Data Structure Algorithms Data Compression
Next cohort starts July 27. Accessible for free. Completion certificates are offered.
Affiliate disclosure: Please use the blue and green buttons to visit Coursera if you plan on enrolling in a course. Commissions Reddsera receives from using these links will keep this site online and adfree. Reddsera will not receive commissions if you only use course links found in the below Reddit discussions.
Taught by
Robert Sedgewick
William O. Baker *39 Professor of Computer Science
and 1 more instructor
Offered by
Princeton University
Reddit Posts and Comments
0 posts • 151 mentions • top 103 shown below
437 points • ThatTurmoil
[Reupload] I've compiled a list of free online Data Structure and Algorithm courses.
Earlier today I posted a similar thread that was removed, "It [was] inappropriate for [this] subreddit"
I've have received several messages in my inbox today from people asking what happened to the post and requesting specific links. Due to the amount of requests I have decided to reupload the list. If this thread gets removed I will not be reuploading this list. Therefore, I suggest saving or bookmarking the course websites below.
 Berkley: CS 61B: Data Structures YouTube Lectures
 MIT: Introduction to Algorithms
 Princeton: Algorithms, Part 1
 Princeton: Algorithms, Part 2
 Princeton: COS 226
 Stanford: Algorithms: Design and Analysis, Part 1
 edX: Introduction to Programming with Java Part 3: Fundamental Data Structures and Algorithms
Additional thanks to u/slayersource for the following link:
 UPenn edX: 4 Course Series covers basics, data structures, algorithms, and JavaScript
Apparently there is also a compiled list on github of all the available courses online on Data Structures & Algorithms, thanks to u/baltimore for finding this:
 https://github.com/DeveloperY/csvideocourses#datastructuresandalgorithms
31 points • DirdCS
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
222 points • Lechickensoul
I'm 34 and I got my first programming job after about a year of self learning! Here are my main resources
Hello! I'm here to thank this community for the great time and the inspiration it gave in the last months of hardworking. Also, to share some of my humble tips. Feel free to msg and ask for any help. I'm working as a front end developer after a year and a few months trying to learn by myself webdev. I had more details about my personal journey on this freecodecamp post: https://forum.freecodecamp.org/t/oneyearoffccgavememyfirstjobasafrontenddeveloper/151669
Here's a list of online resources that helped me along my journey through the zero webdev to employeedTIguy For frontenders, most of it...

freeCodeCamp: My focus was the fronend since ever, so I did the front end course(the data visualization is great too but I didnt had the time for it). Ive always had the intention to lear a new tecnologie/technique for every new project. Dont do it just for the certificate! Learn SASS on the next project, try to use javascript promises the next time you use Ajax, use github to share yout project! Keep evolving in each new task. Also, try to build a nice personal portfolio website here.

Reddit: Check the r/learnprogramming/ tips, course links, words of inspiration, tons of resources there, subscribe! Look for development section like webdev, javascript, programming humor. Keep up with the community.

Online courses:

Free: 1 Udacity have a great Git course: https://www.udacity.com/course/howtousegitandgithubud775 If you are new around the computer science world dont forget to grab some basics of data structure, algorithms and some logic at Havard https://cs50.harvard.edu/
2  More data Structure at Coursera! This is a pretty tough one, be prepared. The language is Java but dont worry, the trees, liked list and the other stuffs are the same for every language  https://www.coursera.org/learn/algorithmspart1 and https://www.coursera.org/learn/algorithmspart2
3  Wes Bos https://javascript30.com/ course is just amazing for its day to day usability and the good code in it

Cheap: Go for the Udemy discount coupons(a quick search on google will do) and get some of the best online courses for 15 bucks or less
1  Antony Alicea(https://www.udemy.com/user/anthonypalicea/) is amazing at teaching Javascript for begginers, intermediates or anyone who wants to learn some concepts in deep: JavaScript: Understanding the Weird Parts. Just buy it. 2  An overview of everything in one course: https://www.udemy.com/thewebdeveloperbootcamp/ 3  If youre into framworks go for Stephen Grider(https://www.udemy.com/user/sgslo/) React courses or Maximilian Schwarzmüller(https://www.udemy.com/user/maximilianschwarzmuller/) Vue courses(tons of videos on Youtube too)

Expensive: Nope. I'm just too broken

Youtube Channels:
 Daniel Shiffman's Code Train(former RainbowCode)  https://www.youtube.com/user/shiffman
 Sarah Drasner is all over Youtube teaching the SVG art
 MPJ's Funfunfunction  https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q
 Look Lea Verou CSS expert talks

Travis Neilson's DevTips  https://www.youtube.com/user/DevTipsForDesigners

Sites:
 https://csstricks.com/
 https://stackoverflow.com
 https://developer.mozilla.org/

https://codepen.io/ of course lol

Podcasts:
 http://thechangelog.com/podcast/
 http://shoptalkshow.com/
 https://www.codenewbie.org/podcast
I hope you find something useful. Just let me know if guys need any help! Thanks!
27 points • AltairAC
Kako do prvog posla? (programiranje, student)
Položio sam nekoliko kolegija vezanih uz programiranje (osnove programiranja u Cu, osnove strukture podataka i algoritama, osnove objektnog programiranja u C++u, malo assemblera (Motorola 68k), malo mrežnog programiranja u Cu) i samostalno sam malo učio Python no nemam osjećaj da bih se s tim igdje mogao zaposliti pa sam ovdje došao pitati za pomoć.
Trenutno se borim kroz knjigu Demistificirani C++ (4. izdanje) no ta knjiga se bavi jezikom C++, a ne nekim konkretnim tehnologijama koje koriste C++ pa nisam siguran je li to najefikasniji put.
Konačni cilj je posao vezan uz računalnu sigurnost (ovako nešto: https://www.infoworld.com/article/2656634/malwaredissection101.html), ali put to toga je vjerojatno dug, a volio bih ipak nešto programirati za novce za vrijeme studiranja. Malo sam i zbirljiv tj. ne želim se baviti razvojem mobilnih aplikacija. Sve ostalo je ok.
Sad se stalno priča o AIu pa sam razmišljao da prođem kroz ovo: https://www.deeplearning.ai/ https://www.coursera.org/learn/algorithmspart1 https://www.coursera.org/learn/algorithmspart2
Ili da se primim Pythona? (npr. knjige Learning Python i Programming Python  Mark Lutz (https://www.oreilly.com/pub/au/446))
Nešto treće?
Da posao tražim preko student servisa ili se bolje priključiti nekoj stranici za freelancere (upwork)? Koja je neka realna plaća koju bih mogao očekivati za rad preko student servisa? (ne bih radio puno radno vrijeme da studij ne trpi)
8 points • RockerJegos
Am sa iti recomand Algorithms, Part1 si Algorithms, Part2. Sunt explicate fenomenal de bine si poti pune intrebari prin intermediul forumului (sunt sanse mari ca intrebarea ta sa fie raspunsa deja). Cursurile sunt 'predate' de Robert Sedgewick, un om cu greutate in algoritmica.
O carte pe care as recomandao oricui vrea sa se apuce de programare este 'Donald Knuth  The Art of Computer Programming', gasesti in ea algoritmii disecati si explicati.
10 points • qna1
Just want to that there are a few courses that are completely free still, the ones I am /have taking are Bitcoin and Cryptocurrency Technologies, Algorithms, Part I, and Algorithms, Part II, all of which are from Princeton University.
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)
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:
7 points • desrtfx
Program, program, program. And once you have done that, go for
 Algorithms:
 Part I
 Part II
 Coursebook Algorithms 4^th Edition by Robert Sedgewick and Kevin Wayne  Princeton University
And then again, program, program, program
4 points • ZhunCn
When I took CS 251 during Fall 2018, a lot of the material was taken from the following free online courses:
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
6 points • desrtfx
Course is by Robert Sedgewick and Kevin Wayne, both Princeton University
6 points • desrtfx
Algorithms 4^th edition by Robert Sedgewick and Kevin Wayne
Accompanying Coursera courses:
6 points • desrtfx
You need to implement those algorithms and data structures to understand them. Sure, this is a purely academic exercise but of value.
There are plenty courses on algorithms and data structures.
For Java, I'd suggest:
Princeton University  Courses by Robert Sedgewick and Kevin Wayne.
6 points • desrtfx
As far as I can see it this book is copyrighted and not freely distributable.
This violates our "No piracy!" rule. We absolutely forbid illegal activities in form of asking for or distributing pirated material.
Comment removed
A freely available alternative is Algorithms 4^th Edition by Robert Sedgewick and Kevin Wayne.
There is also an accompanying 2 part course on Coursera:
6 points • desrtfx
 Princeton's Algorithms by Robert Sedgewick and Kevin Wayne  on Coursera
 Part I
 Part II
 Textbook: Algorithms 4^th Edition
More or less the standard course on Algorithms
6 points • Arothwell
I used this to help prepare for the last midterm it is taught by the textbook writers:
https://www.coursera.org/learn/algorithmspart1 https://www.coursera.org/learn/algorithmspart2
I used this site to better understand the data structures in the project http://www.geeksforgeeks.org/
8 points • work_account_2019
I found the Algorithm courses (Algorithms I & Algorithms II) on Coursera by Princeton University to be an excellent resource for learning data structures. All the data structures are introduced gradually and the assignments ensure that one completely understands how and when to use that particular data structure. The entire course is in java. I tried various resources for learning Data Structures and Algorithms. This is hands down the best resource for a Java beginner.
​
5 points • desrtfx
Data structures and algorithms are absolutely essential as they are part of the fundamental building blocks of programs.
How to learn it? > FAQ
And
Taught in Java, but a great course:
The course and textbook are by Robert Sedgewick and Kevin Wayne, Princeton University
5 points • desrtfx
Algorithms are not beginner material. You need to be quite proficient to understand them and their use cases as well as benefits.
The standard course for Algorithms is literally called "Algorithms" by Robert Sedgewick and Kevin Wayne  Princeton University:
3 points • bruce3434
It is highly suggested that the mothers should listen to one of the many data structures and algorithm courses (I suggest that of Sedegwick) so children are exposed to elementary programming before birth. It's also a requirement that the mother learns the C++ programming language before carrying children (C++17 idioms are highly important).
Now for age 05, I strongly recommend the Haskell programming language. I think this book is more friendly for children, if you look at the book cover, it has a cool looking elephant drawn too. I think the children will be instantly drawn to the book. From my experience, the most effective strategy is to introduce the babies to LiquidHaskell within a few minutes so they learn how to enforce correctness properties and prove laws just by writing code.
For age between 614, I would like to recommend something a bit more advanced. I recommend the Rust programming language. I would recommend it for age 0  5 but learning how to deal with the borrow checker takes ~5 years on average for an individual. But it's worth the wait :)
At this, the new generation will grow up with approximately 300 ± 5 level IQ with the mean probability of 0.87. Everyone will be able to solve the NP complete problems without even writing and compiling a line of code.
1 points • MedicalBonus
Yeah, I'm thinking this is going to be my approach if I don't find a suitable alternative. Just curious, would you mind providing any of the resources you used besides the one mentioned? I've heard good things about the Algorithms II taught by Dr. Sedgewick, but the more information I have the better haha.
5 points • techwizrd
I'd say it's more difficult than CS 330 and the workload is significantly higher. CS 330, however, had less online resources to refer to. For CS 483, there are tons of YouTube videos that can help you understand a specific concept or algorithm. Additionally, CS 330 had a couple projects but CS 483 is more homework focused (at least when I took it with Nordstrom and with Kosecka).
I'd suggest studying a bit during the summer. Princeton has some good courses on Algorithms (Part I , Part II) and Analysis of Algorithms. If you study a bit over the summer, you can hit the ground running and have one less thing to worry about come Fall.
3 points • DirdCS

Read an algorithms book or follow a course. I recommend Part 1 and Part 2

Filter LeetCode by topic and do questions like that, e.g. String or 2 Pointer, repeat for other topics. Eventually you'll be doing String questions, read it & be like "another motherfucking character frequency count question?!"
4 points • desrtfx
 Problem solving:
 Practice, practice, practice
 "Think Like A Programmer" by V. Anton Spraul, No Starch Press
 "The Pragmatic Programmer" by Andrew Hunt, David Thomas, and Ward Cunningham
 Algorithms and DS
 Part I
 Part II
 Coursebook Algorithms 4^th Edition
4 points • desrtfx
 Problem solving:
 Practice, practice, practice
 "Think Like A Programmer" by V. Anton Spraul, No Starch Press
 "The Pragmatic Programmer" by Andrew Hunt, David Thomas, and Ward Cunningham
 Algorithms and DS
 Part I
 Part II
 Coursebook Algorithms 4^th Edition
10 points • digitizemd
I'll be extremely honest: you're either a troll, an ass or an idiot.
u/ssswerbsss, making a transition to a software developer without a formal education will take a significant amount of time and work on your part, but there's plenty of posts on this sub of people detailing how they did it. I think coursera is a great resource, but definitely check out MIT's OpenCourseWare; it's really fantastic. And my favorite coursera courses are https://www.coursera.org/learn/algorithmspart1 and https://www.coursera.org/learn/algorithmspart2. I think the hardest part to starting out is figuring out what the hell you should be learning. I think finding a computer science curriculum (https://github.com/ossu/computerscience, I haven't actually reviewed this) is a good start before trying to pick up frameworks for building web apps (which is probably the most popular domain right now, versus, say, embedded development).
As for the age part (another reason wolfz18 can go fuck themselves), I basically changed careers around the same time. I already had a degree in english lit and I got a job in a state university system and went back to school when I was 27 for a degree in computer science while working full time. I finished when I turned 30 and have been a developer for four years now and it's been totally worth it except the constant stress of being a developer.
If you're willing to work hard, be patient and have some good luck, you'll be able to transition. I guess living in or near a decent sized city is helpful, too. I live in D.C. so there are plenty of opportunities.
2 points • ZhunCn
When I took CS 251 (Purdue's Data Structures and Algorithms course) during Fall 2018, a lot of the material was taken from the following free online courses:
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
2 points • lowdownfool
I just had these free courses recommended to me by a colleague I really respect:
6 points • desrtfx
The logical answer would be to practice. Build programs.
You could also do the Algorithms courses:
And then, after that, learn Design Patterns.
 Java Design Patterns  quick Overview
 Design Patterns in Java by John Purcell
3 points • tortoise888
As a selftaught dev I did several DS&A courses and the best ones were MIT Open Courseware Introduction to Algorithms and Princeton's Algorithms course on Coursera. Both are totally free. After I did those I just did all the Leetcode Easy/Mediums in the Explore track and that was enough to pass 90% of my interviews.
I also did InterviewCake and while it's nice I don't think it was worth the price tag and had a lot of overlap with the previous mentioned courses.
https://ocw.mit.edu/courses/electricalengineeringandcomputerscience/6006introductiontoalgorithmsfall2011/
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
7 points • [deleted]
I'm in the same situation. Completely forgot most of my DS&A course other than basic ideas/operations. I beat my head on about 50 easy/medium Leetcode problems before coming to the conclusion that I just did not have the proper base anymore. I would watch question solving videos on youtube but it still did not feel good.
​
So I went back and watched some college courses. The ones by Marty Stepp teaching at Stanford are pretty good, especially for recursion.
https://www.youtube.com/watch?v=9vIyTn7ayac
​
For data structures, I am finding Robert Sedgewick's Coursera course from Princeton to be really good. I'm finishing up Part 2 now. I skip the assignments but implement the data structures in another language. I feel so much more prepared for Leetcode after this.
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
​
There is also an MIT course that is often recommended here but I did not find it useful. It was too abstract for me. I need a crash course and to see some code behind the algorithms.
3 points • desrtfx
Basically the reference book/course:
Robert Sedgewick and Kevin Wayne: Algorithms 4^th Edition with the accompanying Coursera Courses:
9 points • my_password_is______
for $599 ??
hell no
you can read this for free
http://interactivepython.org/runestone/static/pythonds/index.html
you can do this coursera course for $49 a month
https://www.coursera.org/specializations/javaobjectoriented
this two look free
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
this edx course is $99
https://www.edx.org/course/algorithmsanddatastructures3
$50
https://www.edx.org/course/datastructuresanactivelearningapproach
$99
https://www.edx.org/course/algorithmsanddatastructuresinc2
and you've got this fantastic site which shows A*, graphs and pathfinding
https://www.redblobgames.com/
5 points • desrtfx
The logical answer would be to practice. Build programs.
You could also do the Algorithms courses:
And then, after that, learn Design Patterns.
 Java Design Patterns  quick Overview
 Design Patterns in Java by John Purcell
8 points • bhrgunatha
My preference is for Tim Roughgarden's Courses on Stanford's Lagunita platform.
He covers the theoretical foundations and takes a step by step approach to proving why algorithms work and how to analyse them as well as covering several different paradigms with examples to demonstrate the approach. There are exercises to test your understanding with practical exercises too; you're provided an input file and have to give the correct answer so you can use whatever language you want to implement the algorithm. I think these are the gold standard introduction to algorithm/data structure courses.
Many people also like Robert Sedgewick and Kevin Wayne's Coursera courses
You must use Java for their exercises. You can enrol free by auditing the course, but I think you need to pay to get feedback and take part in the exercises. I took these on Coursera's original platform where it was all free including exercises.
Supplemental reading. You usually see the same books recommended when asking about algorithms:
 Introduction to Algorithms. Cormen, Leiserson, Rivest, Stein or CLRS. This is the "bible"  very rigorous and academic but there's a reason it's the top rated algorithms book.
 Algorithm Desgin. Tardos and Kleinberg. Still academic but a bit more approachable than CLRS.
 Algorithms. Sedgewick & Wayne  the companion to their Coursera courses  the website has a wealth of detail and supplemental information, well worth checking out.
 The Algorithm Design Manual. Steve Skiena. A much more practical approach to designing and using algorithms often praised for the "war stories" included where he illustrates the algorithms with real world situations that they help with.
47 points • dinmordk1
For Theory/Lectures
 https://www.youtube.com/channel/UClEEsT7DkdVO_fkrBw0OTrA
 https://www.geeksforgeeks.org/datastructures/
 https://www.geeksforgeeks.org/fundamentalsofalgorithms/
 https://www.coursera.org/learn/algorithmspart1
 https://www.coursera.org/learn/algorithmspart2
 https://www.coursera.org/specializations/algorithms
 https://ocw.mit.edu/courses/electricalengineeringandcomputerscience/6006introductiontoalgorithmsfall2011/lecturevideos/
 https://www.codechef.com/certification/datastructuresandalgorithms/prepare#foundation
 https://www.amazon.com/ElementsProgrammingInterviewsInsidersGuide/dp/1479274836/ref=sr_1_3?crid=Y51H99ZLXW8S&keywords=elements+of+programming+interviews&qid=1558622746&s=gateway&sprefix=elements+of+pro%2Caps%2C349&sr=83 [C++/Python/Java]
 https://www.amazon.com/CrackingCodingInterviewProgrammingQuestions/dp/0984782850/ref=sr_1_1?crid=10BA7LH4GNFTS&keywords=cracking+the+coding+interview&qid=1558622733&s=gateway&sprefix=cracking+the+co%2Caps%2C368&sr=81
For Practice
 https://www.hackerearth.com/practice/
 https://www.hackerrank.com/dashboard
 https://leetcode.com/problemset/all/
 https://www.interviewbit.com/practice/
 https://www.spoj.com/problems/classical/sort=6
 https://www.codechef.com/problems/school/?sort_by=SuccessfulSubmission&sorting_order=desc
 https://codeforces.com/problemset?order=BY_SOLVED_DESC
 https://practice.geeksforgeeks.org/
 https://a2oj.com/ps
 https://projecteuler.net/archives
 https://hack.codingblocks.com/
 https://www.reddit.com/r/dailyprogrammer/
1 points • aburthinds
If you have an itching for a course like that— Princeton has two free algos courses on coursera
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
Very well done.
2 points • desrtfx
Coursera  Princeton "Algorithms and Data Structures"  Robert Sedgewick and Kevin Wayne:
1 points • churumegories
https://www.coursera.org/learn/algorithmspart1
And
https://www.coursera.org/learn/algorithmspart2
I took those myself and really learned a lot.
1 points • desrtfx
Go for Sedgewick and at least skim over the book to get an idea of what algorithms and data structures are available.
I'd highly recommend the courses that the book accompanies (only start at certain times  both parts have sessions starting on the 17^th Dec):
3 points • desrtfx
Keep doing the MOOC. Don't worry about anything else for now.
You can only become a good programmer (in any language) through continued practice.
Way later, when you are through both parts of the MOOC and when you have written some programs, start on Data Structures and Algorithms. I said later, because the topic requires some knowledge and experience.
I'd recommend Robert Sedgewick and Kevin Wayne's course:
Then, move on to design patterns  Java Design Patterns
But please, for now, only bookmark these links and don't worry about them yet. All these are material for way later.
1 points • aProspectiveStudent
> Coursera Algos course by Tim Roughgarden
That one or Sedgewick's. Both would be great.
https://www.coursera.org/learn/algorithmspart1 https://www.coursera.org/learn/algorithmspart2
1 points • ZhunCn
When I took CS 251 during Fall 2018, a lot of the material was taken from the following free online courses:
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
There isn't much to do to prepare for the courses besides study the textbook and slides in advance and throughout the course.
2 points • desrtfx
Taught in Java, but a great course:
The course and textbook are by Robert Sedgewick and Kevin Wayne, Princeton University
1 points • aProspectiveStudent
Princeton's algorithm course, taught by Robert Sedgewick:
1 points • koderpat
There are some online courses available that can give you some exposure. They come with video lessons and coding assignments that are graded electronically:
https://www.coursera.org/learn/algorithmspart1 https://www.coursera.org/learn/algorithmspart2
I went through the princeton courses when I was practicing for the Java position I am in currently.
3 points • kinaetron
I've been eyeing up these for a while