←back to thread

284 points borski | 10 comments | | HN request time: 0.613s | source | bottom
Show context
MontyCarloHall ◴[] No.44685710[source]
Isn't this just part of the broader trend of CS departments switching away from teaching computer science to teaching computer engineering, which in turn is part of the more general trend of colleges becoming more vocational?

LISP dialects like Scheme are excellent for teaching pure computer science because they are the closest thing to executing lambda calculus expressions. Whereas Python is excellent for teaching applied computer engineering, because it's essentially executable pseudocode for imperative languages, and imperative languages are the most common language a computer engineer encounters in the real world.

replies(18): >>44685819 #>>44685842 #>>44685939 #>>44686019 #>>44686088 #>>44686154 #>>44686222 #>>44686308 #>>44686321 #>>44686533 #>>44686596 #>>44686808 #>>44687195 #>>44687197 #>>44688209 #>>44688239 #>>44688473 #>>44688736 #
SoftTalker ◴[] No.44685819[source]
Yes. One of the biggest complaints that computer science departments used to get from students is that they weren't learning any languages that employers are using.
replies(9): >>44685967 #>>44686040 #>>44686076 #>>44686138 #>>44686865 #>>44686868 #>>44687099 #>>44689054 #>>44689085 #
1. nextos ◴[] No.44686138[source]
I always found this to be a shortsighted complaint. Getting exposed to languages where computation models are clear gives you an excellent background to switch to the language du jour and become a master. Going through e.g. HtDP or CTM makes it easy to transition to Python and write excellent code, whereas traversing the opposite path is going to be tough.
replies(6): >>44687133 #>>44687202 #>>44687464 #>>44688071 #>>44688301 #>>44690906 #
2. delecti ◴[] No.44687133[source]
I agree, but those don't need to be the languages you use in all classes. I learned a few assembly and academic languages (MIPS and LISP) in classes for those two topics, and it was absolutely useful to learn how to think in terms of those languages. The vast majority of our classes were Java though, and that's also been the vast majority of what I've done since graduation. (I think my school has since moved to Python as well)

So I graduated with that really helpful knowledge about why modern languages work how they do, but also a lot of practical experience of actually using those modern languages too.

3. ajkjk ◴[] No.44687202[source]
even better is learning the languages you want to learn

why are you paying a school to teach you something adjacent to what you want to learn so you can learn the thing you need yourself?

replies(1): >>44688050 #
4. vouaobrasil ◴[] No.44687464[source]
I don't agree with that. I think Python is a better first language. The better students will get through the program just fine, especially if they really want to learn computer science in depth. And the average ones will at least learn something useful.
5. aleph_minus_one ◴[] No.44688050[source]
> why are you paying a school to teach you something adjacent to what you want to learn so you can learn the thing you need yourself?

Because some topics are easy to learn by yourself, and some are not, so the latter ones are better learned in a college setting.

replies(1): >>44688359 #
6. billy99k ◴[] No.44688071[source]
If you understand the fundamentals, you can easily switch between languages.
7. nitwit005 ◴[] No.44688301[source]
Sure, it's possible to catch up, but we're talking about at least four years of potential experience. That means spending years catching up, which can seriously impact you career.

Not a unique problem to software either. My sister in-law is a mechanical engineer. Her first employer was upset she didn't know anything practical, and only knew theory. She had to spend years catching up.

replies(1): >>44688378 #
8. kelipso ◴[] No.44688359{3}[source]
Learning a language definitely belongs in the first category. Learning computer science goes in the latter category.
9. nextos ◴[] No.44688378[source]
Some technical universities in EU solve this problem by having full-time practical courses e.g. in January and June. For example, as a CS freshman you can build a really solid background in functional programming by going through a sequence of SML or Haskell courses in Autumn and Spring and spend January and June learning trendy technologies in depth. It's the best from both worlds.
10. daedrdev ◴[] No.44690906[source]
Having taking a course based on HtDP as my first serious coding course in college, it was good at teaching many concepts, but it felt very verbose and was aggressive in its hiding of features that weren't that difficult to grasp.