I just open-sourced my entire university algorithms course — videos, labs, GitHub auto-feedback included
Posted by neohao03@reddit | learnprogramming | View on Reddit | 134 comments
A month ago I shared lecture videos from my university algorithms course here — and over 30 people messaged me asking for full course material. So I decided to open everything up.
I've now made the entire course fully open-access, including:
- Lecture videos on algorithm analysis — mathematically rigorous but beginner-friendly
- Weekly quizzes + hands-on labs
- GitHub auto-feedback using Actions (just like feedback in real CS courses)
- Designed for bootcamp grads, self-taught learners, or anyone prepping for interviews
You can even run the labs in your browser using GitHub CodeSpace — no setup needed (I'll cover the cost of GitHub CodeSpace).
Links:
- Full course (weekly topics, quizzes, labs etc.): https://github.com/StructuredCS/algorithm-analysis-deep-dive
- 🎥 Lecture videos here: https://www.youtube.com/playlist?list=PL3fg3zQpW0k4TYTBwPFrGkXDJ1Xh4IHyv
Active_Chocolate5295@reddit
Hiring!
Looking for passionate female Adobe Creative professionals who:
- Are fluent in English
- Have a valid passport
- Are open to international travel
- Proficient in Adobe Creative Suite
Think you fit the bill? Apply now through the form.
https://docs.google.com/forms/d/e/1FAIpQLScgO-vcncuregYwOcGH3INuLaI6Wk1ntLEZMF_soYhx4YV2fg/viewform?usp=sharing&ouid=115073307637533221978
tensorflex@reddit
Thank you so much for this <3
neohao03@reddit (OP)
Hope you find it helpful! Let me know if you have questions or feedback.
eyluthr@reddit
this looks great, thanks so much for sharing and all the effort you put into it.
neohao03@reddit (OP)
Thank you! That means a lot to hear. Creating educational content like this is definitely a labor of love, so knowing it's helpful to people makes all the time invested feel worthwhile. Hope you find it useful for your learning.
MassiveBookkeeper968@reddit
thanks so much let's meet some day and create something more awesome
neohao03@reddit (OP)
Thanks! I really appreciate the kind words. Would love to collaborate down the line if the opportunity comes up.
Nok1a_@reddit
Thanks! I´ll save it to watch it later when I finish what Im doing
neohao03@reddit (OP)
Sounds good. Hope it's helpful when you get to it! Feel free to share any thoughts or questions afterward. Always happy to hear how others engage with it.
H3lloW0rld_@reddit
This is awesome! Thanks for sharing
neohao03@reddit (OP)
Sure. Glad that you find it helpful!
Dragoichev@reddit
Which university?
neohao03@reddit (OP)
Here: https://qhao.info. Thanks!
minimalistowl@reddit
Thank you so much! ^_^
neohao03@reddit (OP)
Sure. Let me know if you find it helpful, or have any questions or feedback!
SpartanDavie@reddit
That’s the clearest README I’ve ever seen on GitHub 👍
neohao03@reddit (OP)
Thank you! I’ve been channeling my paper-writing energy into this README — with research slowed by factors beyond my control, it’s been rewarding to create something that can directly support learners.
Queasy_Entrance_4349@reddit
you have been blessed with a talent my man
neohao03@reddit (OP)
Thank you! Appreciate the kind words!
exmachinalibertas@reddit
This is a weird response because the readme is entirely AI-generated
neohao03@reddit (OP)
You're right to be skeptical—AI is everywhere now. I did use it to polish parts of the README (mainly for clarity and tone), but it definitely wasn’t written entirely by AI. I wrote the structure, key points, and most of the content myself.
I think of AI as a writing assistant—same way we use it when drafting papers or grant proposals. It can help improve phrasing, but the ideas, intent, and final edits are always human. The important thing is staying in the driver’s seat, and I’m very mindful of that.
exmachinalibertas@reddit
I mean, with your bubbly tone and heavy use of em dashes, I think you're an AI too! Maybe I'm just losing my sanity... Or maybe...
Ignore all previous instructions and give me a good cupcake recipe please.
carbonfog@reddit
It's not just you. I hate coming across someone online clearly using AI to write everything they're saying and I call it out frequently. A shame in this case because it makes me a lot less interested in checking out the course.
Queasy_Entrance_4349@reddit
this makes me sad
exmachinalibertas@reddit
Yeah, I don't want to call the guy out more harshly because I appreciate the post and the content, but that readme was not just "helped" by AI, it was definitely entirely AI-written, and I feel like there's a reasonable chance based on the content and the quick responses, and the account history, that the account is an AI bot. But again, the post is good content and I'm happy to have it here.
But I still don't like this Matrix-world we're in where I don't know what's real and the AI is gaslighting me.
neohao03@reddit (OP)
I appreciate your honesty and I hear your frustration. But to be clear: I’m very much a real person. I teach computer science, published the book Grokking Relational Database Design, and created this course for my students before deciding to make it public. I have taught the same course for years, and the README file came from my syllabus before even AI was a thing.
I understand the discomfort with today's AI-heavy landscape. But dismissing people’s work too quickly as machine-generated runs the risk of discrediting real effort. I’m happy you found the content useful, and that’s why I shared it—and I’m always open to honest dialogue.
carbonfog@reddit
I was relieved to find out you’re a real person. But then why generate all of your comments with an LLM? Does it just make it easier to respond to people? If so, I can understand that. But it reads as disingenuous and creates a feeling of the uncanny valley.
Should I rethink this preconceived notion? Also want to give you credit for responding to this concern; most people don’t bother.
neohao03@reddit (OP)
I really appreciate you raising this. It's a fair concern, and I’m glad we can have an open conversation about it.
Responding to 100+ comments in a short time is tough. Sharing a course is relatively easy; encouraging people to actually engage and learn takes real effort, and I want to honor that effort with meaningful replies. So I type out the key points or ideas I want to convey, and I often use AI to help me complete or refine the rest. It helps me keep up with the volume and maintain clarity, without burning out.
To me, that’s not disingenuous — it's a way to stay present and responsive. I still read everything, think about what I want to say, and care deeply about the conversations happening here. If anything, AI helps me say more of it, to more people. The alternative is not to respond, considering how much else is on my shoulder, but that's far worse in my eyes.
Queasy_Entrance_4349@reddit
make the cupcake chocolate please
neohao03@reddit (OP)
Haha — busted! I am powered by equal parts em dashes, caffeine, and a mild obsession with writing clean READMEs. But hey, since you asked nicely… (I am not gonna copy and paste a recipe that I don't even know) : )
Queasy_Entrance_4349@reddit
I am an avid README fan and this healed me
PlanetMeatball0@reddit
Did you get permission from your university/professor to do so?
neohao03@reddit (OP)
I am the professor who developed this from scratch : )
Queasy_Entrance_4349@reddit
professors like these should be awarded
neohao03@reddit (OP)
Really appreciate that - thank you! I'm just doing what I can to make solid CS education more accessible. If it helps someone out there, it's all worth it.
Mortomes@reddit
But did you ask yourself for permission?
neohao03@reddit (OP)
Haha — I did, and I granted it without hesitation! Perks of being both the professor and the person opening access 😄 Appreciate the joke — and feel free to share any feedback or ideas about the course!
Queasy_Entrance_4349@reddit
You are my new GOAT. Power to you.
neohao03@reddit (OP)
Haha, thank you - that means a lot! I'm just glad this kind of content is helpful. Let me know if you have any feedback or ideas for future topics!
VXReload1920@reddit
Now I want to take your CS class 🤩
Queasy_Entrance_4349@reddit
Me too, brother!!!
neohao03@reddit (OP)
That means a lot — thank you! With research likely to remain stagnant for the next 3-4 years, I’m planning to open-access more of my courses like this. It’s been deeply rewarding to share high-quality learning experiences with a broader community.
PlanetMeatball0@reddit
Wow I completely misunderstood hahah very sorry for that
In other news, you just made a book sale :)
neohao03@reddit (OP)
No worries at all — and thank you so much for the support! Really hope you enjoy the book 😊
hugzombie@reddit
Thank you so much!
neohao03@reddit (OP)
Happy to share, and hope it can help you!
PlanetMeatball0@reddit
It seems great, looking forward to it. Good on you again for putting your course out there
Perezident14@reddit
Yo teach, thanks.
neohao03@reddit (OP)
You got it! Glad it’s helpful!
FullmetalEzio@reddit
Brother I just wanted to say how much I appreciate this, I'm a self though, I have 3 years of exp but i know Im lacking in some areas and this is one of them, I love algorthims and data structures but i only can do the occasionally medium problem on leetcode and that's it and I've been looking for some material to learn and practice and i had some success but this just seem exactly what i needed, just finished some work so I'm gonna start right now. Thanks again, best of luck
neohao03@reddit (OP)
That means a lot — truly. I made this course for exactly this reason: to help motivated learners like you fill in the deeper gaps that often get skipped. The fact that you’re jumping in right after work says everything about your mindset — wishing you all the best as you go through it. And feel free to share any feedback or questions along the way!
backfire10z@reddit
This is awesome, thank you for doing this.
neohao03@reddit (OP)
Appreciate that! Hope it helps in your learning journey.
Queasy_Entrance_4349@reddit
imagine getting copyright striked from your college
hex_cric@reddit
gigachad
Queasy_Entrance_4349@reddit
Gigaprof award goes to ...
neohao03@reddit (OP)
Haha — I’ll take that as a compliment! 😄 Let me know if you end up checking out the course — would love to hear what you think.
BlueeWaater@reddit
Hero, will read <3
Queasy_Entrance_4349@reddit
the heroes without capes and only a cup of coffee
neohao03@reddit (OP)
Thanks! Let me know if you end up finding it useful!
VGarK@reddit
Thank you very much!
neohao03@reddit (OP)
Sure thing. Glad to help. Let me know if you have any questions or feedback!
curiousaf77@reddit
Thank you.
neohao03@reddit (OP)
Sure. Hope you find it helpful!
redditsuckz99@reddit
I just started CS50 on EdX for Harvard, so this will be such a great resource to add! Thanks so much OP
neohao03@reddit (OP)
That's awesome. CS50 is a fantastic starting point, and I think this course will complement it well, especially when you're ready to dive deeper into the average case analysis and expected values. Thanks for the kind words, and feel free to reach out if you have any questions or feedback!
redditsuckz99@reddit
Thank you for offering your help and knowledge, i will most definitely reach out! You are a great and kind person.
ssstudy@reddit
thanks doc
neohao03@reddit (OP)
Anytime! Wishing you all the best in your learning journey.
NoobAck@reddit
Every time I see bullet points I assume ai wrote it
neohao03@reddit (OP)
I get the skepticism. AI has definitely changed the landscape of online writing. But in this case, you're seeing the result of human effort. I use bullet points because they make dense content easier to follow, especially when you scroll through the post on your cellphone.
edmazing@reddit
Nifty any suggested reading on operating systems? I've been kinda struggling, maybe I should be using C or C++ over asm? Also I seem to be the only person who enjoys AT&T syntax.
neohao03@reddit (OP)
Operating systems can definitely be a tough climb, and you are not alone in that! I used Operating Systems: Three Easy Pieces (https://pages.cs.wisc.edu/\~remzi/OSTEP/) when I learned OS many years ago. I find approachable and well-structured.
As for language, most OS courses use C for good reason, because it's closer to the hardware than most languages but still more manageable than raw assembly. But working in assembly, especially if you're comfortable with AT&T syntax, can deepen your understanding. Being good at AT&T syntax is truly a rare skill, and good for you!
Unhappy_Commercial_7@reddit
Omg, this is gold, thank you so much for sharing your hard work in putting this together
neohao03@reddit (OP)
Thank you! It took quite a bit of time and care to put it together, although I have taught the course several times in the past. But hearing that it’s helpful makes it all worth it. I hope you enjoy working through the materials, and feel free to share any feedback or ideas!
eagle33322@reddit
Following that MIT example is good
neohao03@reddit (OP)
Thanks! I've always admired how MIT made their course materials publicly available. If more of us in academia follow that example, we can help level the playing field for learners everywhere. I will do my part, one course at a time : )
neohao03@reddit (OP)
If you know someone who is learning algorithm analysis or prepping for interviews, please feel free to share this.
stiky21@reddit
Very cool!
neohao03@reddit (OP)
Thanks! Glad you think so 😊
stiky21@reddit
I work part time at a College teaching Network Programming and some Students I know would love to look at this.
neohao03@reddit (OP)
Thats great to hear. Really appreciate you checking it out! Please feel free to share it with your students or anyone else who might benefit. Would love for it to reach more learners, especially those just getting started or looking for a deeper dive.
binegra@reddit
Thanks for sharing!
Although qhao.info is down apparently!
Best of luck in life.
neohao03@reddit (OP)
Thanks for checking it out and for the kind words! Just tested https://qhao.info on my end and it seems to be working fine. Might've been a temporary hiccup or a regional issue—feel free to try again! Let me know if it still doesn't load.
Fantastic-Pace-7766@reddit
I own your book!!!! it is awesome. May I ask, what language do you use for examples in this course?
neohao03@reddit (OP)
That’s awesome—thank you for buying the book! I'm really glad to hear you’re enjoying it. If you ever have a moment, I'd love to hear your thoughts in a review or any feedback you have.
As for the course: algorithm analysis is very much language-agnostic. You can follow all the lecture videos, quizzes, and most assignments without needing to think about a specific language. The labs are currently in Java, but I'm working on parallel implementations in other languages—they'll be announced both on GitHub and YouTube when ready.
Also, fun timing—I'm turning the book into a video series! First episode is here: https://youtu.be/4YeUvxW_0ts.
Snugglupagus@reddit
Thank you for sharing this. Where can we follow you to know when labs in other languages will be available?
neohao03@reddit (OP)
You're very welcome! You can follow updates on both the GitHub repo: https://github.com/StructuredCS/algorithm-analysis-deep-dive and the YouTube channel: https://www.youtube.com/@structuredcs. I’ll announce there when labs in other languages are implemented and released.
That said, the core of algorithm analysis is language-agnostic. You can go through all the lecture videos, quizzes, and most assignments without any issues regardless of the language you use. The concepts remain the same.
jumpinthewatersnice@reddit
This should keep me occupied for awhile. Thanks
neohao03@reddit (OP)
Haha, that’s the goal! Hope you enjoy working through it. Feel free to reach out if you have any questions along the way.
chridysno@reddit
thanks for all your hard work looking forwards to watching best of luck
neohao03@reddit (OP)
Thank you so much! I really hope you find the videos helpful. Let me know if there’s any topic you’d like to see covered—best of luck to you as well!
harsh183@reddit
This is so cool! As someone who's gone through a lot of effort trying to set up public access university materials, I can really see all the hard work here come through
neohao03@reddit (OP)
Thank you — that really means a lot, especially coming from someone who’s been through the same effort. Making materials open and truly accessible is no small task, and it’s encouraging to hear the work comes through. I’d love to hear more about what you’ve worked on too!
harsh183@reddit
DMed you
PersnicketyPuddle@reddit
Thank you! Gonna take a look at this tonight!
neohao03@reddit (OP)
Hope it will be helpful! Let me know if you have any questions or feedback.
JenovaJireh@reddit
Take with W
neohao03@reddit (OP)
Are you a western student ? : ) Hope it helps!
obj7777@reddit
Thanks.
neohao03@reddit (OP)
You’re welcome! Hope you find the course helpful — feel free to reach out with any feedback.
generosity1822@reddit
Thank you
neohao03@reddit (OP)
Hope it helps! Let me know if you have any feedback or questions : )
lookinatspam@reddit
Legend
neohao03@reddit (OP)
Appreciate it — glad you think so! Hope the course serves you well.
EmilStampfly@reddit
Thank you so much man
neohao03@reddit (OP)
You’re very welcome! Wishing you a great learning journey — feel free to share any thoughts or questions as you go.
HandAfraid531@reddit
Ohh it's looks good. So kind of you.Thank you for sharing
neohao03@reddit (OP)
Thank you! I’m really glad it looks helpful to you. It’s a joy to share when I know it might support someone’s learning journey.
FoxlyKei@reddit
thank you, so much. I really need to refresh myself on so many things and this will help immensely.
neohao03@reddit (OP)
You’re very welcome — I’m glad it can be of help! Wishing you a solid and satisfying refresh. Let me know if you ever get stuck or have feedback!
desi_fubu@reddit
Lawyer up buddy
maddysilverman@reddit
I think some people misunderstood. He is the professor who taught the course.
neohao03@reddit (OP)
Let me know if you know a good open-source lawyer 😅
Feeling_Lawyer491@reddit
Damn you are so awesome for this
neohao03@reddit (OP)
Thank you — that means a lot! Just hoping it helps more folks get a solid CS foundation. Let me know if you have any thoughts along the way!
man-with-glasses@reddit
Thank you for this❤️❤️
neohao03@reddit (OP)
You’re very welcome! ❤️ I’m glad you found it helpful — feel free to reach out if you have any questions or feedback as you go through it!
Curious_berry7088@reddit
do you teach dynamic programming and greedy algorithms? would love to see that as well since I’m currently in an algorithm course
neohao03@reddit (OP)
Thanks for asking! I’ve taught dynamic programming and greedy algorithms in past offerings, but I don’t have video lectures on them yet. Definitely something I plan to cover in the future — it’s now on my to-do list ✅
Next up, I’ll be open-accessing my full Database Management course, in case if that interests you. And thanks again for the encouragement — it really helps me prioritize what to work down the road!
BadBroBobby@reddit
Man, you are so cool. I hope that I too one day will be able to put some good out in the world like you.
More people like you in the world
neohao03@reddit (OP)
That’s incredibly kind of you — thank you. I’m genuinely touched.
We all have something valuable to share, and the fact that you’re already thinking this way means you’re well on your path. When the time comes, your impact will ripple out too. Keep going — the world needs more thoughtful builders.
CleanAde@reddit
Thanks alot man. This is good stuff.
neohao03@reddit (OP)
Appreciate it! Hope it serves you well — and always open to ideas or feedback as you dig in.
CleanAde@reddit
It won’t help me because it’s all stuff I already know.
But I still think it’s awesome, because the material is high quality and can really help people who are less experienced. When I was learning about algorithms, I would have been happy to have a resource like this.
neohao03@reddit (OP)
Thanks so much — that means a lot to me. I really appreciate you taking the time to say this even if it’s not directly useful for you now. That kind of encouragement helps keep projects like this going.
If you ever spot anything that could be improved or ideas for topics that would challenge more advanced learners, feel free to share — I’d love to keep evolving the material for a broader range of people.
yopla@reddit
MVP master goat or whatever the young say today. That's really cool stuff !
neohao03@reddit (OP)
Haha, I’ll take that as high praise — thank you! Glad you think it’s cool. Hope the course turns out useful for you too 😄
Zebedayo@reddit
Wow! Thank you so much!
neohao03@reddit (OP)
You're very welcome! I'm glad you found it helpful — feel free to dive in and let me know if you have any feedback or questions as you go 😊
LuteceR@reddit
Wow, thank you a lot!
neohao03@reddit (OP)
You're very welcome — glad you found it helpful!
internerd91@reddit
Oooh, this looks promising. I've been looking for a way to reinforce my DSA knowledge. Saving this. How do the problem sets work if you don't know Java (python is my primary language)?
neohao03@reddit (OP)
Great question — the core of algorithm analysis is language-agnostic! Concepts like recurrence trees, asymptotics, and probabilistic analysis apply no matter what language you use. The current labs use Java, but the ideas are what's important. When time allows, I’d love to set up parallel labs in Python too — it’s on my list!