Why We Should Teach Python instead of Racket
acbart.github.io
Why We Should Teach Python instead of Racket
1–10 of 69 posts
Re: Why We Should Teach Python instead of Racket
#2Re: Why We Should Teach Python instead of Racket
#3All 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.
Re: Why We Should Teach Python instead of Racket
#4Could 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 bec…
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.
Re: Why We Should Teach Python instead of Racket
#5Could 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 bec…
That'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,…
Re: Why We Should Teach Python instead of Racket
#6Could 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 bec…
That'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,…
Re: Why We Should Teach Python instead of Racket
#7Could 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 bec…
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!
Re: Why We Should Teach Python instead of Racket
#8> Racket is not a very popular language in teaching communities
This list of schools with introductory Racket classes isn't accurate, because the author did not look beyond the naming of the courses on the Github page. My school was missed.
> Students are unlikely to have had prior experience with Racket
This is good because it means students from varying backgrounds of programming experience start from a level playing field.
> Racket’s aesthetic beauty has limited relevance to CS1
Computer Science is first and foremost an ivory tower and students are (imo) better off being confronted with this fact up front. Software Engineering is probably better taught with a more practical language.
> Students do not use Racket again later in their degree
At my school the Programming Languages core curriculum all used Racket. A good percentage of students funneled into at least the first PL-core class as part of their requirements. The class was very popular.
> Students do not like Racket
Sorry, but I don't think we should base our decisions on what Intro students like/dislike. People hate leaving their comfort zone - that doesn't mean they shouldn't be pushed out of it.
> The Design Recipe Is Not Well-Evidenced
Valid criticisms. On the other hand, no evidence is presented that other languages are better.
Re: Why We Should Teach Python instead of Racket
#9Could 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 bec…
> 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 frict…
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.
Re: Why We Should Teach Python instead of Racket
#10Earlier quoted context omitted.
That'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,…
You 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!