Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is a great resource, but I wish data structures & algorithms courses would focus more on applications. I'm more interested in knowing why a data structure is useful and in what context I should reach for one, vs. simply knowing what it is.


https://www.redblobgames.com/ is a really good resource that gives a lot of context, and doesn't shy away from technical details.


I wrote something sort of adjacent to what you're talking about. It wasn't about applications persay but instead it was a guide / decision tree that took everything I learnt on how to make choices on what datastructure or algorithmic approaches applied to different problems (from doing the Blind 75 problem set).

It's not authoritative as I am not an expert yet but might still be of interest: https://sebinsua.com/algorithmic-bathwater#what-kind-of-prob...


Decision tree is an astute algorithm for the problem of knowing which algorithm to use.


Great resource, thanks!


In my experience they do.

It’s all about time and space complexity and analysis of given functions.


There is an absolutely wild range in data structures courses. A lot of colleges merge data structures and algorithms and some do each separately. I went to one with them separate and we focused on the application because we had time to. I can't imagine that we could have actually covered complexity if we were doing both in one semester.


In my undergrad at University of Michigan it was combined. I do not remember if we covered it but I was already exposed to industry at that time and was far more advanced in the practical than the rest of the class.

The benefits of algorithm selection only really started to become apparent after years of experience and know-how in what _exactly_ an application requires or intends to be used as. Knowledge that is skipped at all levels of computer science education.


I got it split over multiple units and years.


I think Skiena had a good course on it


His book, the Algorithm Design Manual, gets a lot of praise. But I found it far too fluffy, and lacking in rigor. And he doesn't even do a good job of talking about applications.

https://www.redblobgames.com/ is a really good resource that gives a lot of context, and doesn't shy away from technical details.


This looks like what the OP may want from the suggested reference: https://www.algorist.com/algorist.html ...



He was a great professor. Fun assignments that actually incentivized learning the material.

E.g. Write a platform agnostic backtrack algorithm, and fastest 3 in the course got extra credit.


Knowing the context and history definitely makes it more interesting and usually helps in learning too.


Yeah, that would be a fantastic resource. Also implementations in various languages, and trade-offs between different designs.


> implementations in various languages

Rosetta Code is a good resource for that.

https://www.rosettacode.org/wiki/Rosetta_Code


Ah I'd heard of this but didn't know what it was. Thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: