We never did analyse an algorithm. We were never encouraged to find better ones. "Designing a fault-tolerant distributed computing system" – I wish there were a course like that.
Maybe I just don't see the relations to real world because they teach basics first. But what do I need an engine for if I don't know that I can combine it with 2 axis and 4 tires to make it drive.
Short story:
I have on course in which we actually program. We are programming in a bad documented functional programming language. This language only works on Linux. When I asked my tutor why this is as it is and that I'd like to try to get it working on Macs he didn't encourage me to do this at all. He already worked a bit on this but had no time at the moment to proceed his work. He could have just send me what he has done and maybe some known problems and maybe I'd have been able to get it working. But he didn't. (Why?)