Sounds like you guys had bad experiences with programming classes

. I haven't had a class I haven't enjoyed. Data structures seems to be most peoples' favorite class.
Reminds me of that podcast question a while ago when I asked how you stored Crashlands's inventory, and you said you didn't know what most of the suggestions even were, and said the answer was a 'map,' which is just the abstract type of several of the options I suggested.
Choices of data structures can be pretty important, especially when you're aiming for efficiency (remember when you guys were trying to reduce memory usage in Crashlands?). I also remember when you guys were having trouble with pathfinding during the beta (A*, I think). A data structures class should go over things like Dijkstra's algorithm, sorting, linked lists, BSTs, hashtables, etc. but also
when to use them. I imagine you could've worked something out so you didn't have to use a map at all for the inventory, and a simple array would have sufficed (and likely would have been more efficient).
An algorithms course is almost a continuation of that stuff, but of course with more emphasis on how and when to use things.
Your complaints about the structure and assignments are justified, though--a poorly laid-out class and useless assignments can drastically reduce the amount of fun. Especially when things are thrown at you in an 'arbitrary order' instead of in a way that makes sense. A general outline of the data structures course I TA for is that we briefly review the prior stuff, then go into sorting -> (dynamic) arrays -> linked lists & stacks/queues -> hashtables, trees, & tree traversals -> heaps & graphs -> graph traversals. It is a bit slow, at least in a large class, but it's a bit difficult to go much faster while still going in sufficient depth for most of the students to get an idea of what, how, and why you would choose to use them.
You're right that you don't
need to know that stuff to use it, but I imagine being a game dev means you need efficiency. Imagine if every time you picked something up in a large game, it lagged while it figures out where to put the item in your inventory, because the dev didn't know there was any data structure besides an unsorted array!
Where did you guys take those courses?
(PS: I meant a real 'programming course' not a 'real programming' course)