Hacker News new | ask | show | jobs
by tristanbvk 1268 days ago
I 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.

2 comments

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

We 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.
> My intro class was taught in lisp

Was it SICP in Berkeley?

CSCI 1901 (Computer Programming I) at the University of Minnesota Twin Cities
Python 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)

Python is dynamically typed. I had an entire research project in it (see: 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.

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