Hacker News new | ask | show | jobs
by skillpass 2256 days ago
Full disclosure - I took 3 classes in Racket: Intro to CS, Programming Languages, and Compilers.

> 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.

3 comments

> 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.

Although the article didn't cover it, I think it's important that in the industry, students will be able to find a job/internship that uses Python more than Racket. If both languages achieve the goal of introducing students to CS, why not use something that could benefit students more?

The question is "will teaching python actually benefit students more"?

Having learned Python well before any of the Lisps, today I find it a cumbersome language that doesn't really offer anything above others, and while useful, in an academic setting I'd relegate it to a secondary status of language specific to certain courses that use tooling related to it. I'd probably forgo teaching it at that, as the experience of learning a language on your own (and Python got pretty good materials included for that) is pretty important, and can be supported by one or two workshops to help students struggling with it.

Remember, learning Computing Science at an University is not a vocational course like a bootcamp, that churns out people more or less prepared for churning basic, simple code (not to disparage the students of those, but Bootcamps are by nature simplified). That's not what going to university for a CS degree is for, and every institution that assumed such mindset had their course quality plummet.

> The question is "will teaching python actually benefit students more"?

Is there an argument against it? I ask in genuine curiosity. I am aware that it is not statically-typed and abstract away some of the important concepts in computer science.

What language do you think is more suited? Do keep in mind some of the intro CS classes are also used to warm up non-CS majors to what CS looks like.

The biggest advantage I think it offers is the lowering of barrier to entry. It ignites excitement and removes obstacles to start understanding cs logic so as to say.

Python is definitely more real-world practical. Most students will go on to learn it in future classes anyways though. An Intro class is better off preparing a conceptual foundation that will serve students across many languages and paradigms.
> An Intro class is better off preparing a conceptual foundation that will serve students across many languages and paradigms.

Is there any issue with Python that is against being usable for giving a conceptual foundation? (I understand that it is dynamically typed and abstract away a lot of things in CS) but all of them could be resolved later.

> Students do not like Racket

That is kind of the killer, isn't it? 10+ years of Racket and students still hate it. If they can learn introductory CS without suffering through Racket, why force them to do so? (Disclaimer: I think Racket looks interesting but I have never tried to use it for a project.)

But why not allow students to vote with their feet? Offer Racket and Python and see which course's graduates do better in the rest of the major.

My university has taken this approach. The main intro class is still Racket based, but they offer a Python alternative which satisfies the same requirements. I hope they're tracking the difference in outcomes!
There is no reason computer science needs to be steeped in academia. The only reason why it is so popular in the first place is because it is so practical and applied. Easy to profit from. If you worship your ivory towers, feel free to become a mathematician.
Please don't take HN threads into flamewar. It leads to predictable places, therefore tedious ones, therefore off-topic ones.

https://news.ycombinator.com/newsguidelines.html

I think computer science has every reason to be steeped in academia.
By your logic, the creators of PageRank should have chased after the tenureship rat race like every upstanding academic instead of trying to commercialise.
> By your logic

That does not follow, in any shape or fashion, from what was stated.