4 ms·
>It was almost as though CS tries to discourage its usage simply because "most minds cannot understand it as easily as iterative loops". Wouldn't that be enoug
by mixedCase 11y ago
>It was almost as though CS tries to discourage its usage simply because "most minds cannot understand it as easily as iterative loops".
Wouldn't that be enough reason? They're supposed to teach you how to write good code, and that includes readable code.
- derefr 11y agoNo, "they" are not. Maybe you're thinking of Software Engineering? Computer Science is supposed to teach you about the branch of mathematics called Computer Science. Recursion is a very important part of that—important enough that the need to address it early was one of the things that made Scheme an obvious choice for a teaching language for decades.
- argonaut 11y agoNo. This is an overly restrictive definition. Computer Science is it's own, highly diverse field, composed of software engineering, algorithms, theory of computation, human-computer-interaction, AI, systems engineering, databases, security, graphics, scientific computing, and many other sub-divisions. CS hasn't been solely a branch of mathematics for decades. See what Stanford considers part of CS: http://www-cs.stanford.edu/research http://www-cs.stanford.edu/research See what Berkeley considers part of EECS: http://www.eecs.berkeley.edu/Research/Areas/ http://www.eecs.berkeley.edu/Research/Areas/
- pjmlp 11y agoIn Portuguese universities informatics Software Engineering and Computer Science are part of the same degree, there isn't a clear distinction as such. It is up to you to choose which lectures you want to use your optional credits for.
- the_af 11y agoTrue, there often is no clear distinction. On the other hand, I studied CS in South America, and I can count on one hand the lectures which aimed to teach you "how to write good code". Maybe one or two of them, and only in the macro "good software engineering practices" sense. Most of the others assumed you sort of picked up how to code on your own, or that you asked other students or TAs on the side. There absolutely were NO "how to code" lectures, and the overall idea you got was that CS was a theory-heavy degree. Recursion, proofs, type theory, graph theory, etc, were absolutely the focus of the degree. There was a different degree called "Software Engineering" (and not CS) from the same university, but I think they heavily overlap in content, so in practice the point remains.
- pjmlp 11y agoIn Portugal, at least back on my university days, the only bad ones which might relate to a pure US CS theory only degree was "Mathematics degree with specialization in computation". On my case beyond Architecture design, there was hardly any "how to write good code" lecture.
- nbevans 11y agoNot enough reason in my opinion. The thing is all the people in my CS101 that couldn't fluently grasp recursion generally didn't do very well and I don't think many of them ended up working in software jobs. Recursion, good code and readable code are not related; I don't understand this point.
- marklgr 11y agoIt's more readable because other programmers have been taught the imperative style too, because their teachers find it more readable, because <tail call here>.