Of course, using a powerful, fun language in CS1 creates a new set of problems for us. A while back, a CS educator on the SIGCSE mailing list pointed out one:
Starting in Python postpones the discovery that “CS is not for me”.
After years of languages such as C++, Java, and Ada in CS1, which hastened the exit of many a potential CS major, it’s ironic that our new problem might be students succeeding too long for their own good. When they do discover that CS isn’t for them, they will be stuck with the ability to write scripts and analyze data.
With all due concern for not wasting students’ time, this is a problem we in CS should willingly accept.
(via Jens Ohlig)
When I was seven years old I took group swimming lessons.
I didn’t learn to swim.
When I was eleven years old my family joined a local health club and went nearly every morning for years. They had a pool which I would horse around in.
After many months in the pool I taught myself to swim, quite by accident.
※ ※ ※
My first programming course was BASIC on an IBM PC. While not full-blown computer-sciencey is was structured.
I hated it and didn’t want anything to do with programming after the first lesson.
Years later we bought a used Mac Plus with this thing called HyperCard. I explored it intensely and taught myself to program, again quite by accident.
※ ※ ※
I came to computer science from the wrong side of the tracks. Other have before me, and others will after me.
Attempting to weed out entrants is a disservice to the whole of computer science: its teachers, students and practitioners.
Weeding out entrants has a noble intent to help students discover that computer science isn’t for them at an early stage, however it is insular and conceited.
Many — perhaps most — entrants will do well to jump directly into the deep end of the computer science pool. However room should be allowed for those who want to splash around in the shallow end first.