At CCNY they were testing using
Python as their first language in the Introductory Computing course, instead of
C++ last year. It was just a couple sections, but I got into quite an argumentwith them about it, as the people from the class were in a following Data Sturctures class I was in.
Python is a fine language, but so much of everything as done for you, I don't feel it's a good first course in programming, it's too easy. If you are trying to be an actual CS major in an engineering school, you should be doing
c++ and have courses on several languages. In the following Data Structures (in
C++) the
Python people had no idea how to translate well, several concepts were very foreign to them, like memory management. Don't get me wrong, like
Python, but I think it's something you chose to use because it's fast and powerful, but you understand what it's doing because you've done other languages. What next? Eventually programming is going to be a visual interface of boxes with simple keywords to get things done? What happens when what you want to do is HARD and none of it is covered in your standard library?! Better call tech support, or start searching google stat.
I think schools are bending to the fact that many engineering courses require 1 programming course, and they want to make it easier for those people that will never program again, I think it's a mistake. Have a programming course for non-CS majors, and do that. I just felt if they went that route no-one would really learn anything deeply, or be inspired to write their own language, or even question the way we program today, as Dominic's article highlights.