Algorithms, Part II
Below are the top discussions from Reddit that mention this online Coursera course from Princeton University.
Offered by Princeton University. This course covers the essential information that every serious programmer needs to know about algorithms ... Enroll for free.
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
Robert Sedgewick
William O. Baker *39 Professor of Computer Science
and 1 more instructor
Offered by
Princeton University
Reddit Posts and Comments
0 posts • 611 mentions • top 50 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
30 points • miraclestyle
It prepares you a lot. That's a Princenton University course, presented by no one else but Robert Sedgewick, the prominent Computer Scientist credited for inventing LeftLeaning Red Black Binary Search Tree (among other contributions), and professor at the university. The course's assignments are hard. The overall content quality is exceptional, with so many quality tools tailored for online learning. There's the second part of the course (https://www.coursera.org/learn/algorithmspart2), which is even more challenging. And it's free! Skiena's youtube course (https://youtube.com/playlist?list=PLOtl7M3ypDX6ic0HGT0PUX_wiNmkWkXx) is also excellent.
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!
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.
7 points • pingus3233
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
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.
9 points • desrtfx
DS&A (Data Structures and Algorithms) are vital to programming.
> What is a good place to learn them.
That question is not that easy to answer without knowing the programming language(s) you know.
For Java, there is "Algorithms" by Robert Sedgewick and Kevin Wayne  Princeton University
 Coursera course:
 Part I
 Part II
 Coursebook
 Algorithms 4^th Edition
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 • RexTheWriter
 Coursera course:
 Part I
 Part II
 Coursebook
 Algorithms 4^th Edition
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 • 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.
​
1 points • Karthi_wolf
Week 4 of the coursera Algorithms 2 course from Princeton. The accompanying book is also really good. Here's the link to the course.
https://www.coursera.org/learn/algorithmspart2
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.
7 points • DazzlingDifficulty70
Depends on what language you are interested in but general answers are:
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 • 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.
6 points • RedPandaBearCat
Princeton's online course on Coursera's platform is the best:
Algorithms by Robert Sedgewick and Kevin Wayne.
Algorithms, Part I  by Robert Sedgewick and Kevin Wayne.
https://www.coursera.org/learn/algorithmspart1
Algorithms, Part II
https://www.coursera.org/learn/algorithmspart2
The corresponding textbook is:
Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne.
Its site:
https://algs4.cs.princeton.edu/home/
​
After that, you could also study & use the classic CLRS book:
Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
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.
8 points • aqua_regis
MOOC Java Programming from the University of Helsinki.
After that, some practice, then, "Algorithms" by Robert Sedgewick and Kevin Wayne  Princeton University
 Coursera course:
 Part I
 Part II
 Coursebook+ Algorithms 4^(th) Edition
Followed by more practice and then look into Design patterns  as a starter: https://javadesignpatterns.com
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 • 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
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/
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.
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 • shrutie
So, before you start Leetcode or any other platform for practicing DS questions, go through these and you'll be rocking the questions. https://www.coursera.org/learn/algorithmspart1#instructors
https://www.coursera.org/learn/algorithmspart2#instructors
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.
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.
1 points • CodeTinkerer
Princeton (through Udacity) has a twopart course
 https://www.coursera.org/learn/algorithmspart1
 https://www.coursera.org/learn/algorithmspart2
2 points • julschong
https://www.timbuchalka.com/courses1
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
Listen to how to program with java podcast
Build small projects and then try full stack projects
3 points • kinaetron
I've been eyeing up these for a while
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 • keanwood
Almost everyone can do leetcode.
 https://www.coursera.org/learn/algorithmspart1
 https://www.coursera.org/learn/algorithmspart2
 Start doing leetcode problems. If after 10 minutes you have no idea how to solve the problem, look up the answer. Draw the answer. Code the answer. Repeat step 3.
2 points • hekmatof
This two part course from Robert Sedgewick is really worthy. His use of visualization and animation for describing algorithm is really helpful to understand them.
Note: He uses Java to implement algorithm
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
2 points • Intiago
Check out this course that gets recommended all the time.
Robert Sedgewick and Kevin Wayne  Algorithms in Java  Princeton University  on Coursera
3 points • mopslik
Either Introduction to Algorithms (CLRS) or Algorithms (S&W) are excellent English books, but if your math is rusty, they can be quite dense at first. Note that for the latter, there are two free Coursera courses for Algorithms, Part 1 and Part 2.
1 points • MC_Raw
I have these 2 planned for learning DSA (with Java)
https://www.coursera.org/learn/algorithmspart1 https://www.coursera.org/learn/algorithmspart2
2 points • CheesecakeDK
There is a (free) 2 part course on Coursera for algorithms and data structures which is quite good.
2 points • SignificantYak4365
 Nobody knows.
 I only have experience in big tech companies so I can only offer advice based on that. Broadly speaking your sister would need to focus on 2 things  project work (to get interviews) and algorithms (to clear interviews).
 Your sister has some time so I would encourage her to do something she is interested in and get it 'out there' even if it is a simple website having a live one that has been deployed and is available for people to use is much better than a dead one that is rotting on github. You have tutorials for everything these days and cloud service providers like AWS have a free tier available so just encourage her to explore.
 For interview prep, she needs to know one language and she needs to know it well. I am into competitive programming and the recommended language for that is C++ however if this is not something she would be interested in python is great. It is practically pseudocode so it is easy to pick up and understand. Once she knows basic programming I would recommend this course for data structures and after that this and this for algorithms. Once she is done with that she can start doing problems on leetcode. If this interests her then she can get into things like competitive programming.
