Hacker News new | ask | show | jobs
by ghaff 381 days ago
There's definitely this disconnect between programming and computer science. For better or worse, a lot of top schools don't even really teach programming in their computer science programs. It's something you just pick up on your own.

But not sure that using Python as the specific tool is so bad--based on the MOOC that's what MIT uses in Intro to Algorithms. May be better than spending a lot of time on the vagaries of C++ which are certainly relevant to system programming (though that's probably slowly switching to Rust) if your focus is on algorithms and other design details.

2 comments

> […] a lot of top schools don't even really teach programming in their computer science programs. It's something you just pick up on your own.

"Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them, and what we find out when we do."

* https://quoteinvestigator.com/2021/04/02/computer-science/

* https://en.wikiquote.org/wiki/Computer_science#Disputed

Perhaps a trade school would be better if someone wants to focus on 'just' programming.

I think completely separating it like that goes too far in the other direction. The absolute best undergrad classes I had were the two where the lectures were entirely on the theory side, then the projects were practical implementations of the theory.
Totally. One consequence which I'm somewhat ambivalent about is that people with interest in engineering fields other than computer science may not be expected to have the degree of familiarity with the tools of the trade that budding computer scientists do. But, given the popularity of computer science as a major, it's probably inevitable to expect that freshmen at least in top schools have done at least some programming.
Being able to understand computer science and apply it is called software ENGINEERING for a reason, and it's a lot more complicated than 'just programming'.

You sound like a physicist who thinks mechanical engineers are unnecessary because we have physicists and car mechanics.

> You sound like a physicist who thinks mechanical engineers are unnecessary because we have physicists and car mechanics.

Or I sound like someone who recognizes that physics and computer science, and mechanical engineering and computer engineering / programming, are different areas of activity.

Well, essentially you have the language used in the class match the subject being taught.

Python gets language difficulty out of the way of learning a given algorithm. Bonus points for exacerbating the time issue when trying to introduce Big O timing notation. The kids can actually "feel it" in an in your face kind of way.

Systems, it's different, as you say.

Compilers. Different AI courses. And on and on. Each you may have legit reasons for using different languages.

The concern starts to grow when Python is being used across many courses to the exclusion of any other language or technology. That's the issue that's growing across CS departments right now. Couple that with kids who have no interest in learning the other languages on their own and voilá! You have an issue with uninterested kids graduating, but now they're also unprepared.

No argument. 6.001 I think it is goes into sort algorithms, Big O, etc. And Python seems a pretty good match especially as an ostensibly into course. Rust (or C++) is clearly a better match for other purposes and would probably deserve some sort of class for some of the associated concepts even if the student sort of knew how to "program."