Algorithms, Part I

share ›
‹ links

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.

Data Structure Algorithms Java Programming

Next cohort starts June 8. 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 ad-free. Reddsera will not receive commissions if you only use course links found in the below Reddit discussions.

Taught by
Kevin Wayne
Phillip Y. Goldman '86 Senior Lecturer
and 1 more instructor

Offered by
Princeton University

Reddit Posts and Comments

1 posts • 385 mentions • top 129 shown below

r/webdev • post
271 points • xerxes3117
Best path to learn data structures and algorithms as a beginner

Apologies if this has been asked a lot of times but i wanted some advice in my particular situation.

I'm trying to learn back end web development, starting with Go as my first language (no experience with back-end so far). I've been really enjoying it so far but just like concepts of back-end i am also totally new to concepts like data structures, algorithms etc.

What would be a good path for me to learn these? I explored the sub-reddit and found a lot of suggestions like:

Algorithms, Part I | Coursera

Lecture Videos | Introduction to Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

But i'm really confused which one to choose because this is the first time i'm learning these concepts and I need to also learn about different data structures, big o notation etc. from the beginning. Also a lot these require knowledge of Java.

Could someone help me with this? Also, is there any other better path that I can follow as a beginner?

Note: If it's of any use, I currently have 1 year of experience with front end development in JS, Angular.

r/cscareerquestions • post
437 points • ThatTurmoil
[Re-upload] 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 re-upload the list. If this thread gets removed I will not be re-uploading this list. Therefore, I suggest saving or bookmarking the course websites below.

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:


r/cscareerquestions • post
70 points • deskwebs
How do I spend summer productively so that I'll be ready for interviews / become a better programmer?

Hi guys, I'm planning to learn full stack web developing during the summer. (just to touch on it, not going to go crazy on it. Just a little side project on the side, get exposed to javascript, etc.)

Aside from that, what can I do to spend the summer productively? My goal is to eventually get into a BIG4 company, but ultimately be knowledgeable enough to differentiate between an inefficient code and an efficient code, be confident in whiteboard coding.

I have some candidates to show you guys:

Competitive Programmer's Handbook

Algorithms I from Coursera

Master Algorithmic Programming Techniques

Other books I've considered are Clean Code and CTCI - but those I will be doing over slowly for the next year or year and a half.

