3 ms·
Tell HN: CS departments should make Programming Languages a compulsory course
In general CS departments make students take multiple programming fundamental courses once in imperative and popular (read Python) , then OOP (read Java), then again a systems low level one (read C).
Instead teach them programming fundamentals in a good way by teaching proper use of functions and state. e.g.: the How to Design Programs philosophy or SICP philosophy without the math overload.
Instead of multiple intro courses make them take a practical programming languages course (not type theory) like the Dan Grossman courses or PLAI course (of BrownU) so that they can understand the inter relationships between different paradigms and how to mix and match them.
Teach C when they really need it in some low level systems class in it's own right. Similarly for Java.
For Data Structures and Algo class make them implement the assignments in languages of different paradigms so that they really get the essence.
- akasakahakada 3y agoCS department in my country teach insane amount of math but not really any programming languages. Students cannot write a damn code with ~100 lines even when in master degree. Is this normal?
- detaro 3y agoIt's not uncommon. Some departments take the "CS" label serious, and focus on that. Arguably it should be more common to have degrees with explicit "software" labeling vs expecting CS to focus on development.
- moooo99 3y agoDo you happen to be in Germany? Because that was my exact experience and the reason I eventually switched.
- dysoco 3y agoIn my university it's similar, not math as in Calculus, but very theory-heavy courses with math-heavy notation and proof-based exercises. Still, most people once they get into the industry do really well, I think learning to code in your first job is easy, learning more formal topics by yourself or in the industry is hard. At the end it pays off. Also remember Computer Science is not necessary about programming, it's about much more, there is a clear distinction in my country between Computer Science and Engineering here.
- ineedausername 3y agoNo they shouldn't, ai will write the cowdes.
- jpamata 3y agoMaking them compulsory would be good, but replacing the "intro" courses with a paradigm-survey course would probably be too much for students to handle. Students would also likely not be technically mature enough to be able to appreciate these early in their journey. I certainly didnt when I worked through SICP in my late freshman/early sophomore year, eventually I ended up forgetting everything about it. I like the PLAI lectures as the prof (Shriram) was able to relate the concepts to those in the industry and various languages like haskell, as well as made it practical by discussing program design -- perhaps HtDP was also a prerequisite?
- wageslave99 3y agoWhen I studied in Spain 20 years ago I had a mandatory Compilers course in my degree's curriculum. After Bologna's Process[1], it has stayed the same, there is indeed at least one compilers/interpreters course. [1] https://en.wikipedia.org/wiki/Bologna_Process https://en.wikipedia.org/wiki/Bologna_Process
- markus_zhang 3y agoI think we don't need dedicated language classes. Students can either self learn or TA can spend a few sessions for an introductory course.