3 ms·
Could not agree more. Top schools like MIT gave up on their silly dedication to obscure languages in introductory programming classes and switched to Python. It
by seibelj 7y ago
Could not agree more. Top schools like MIT gave up on their silly dedication to obscure languages in introductory programming classes and switched to Python. It seems like there was a generation of professors who decided there was a “correct” way to teach computer science and it involved languages completely isolated from the mainstream industry. It’s like teaching someone grammar by forcing them to use Esperanto because it’s “The Best” language (according to tenured professor who doesn’t give a shit about their students).
All Turing complete languages can execute any program. The fundamentals of programming exist in all languages. Teach students using languages with the absolute minimal friction so they aren’t spooked in their first exposure to programming.
Academia has scared away an untold number of aspiring students with their nonsense languages. Such a damn waste of talent. The absolute worst programmers in terms of craftsmen-ship are academics - if you want to see some truly WTF code look at what underpins research papers.
- naasking 7y agoThat's ridiculous. It's computer science, not computer programming technician. You teach with the tool that most clearly distills the principles of what you're trying to teach. Racket and Scheme arguably do that much better than Python. In fact, Racket 15 years ago still has more cutting edge features than Python has to this day. There is simply no language that provides the breadth of features available in Racket, and I don't even use it. > Academia has scared away an untold number of aspiring students with their nonsense languages A programmer that's scared or intimidated by learning a new language does not belong in this industry. You might as well say that we should coddle civil engineering students that are scared of computers. If this is a barrier you can't surmount, consider another career.
- seibelj 7y agoYou can teach the principles of computer science without forcing some obscure and difficult language on new programmers. Learning programming is hard enough, no need to add more bullshit on top of it!
- non-entity 7y agoWhat is particularly more difficult about Racket, other tha maybe using a paradigm you are not familiar with?
- seibelj 7y agoDid you read the linked article? It is a pretty thorough explanation along with surveys of students. Only 22% liked racket!
- naasking 7y agoSo most people who know almost nothing about programming hate Racket. Can't say I find that compelling.
- kyawzazaw 7y agoBut they prefer Python. I think we need to note that the specific population you are referring to is directly the ones who are being affected. It might also be a good idea to consider their input.
- StreamBright 7y agoI remember in high school when only 20% of my class liked math. We should stop teaching math, right?
- geofft 7y agoI thought the person that you're replying to made a very good point about Esperanto. Why do we teach linguistics with messy real-world languages instead of conlangs that most clearly distill the principles we want to teach?
- Mediterraneo10 7y agoOne of the chief concerns in introductory linguistics programs is introducing students to the great typological diversity of the world's languages. There are a number of different ways in which languages can inflect (or not), structure word order, derive new words from existing vocabulary, etc. Conlangs, however, tend to choose a very limited set of approaches, for example agglutinative inflection is popular because creators feel it makes the language easier to learn. Just as some North American departments have been mocked for doing all their theoretical work purely on the basis of English (or other European languages), using a conlang would make students miss out on the full range of human linguistic expression. All human languages have at least some irregularities, and the way in which speakers deal with those irregularities is an interesting series of phenomena in itself, but most conlangs aim to be fully regular. A similar situation holds for phonology in which most languages have a developed system of allophony and sandhi, but conlangs typically don't aim to represent those phenomena at all.
- geofft 7y agoRight. And doesn't that apply to programming languages too? Aren't the ways that Python is irregular to support real-world needs (the Zen of Python even says "Practicality beats purity") worth CS students studying?
- fishmaster 7y agoNo, because this is computer science and not software engineering. The best introductory language is the one that allows to express the concepts that are presented in the cleanest way possible. If you want "real-world needs" then drop out and work for a software company. The purpose of universities is not to cater to the needs of industry - to pump out code monkeys.
- deleted 7y ago[deleted]
- craigsmansion 7y ago> It’s like teaching someone grammar by forcing them to use Esperanto Or Latin, which for the longest time wasn't called "Latin", but simply something that was taught in "grammar school", because it addresses the underlying fundamentals quite clearly without getting bogged down with semantics. Latin is still used for that, btw, but only in "top schools". >Teach students using languages with the absolute minimal friction Say, something with a trivial syntax; something that is easy to express any construct in without too many preconceptions of what a programming language should look like. If only there was a language like that!
- seibelj 7y agoYou have an ivory tower elite mindset. My mindset is to actually help students learn and get excited without being scared on day 1. Save whatever functional nonsense you want to teach for “Obscure Languages 401” class. CS101 should be getting people into programming and teaching them using languages that they can actually do stuff with. If you teach someone python they can do statistical analysis and have a huge number of libraries to start making fun projects with. Teach them Scheme and they switch to the school of communications.
- craigsmansion 7y ago> Save whatever functional nonsense you want to teach for “Obscure Languages 401” class. Do you also talk to your students like that when, say, one of them mentions an interest in different languages or mentions anything that doesn't agree with your "mindset"? > using languages that they can actually do stuff with Didn't you just state: "The fundamentals of programming exist in all languages." ? I was only commenting on your "minimal friction" that scheme naturally provides and how elegantly fundamentals can be demonstrated by it (right up to and including meta-circular evaluators).
- geofft 7y agoIf your argument is that teaching Scheme is as good an idea as teaching Latin, I think there will be no disagreement....