There was a data structures / algorithm course that used C++ in coursera but that seems to be gone =(

I'm mainly going to concentrate on C++ and Java because these are languages that I'm most exposed to and I will be using it for the courses in upcoming Fall semester.

My level of programming is in between beginner and an intermediate.

tl;dr: level of programming = between beginner and intermediate, trying to get into BIG4, perform well in interviews and become a better programmer. What do you recommend I do?

I know it is a lot to ask only within 2 months and a half (about), I'm just trying to get to the intermediate level with decent knowledge of data structures and algorithms.

Recommendations welcome, thanks in advance!

r/AskReddit • comment
35 points • Us3r311

I believe that cost is decided entirely on a per-course basis. Some courses make all information and assignments free (e.g. Princeton's Algorithms Courses), others will restrict grading of assignments to paid learners, and some courses are only open to those who pay. Where any course falls on this spectrum is answered (sometimes poorly, usually clearly) in the FAQ section on course information page before you register. I have never been asked to provide payment information to coursera.

For those looking for free courses, try this link or just search for "coursera free courses" in your search engine of choice.

edit: I'd like to mention that I don't have experience with their "specializations" which tend to comprise multiple courses.

r/computerscience • post
68 points • Nottherealaron
Can we get a online course recommendation thread going?

Hi, since there are a lot of great free online courses, which in many cases are much better than what they teach at your university I thought it would be nice to get some recommendations.

So what online courses are you currently doing? Which are on your to do list? And which do you recommend?

I just started Algorithms Part 1 by Princeton University to prepare for the algorithms course I'm taking in fall.

I just finished part one of Object-Oriented programming with Java by University of Helsinki, good course, I would definitely recommend it if you're getting in to coding or are about to start your first year at uni.

I also just finished Elements of AI by University of Helsinki. It's a bit high level and I already knew a lot of what they talked about, but if you're not familiar with AI it could be a fun intro to Artificial Intelligence.

Machine learning by Andrew Ng

I haven't done this course yet, but a few friends have recommended and it's on my to do list.

r/algorithms • comment
31 points • DirdCS

r/csMajors • comment
14 points • 3Erots

Better yet, those same videos are all available on Coursera for free. You can enroll, watch the videos, and take advantage of the course material that comes along with it.

r/learnprogramming • comment
11 points • Ativerc

How committed are you? Because I'm starting algorithms too. I would love to team up.

BTW Do you have any good sources for Algorithms' MOOCs which use Python?

I'm thinking of starting (This starts on June 11) and I can handle it if they teach through Java but the worst thing is they accept programming assignments in Java only.

I will use Khanacademy and Commonlounge for reference.

r/learnprogramming • post
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:

Here's a list of online resources that helped me along my journey through the zero webdev to employeed-TI-guy For frontenders, most of it...

  • freeCodeCamp: My focus was the fron-end 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: If you are new around the computer science world dont forget to grab some basics of data structure, algorithms and some logic at Havard

    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 - and

    3 - Wes Bos 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( 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: 3 - If youre into framworks go for Stephen Grider( React courses or Maximilian Schwarzmüller( Vue courses(tons of videos on Youtube too)

  • Expensive: Nope. I'm just too broken

  • Youtube Channels:

  • Daniel Shiffman's Code Train(former Rainbow-Code) -
  • Sarah Drasner is all over Youtube teaching the SVG art
  • MPJ's Funfunfunction -
  • Look Lea Verou CSS expert talks
  • Travis Neilson's DevTips -

  • Sites:

  • of course lol

  • Podcasts:


I hope you find something useful. Just let me know if guys need any help! Thanks!

r/learnprogramming • comment
10 points • hitherto_insignia


r/ASU • comment
9 points • ClashRoyaleTourney

ASU courses are pathetically easy compared to the schools you mentioned above. For example, take a look at this course made by Princeton. This would be an intro level course at any top school but a 300+ level course at ASU. In fact, I don't even remember covering some of the topics in the syllabus of this course. If you want to be competitive, you need to learn a lot on your own. CS was not meant to be easy and ASU should stop catering to the people who frankly should have no business studying CS

r/learnprogramming • comment
8 points • omnomnommies

  • Algorithms/Data Structures
  • Time Complexity of Algorithms
  • When to use certain data structures for what kinds of problems.

At its core, programming is simply some algorithms using some kind of data structure(s) no matter how small the problem is. Design of your algorithms is important as well. Highly suggest Princeton's Alg/Data Structures course on [coursera] (

r/cs50 • post
8 points • cs50questions
More advanced algorithms & data structure courses after CS50?

Hey everyone! CS50 was a complete game changer for me. I particularly loved that its foundation was in C.

I've checked the archives for this question but didn't find anything from the past 12 months. It's 2017 now... does anyone have good recommendations for (preferably free) follow-up courses on more advanced algorithms and data structures?

I'm currently signed up for the next round of Princeton's algorithms course on Coursera but it's completely in Java. Is there anything that, like CS50, is in C? Or does anyone with experience know whether or not the Java requirement for Princeton's course is an issue if you don't know any Java at all (outside of what it naturally shares with a language like C)?

Thanks for any input you might have!

r/cscareerquestions • comment
7 points • damnburglar

I’m very interested in this as well.

I know that the coursera courses on algorithms from...Princeton, I believe (with Sedgewick) are de facto. Beyond that I haven’t looked too far.

Edit: Here it is :)

r/learnprogramming • post
14 points • Alphendo
Forming study group for Coursera Princeton Algorithms

Hey guys, I'm going to be attempting this online course, which starts on June 12 and runs for 6 weeks. (June 12 - July 30). I've tried once before to do this course but I quickly lost motivation and stopped in the first week. If any one else has had some interest in learning algorithms, we could form a study group to go over the lessons/homework, and also hold one another accountable. If there is any interest we could form a slack group or something else and see how it goes! Algorithms are important, not only will they make you a better programmer/more analytical overall, they are frequently asked about in technical interviews. Cheers! Quick Edit: Forgot to mention, the class is in Java! I mainly program in JavaScript, so if you're not too comfortable with Java, it's okay we will be in the same boat.

Discord Group I hope it's okay that its in discord, slack didn't have an option to send out a link for anyone to join, you had to send out individual invites through email which is a pain.

Updated the discord link Sorry about that I didn't refresh the link so it just used its default should be good now!

r/udub • comment
20 points • gobbledygoop

You shouldn't openly trivialize other people's struggles with a subject. And you should provide resources to those online videos and books. I would recommend these two Coursera classes

as well as the free Python data structures book

r/UIUC • comment
5 points • cheekyyucker

people who have taken higher level algorithms courses might tell you not to, because they are not cognizant enough to realize that they had the context to work through problems even if they didn't first get it. Just a heads up on the type of responses you might get on reddit

my personal advice: do problems through an actual algorithms course like this one:

or a similar course that caters to your language of choice. This way, the likelihood of needing to look up the answers is slim, because you'll actually have the context prior to attempting the problem. Otherwise, you're just spending time reinventing the wheel in your head with the poor guide of leetcode solutions.

r/learnprogramming • post
5 points • vodico
Online Algorithms course with C++ or C as base language?


I am looking for an online course (preferably hosted on Coursera or edX) which teaches Algorithms and Data Structures with C++ or C as the base language. I enrolled in this Algorithms I course but it teaches with Java.

Any recommendation would be appreciated.

r/croatia • post
27 points • AltairAC
Kako do prvog posla? (programiranje, student)

Položio sam nekoliko kolegija vezanih uz programiranje (osnove programiranja u C-u, osnove strukture podataka i algoritama, osnove objektnog programiranja u C++-u, malo assemblera (Motorola 68k), malo mrežnog programiranja u C-u) 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:, 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 AI-u pa sam razmišljao da prođem kroz ovo:

Ili da se primim Pythona? (npr. knjige Learning Python i Programming Python - Mark Lutz (

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)

r/india • comment
4 points • udi_baaba

You have to go to each individual course and click on audit this course or something similar. This one by Tim is more theoretical and covers no code or programming language. It is well structured but at the end you will definitely improve your problem solving skills.

The other course by Princeton is in Java. If you want to code along or want to understand implementation better you can enroll in this.

I'd recommend doing both because this would vastly change your outlook from programs being syntax to problem solving tools.

r/learnjava • post
4 points • suzytmohanty
Will you recommend a newbie programmer to learn Core Java & SQL in parallel?

I am currently taking University of Helsinki's Java Course ( and at Week #2 right now.

I wanted to start learning SQL from sqlzoo, but bearing in mind the fact that java is my first programming language (even though I am CS grad), I am in a dilemma whether I should take the plunge or not.

I am really looking at getting the most out of my 3 months learning time before I start applying for jobs. I am open to any alternative suggestions you might have.

Also can anybody tell me how many weeks into this course can I start learning Algorithms & data structures from this Coursera MOOC by Princeton University?

r/OSUOnlineCS • post
4 points • osuonlinehelp
Considering learning Algorithms from Coursera a little bit before taking actual course here. Anyone done that/know how it works? Or are there better options?

So, basically, I am considering taking this course from searching on this subreddit:


However, I notice you have to "enroll" to take the course. Well, what if I don't sign up for the one on Aug. 07? When will the next course open up? Also, am I expected to complete the class within a certain timeframe?

Beyond that, would it prepare me for what is to come in Algorithms? Or is there a better class out there to take?

Anyways, thanks for any help with this as I want to prepare for Algorithms the best I can.

r/Romania • comment
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 recomanda-o oricui vrea sa se apuce de programare este 'Donald Knuth - The Art of Computer Programming', gasesti in ea algoritmii disecati si explicati.

r/learnprogramming • comment
8 points • P_E_B_K_A_C

Part 1 and part 2 of this free Coursera course by Princeton.

r/learnprogramming • post
8 points • runner2012
Anyone know why is Coursera's Algorihtms part II not accessible?


I'm almost done with Algorithms part I and I am wanting to continue with Algorithms part II, but the course is greyed out.

Anybody knows what's going on? Also, anybody knows of an Algorithms class as good and in depth as this one? Especially in Java or Python.


r/learnprogramming • comment
32 points • whatevernuke

Wasn't this one, was it? :

I've seen it posted here a few times.

Also, might be worth a look.

Specifically for Data Structures & Algorithms, since that's what I've been looking for recently: - Seems to be the most generally well regarded I've seen. - Not sure about this one, but I think I've seen it praised a few times.

Hope that's useful.

r/programming • post
3 points • One_Pea
Choosing a Data Structures and Algorithms Course
r/cscareerquestions • comment
3 points • Wiggin028

If you're willing to do the work, I highly recommend the Princeton University Algorithms, Part I class on Coursera.

I used this class to supplement my universities DS and algorithm classes and could not have spent my time better.

It's a free class, and each weeks material is short enough that you can cover it in your spare time. The projects can take a bit of work, but in your situation I'd skip these and instead practice problems in CTCI as you cover each section.

The next class (self-paced, and you can work ahead) starts today if you were interested.

r/apple • comment
11 points • ViditM15

I would highly recommend that you take Harvard's CS50 course first which is a phenomenal introduction to the world of computer science:

Then, learn the basics of a beginner friendly language like Python from here: (Don't worry, its "the hard way" because the author strictly wants you to code along with each and all of his lessons so that you do not just read it like a story book and learn nothing in the end).

Then, when you've familiarized yourself with language basics, do a algorithms and data structures course (I'd highly recommend this one by Princeton:

This will make you proficent enough so start out with a starter project (keep checking /r/beginnerprojects/ if you can't come up with your own) and learn along the way from then on.

Hope this helps you get a kickstart!

r/learnprogramming • comment
3 points • NeoStarSky97

This algorithms course, by the authors of the best Algorithms textbook out there, Robert Sedgewick and Kevin Wayne. This requires a bit of mind stretching, and will take a fair bit of time to get through, but is totally worth it.

PS: You need to have your programming basics thorough with, and the course is primarily taught in Java.

r/learnprogramming • comment
3 points • firecopy

You should not feel the need to "unlearn" material. Use the information you do know to help learn material in the future.

If you want to learn data structures properly, all you need is, Princeton's course about Data Structures and Algorithms.

r/computerscience • comment
3 points • arkhitekton

S/he might've meant this:

r/learnprogramming • comment
3 points • qna1

A quick search of this sub, for algorithms classes will overwhelmingly show that the Coursera course, by Princeton University is the highest recommendation, with good reason. Yes, this has been recommended in this thread, but I am perplexed why the youtube lectures are recommended over the direct source, which most importantly has very very challenging assignments, along with interview questions that help to reinforce what you have learned, along with a wealth of other resources, I am currently on week 3, and would like a parter to collab on the assignments on if you are available.

r/learnprogramming • comment
3 points • JavaMoocfiCS50Androi

It may be worth checking out this [algorithms course by princeton] ( It's free, 2 parts, and is recommended quite often on this sub.

r/UWMadison • post
3 points • rm711
Skipping CS 400

Due to unresolvable scheduling conflicts in the fall, I'm looking to get into CS577 (Intro to Algos) directly and skipping CS400 by self-learning it over the summer. I did this with CS200 by showing the CS advisors some of my previous work in Java. Does anyone have any recommendations on how one could do the same here? I've looked into a relevant Coursera course that looks like it covers roughly the same topics, but I'm not sure how I'd go about proving that since it offers no completion certificate. Thoughts?

r/cs50 • post
22 points • idol2k
Investment banker completes CS50: new destination? + thank you staff!

Dear all,

Last week, I’ve finally completed all the problem sets! It was a bit of a struggle (although an extremely pleasant one!) since my investment banking job means I had at most 2 days to focus on CS50 (I usually work entire weekends too, logging 80-100 hours per week). Might sound trivial but I feel very pleased to have completed the course in these circumstances and without CS background.

I also wanted to thank CS50 staff! Your enthusiasm is absolutely inspiring, and I felt touched despite not being on H/Y campus. Tremendous thanks for your continuous efforts in making computer science available to all!

With my eyes set on the final project, I decided to do a few more side courses, go through a few books / tutorials before I actually start building it because much deeper fundamental knowledge will be required. I realise how terribly little I know at the moment but one area that really stands out is - JavaScript; I found it very cryptic and any resources in this area would be very welcome.

At university, I did one of the best economics degrees in the world so I am familiar with linear algebra, calculus and statistics - feel free to recommend more mathematically rigorous courses.

Personally, the most obvious candidates for me are: 1. MITx Introduction to Computer Science and Programming Using Python 2. as recommended by David J. Malan himself 3.! 4. 5. (this is intermediate, what could should I take to learn basics first – CS50 won’t suffice, I guess?) 6.

Courses, books, blogs are all welcome.

Many thanks and happy coding!

r/programming • comment
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.

r/learnprogramming • comment
6 points • akame_21

Despite their age, the MIT lectures were great. If you're good at math and enjoy proofs this is the class for you. Same thing with the CLRS book. One of the best books on DS & Algos out there, but it's so dense it'll make your eyes glaze over, unless you love proofs and highly technical reading.

To get your feet wet, Grokking Algorithms is a good book.

A lot of people recommend Princeton's Algorithm Course. I took Algorithms in school already, but I'm probably going to take this course to round out my knowledge.

r/learnjava • comment
6 points • monsieurlazarus

This course session is started today.

This is the often recommended Algorithm and Data Structures course in this sub. Better to start the course right away since the material is quite packed and the assignments take some time to finish.

The companion website

Maybe you'll also want to grab the book.

r/cscareerquestions • comment
9 points • JohnGaltAWALT


I have completed 300 applications since the very beginning of May. I used AirTable to track the status of them.

The result has been 6 on sites -> 4 offers.

I did this 7 days per week without taking any days off. I made this my mission. No excuses. I am not a victim. I own the outcome.

My daily schedule:

  1. I would schedule any of my calls or screens for the morning
  2. The rest of my "workday" would be watching lectures from these three sources: Skiena, Sedgewick, MIT 6.006
  3. and then doing 2-4 leetcode questions from the lecture material per day

The result is I passed every code-screen, HackerRank, take-home project, phone technical screen, etc. except one (some timed multiple choice quiz from Bolt).

If I decided to take an initial call, I would end up converting it to an on site interview. Sometimes, after applying, I would get an email from a company and then ultimately decide based on Glassdoor or their product that I wasn't interested.

I completed over 150 leetcode questions (using Python3). It has improved the way I think. It has improved the way I write code. I'm glad I did all of this.

I filled 2 Rhodia notebooks from those three lecture playlists--I actually sat and took notes while pausing and replaying each video as needed.

If anyone would like tips or suggestions, I am happy to help as being in the "job hunt" is all I've been doing for almost three months. DM me.

r/WGU_CompSci • post
35 points • Aleriya
WGU CS Free Study Resources

I'm putting together a list of free resources for WGU CS students, especially for those looking to study ahead before starting the program. Please let me know if you'd recommend any resources to add to the list.

Calc 1

Discrete Math 1

Data Structures and Algorithms

Software 1-2 (Java)


Computer Architecture

r/csharp • comment

r/learnprogramming • comment
2 points • firecopy

Are you working as a software engineer currently working in the industry, or are you a student (self taught/college)?

Edit: Going out to lunch, but if you are a student, would recommend checking out Algorithms, Part 1 by Princeton University taught by Robert Sedgewick and Kevin Wayne Although focused on Data Structures, it will catch you up to speed with Java.

r/cscareerquestions • comment
2 points • edelweiss675

I actually made the exact same move from embedded to server-side/backend-ish development. At 4 years into your first job, your career is super-fresh, people can see you as malleable. But you have to show them you are eager and willing.

Because I wasn't a traditional CS major, I had to spend a few weeks studying basic algorithms and data structures. Specifically I took the Algorithms 1 class on Coursera -

I also coded up solutions to problems and researched the companies/products I was being interviewed for.

Your brain is mush, but the only way to fix that is to study and practice coding on your own time.

And like someone else said, definitely get rid of "embedded" on your resume. I put down "Software Engineer".

r/ProgrammerHumor • comment
2 points • n4ppyn4ppy

Not a book but the Coursera courses are good

r/learnprogramming • comment
2 points • Karimo_

i think it started very recently but you can still enroll

r/AskComputerScience • comment
2 points • ceed0z4


r/cscareerquestions • comment
2 points • csblows7

Just reread the top post recommendations on how to pass interviews around here - I promise you, there are no better resources catered to you specifically.

Algorithm Design Manual by Skiena - Great read

CLRS by Cormen, Algorithm Design by Tardos & Kleinberg - Solid undergraduate course texts on algos - Sedgewick's course + textbook has a great reputation, haven't looked much at the content though

Following this work through Leetcode, don't give up when it's hard!!

r/learnprogramming • comment
2 points • firecopy

The book Algorithms 4th Edition by Robert Sedgwick, or his course on Coursera.

r/learnjava • comment
2 points • an_actual_human

> so they can focus more on the content, rather than the language...

What do you mean by that? In any case, the language should not be the focus of this kind of course.

Sedgewick's course is excellent.