5 ms·
They just need Automata, Grammars, and Computability, one of the "classical" courses in CS theory to complete their collection. That course really makes you a b
by jasonjei 14y ago
They just need Automata, Grammars, and Computability, one of the "classical" courses in CS theory to complete their collection. That course really makes you a better programmer in being cognizant of the shear size of problems that can't even be solved (as well as forcing you to think in terms of using tricks to bring problems into decideable space). For instance, if you ever plan to write navigation software or travel/price routing software (a la Orbitz/Hipmunk/ITA Google), computability (as well as algorithms) should be a must-know (for example, every automata course will introduce you to TSP).
- mokash 14y agoTuring machines.
- groovy2shoes 14y agoI agree - the automata, computability, and complexity course I took at university was both eye-opening and fun. I'd recommend a course in discrete mathematics beforehand. Furthermore, most CS grads I know would benefit from some statistics knowledge. I've even found physics, linear algebra, and biology (specifically genetics) very useful on the job. I see academic subjects the same way many people see programming languages -- they're tools. If all you know is programming, everything starts to look like a programming problem. There are other kinds of problems, too, and even as a professional programmer I often stumble across problems where (basic) knowledge in another field has helped immensely.