6 ms·
Ask HN: Why are intro to CS courses almost always intro to programming?
We all are aware that Computer Science is not programming and programming is not CS. Then why do almost all introduction to CS courses teach programming in the fancy popular language of the time?
Shouldn't introduction to CS be all about learning principles of the discipline in a broad perspective which then branch out to several specialised subjects later on?
And shouldn't introduction to programming be a separate course that teaches the way to program to achieve some concrete goals like building something?
Example: Wood carving techniques are taught to learn how to carve a piece of wood to build a small sculpture or something. Not to teach the principles of wood carving to become a master wood carving artist. Those things are separate.
- tristanbvk 4y agoI think it is easier to reason about the theory of time complexity if you understand the code you want to analyze than the other way round. I must say however, I am not a fan of it teaching the "hip languages of the day". My intro course started with Java which was solid, but they are changing it to Python now - in what I and many professors and lecturers refer to as the "data scienification of CS" - which is a bad thing. We have data science courses, we don't need CS to become one.
- justinram11 4y agoMy intro class was taught in lisp (and had been for the previous decade or more), but I learned that about 2 years after I graduated that they also began offering it in Python. Several of my class thought that was a very "useless" way to kick off the degree, but I really liked the immediate introduction to recursion (blew my mind when it clicked) and felt it leveled the playing field quite a bit for everyone entering the course.
- debanjan16 4y ago> My intro class was taught in lisp Was it SICP in Berkeley?
- justinram11 4y agoCSCI 1901 (Computer Programming I) at the University of Minnesota Twin Cities
- tristanbvk 4y agoWe did recursion in maybe like 7th week or so I guess. It was later on, but I think it really hit with second year compiler course.
- snowpid 4y agoPython is a quiet good choice. It is easy to learn because it abstracts away lots of stuff, it is useful for certain areas (not only data science) and it is a mature language (30 years are quiet old for a hip language of the day) In Vienna they teach C++ for beginners. It is an awful choice. (I think I can understand if teachers choose Java for learning)
- tristanbvk 4y agoPython is dynamically typed. I had an entire research project in it (see: http://deavmi.assigned.network/research/ http://deavmi.assigned.network/research/) and I can say it makes for terrible programming. Static typing is worth it. Every friend of mine who liked Python has come to realise it is really only good for scripting. We love static typing.
- snowpid 4y agoI dont see the point of your argument. Why is your experience of using Python 2.0 related how good it is in teaching beginners? Static typing is just one aspect (and my humble opinion, it is not the most important question).
- dev_0 4y ago[dead]
- deleted 4y ago[deleted]
- seydor 4y agoBecause if they started with math people would run away?
- ineedausername 4y agoIt's a marketing decision, "learn to code" sells these days.
- ss108 4y agoSince when are intro to programming courses using FOTM languages? At "max", some use Python, but aren't most still C++ or Java?