5 points • onetwosex
https://www.coursera.org/learn/csprogrammingjava
https://www.coursera.org/learn/csalgorithmstheorymachines
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
Princeton university. All free, no certificate.
2 points • gavenkoa
Famous https://www.coursera.org/learn/algorithmspart1 & https://www.coursera.org/learn/algorithmspart2 won't hurt and prepare you to the industry & interview.
1 points • _DreadLockRasta
I 100% reccomend princeton's algorithms courses on coursera. Its two parts and go from fundamental data structures like arrays and lists to graphs, string manipulation, regex etc. The only thing it does not have is dynamic programming. They also have a book which is pretty in depth in my opinion. Then they have an online book that has all the code that they used. Its all in Java as well. I think this is good because you actually learn how to make these structures/algorithms from scratch along. And its free :) , links below. I reccomend learning a topic then instead of doing the assignment , just go on leetcode and practice problems with that topic. Then move on after youre comfortable with that topic. Once you learn how to make it from scratch use the standard library's version for leetcode questions.
https://www.coursera.org/learn/algorithmspart1/home/welcome https://www.coursera.org/learn/algorithmspart2/home/welcome
https://algs4.cs.princeton.edu/home/
1 points • LexDMC
Check out Princeton's Algorithms 1 & 2:
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
​
While they're called Algorithms, they're the equivalent of the regular Data Structures course offered at most schools.
3 points • dv_omscs
If you are are unfamiliar with trees and BFS, you are unfamiliar with graphs, which means you have not studied basic algorithms. Since you are already in, I'd suggest doing
https://www.coursera.org/learn/algorithmspart1
https://www.coursera.org/learn/algorithmspart2
and/or
https://www.coursera.org/specializations/algorithms?
in parallel with your coursework at GT (or this semester if you end up with W in KBAI).They are MOOCs, but they are very, very serious courses (if you take them seriously) and you may need supplemental materials or more than one attempt; but they cover pretty much all basic algorithms topics that everyone expects you to know in CS world (not only in OMSCS) , they are of excellent quality, and they are free/cheap.
1 points • blackrazor5
Hello,
Note: I am not an OSU post bacc student but someone whom I am guiding in the field is doing this program so I spend some time here occasionally.
A little context about me: I have a CS bachelors and masters degree and work in the Silicon Valley at one of the top three companies. I have done a lot of interviews in last 35 years of my professional career and almost with every top 10 companies you can think of. Cracked few and failed few.
Here are my 2 cents:  Software interviews are just about practice. The more you practice the better you will get at it. It does not map 1:1 with what you study in your degree. Although, having a strong understanding of DS and Algos will help you to understand and solve problems quickly and see patterns in questions.

Interviews also need a fair amount of luck. You can prepare as much as you want but you need some luck for different aspect since interview questions and decision making is not a binary equation. Needless to say, you become more lucky with more practice. So, if you fail 10, 20, 30 interviews don't worry about it just keep practice and keep interviewing you just need one job and there are thousands out there so the numbers are in your favor.

If you want video series then Algorithms I and Algorithms II offered by Princeton University on Coursera is a really solid class.

Algorithms Design Manual is a really good book to read for Interviews. This is the book which will be recommended to you by many top companies like Google, Fb, Twitter, LinkedIn etc when they will send you as interview preparation notes after scheduling interviews. (Sorry, I don't remember which exact companies do.)

Cracking the Coding Interview and Elements of Programming Interview are the best book for preparing for interview questions. Pick one and stick to it and do as many questions as you can. Note: CTCI has fewer problems and is generally easier than EPI hence its better for someone doing interview preparation for the first time but if you want to cover all the grounds then EPI is better.

Everything aside, nothing can beat Leetcode. This is hands down the best thing you can do to prepare for interviews. Practice as many problems as you can here and you will definitely crack a lot of interviews.
Also, the above advice is mostly for software engineering/development interviews for web development you might have to cover other stuff like different frameworks, portfolio etc. I am a core backend engineer so I have very little idea about that. Hope this helps! Cheers.