4 ms·
My university switched their CS 101 course from C to Java to Python. I tutored students in CS courses, so I've seen what problems they had. C is easy enough un
by nzmsv 17y ago
My university switched their CS 101 course from C to Java to Python. I tutored students in CS courses, so I've seen what problems they had.
C is easy enough until you hit pointers (and arrays give people trouble, strangely enough). Eventually pointers were just dropped entirely, and the students were told to memorize that scanf is magic.
Then came Java. It was taught as if it were a prettier C. No objects anywhere, just a bunch of static methods. The students were told to memorize a bunch of magic once again (what's a "class"? why do I have to type "static"?).
I did not get a chance to help anyone struggling with Python. I think it is a better teaching language, but you still have to teach a subset. If you show beginners a list comprehension, they will likely swear off programming forever :) The advantage is, the subset you teach can avoid magic.
One problem: Java is a (current) standard. Schools want to teach things they think are useful in the workplace. Interestingly, students want to learn these languages for the same reason. Just google "what programming language should I learn", and read the responses. A large number will base their answer on "what's used in industry".
- nopal 17y agoThanks for the info. I wish the focus, especially for the AP program, was less on what the industry is doing and more on what is best for becoming a successful computer science student. If a student is taking an AP course, they're not looking for vocational training, and I don't think that's what colleges are looking for, at any rate.
- kleinsch 17y agoThe AP is a program for college credit, so they look at what colleges are expecting. The majority of colleges are using Java for their intro computer science classes, so the AP adjusted the class to account for that. The major industrial players keep nudging colleges towards Java because that's what they all use for their applications. We all like Python, Ruby, Scheme, etc, but Lockheed Martin comes to a university with a $500K donation and suggests that they teach Java, it's very persuasive. ;)
- pmiller2 17y ago>C is easy enough until you hit pointers You forgot recursion. If there are two things you can count on CS1 students to not understand, they're pointers and recursion.