Hacker News new | past | comments | ask | show | jobs | submit login

>>>My teacher used to argue Java is good for beginners because it's a strict OOP language and teaches good habits, but I question how true that is<<<

Why wouldn't a teacher start off teaching the basics of programming with Python and then move to OOP with Python which wupports an OOP style? It may be a little frowned upon, but I mix up my styles depending on what's called for all the time. It's great and feels so naughty coming from someone who started out learning Basic then Java as my first "serious" language =)




The AP Exam covers Java and you have less than 180 days to cover everything from "what is a variable" to inheritance, recursion, and sorting algorithms.

My school has gone back and forth with starting with Python or Java in the Pre-AP course. There are pros and cons for both options, but ultimately a language is just a language. The concepts are what is really being taught.

The difference between a math variable and a computer variable and how "x = x + 1" works can be difficult for some students to wrap their minds around. Getting students comfortable/competent with a language and then switching it mid year would be a tough ask for quite a few students.

Keep in mind, many of the students taking Computer Science in high school are not exactly the same students that would have taught themselves to program at 15 and 16. Self-taught students are easy to teach (although they provide their own challenges), but you have to approach things much differently (and often slowly) for students that don't already "think like a programmer".


> how "x = x + 1" works

In BASIC you can say "LET X = X + 1" which really helped me grasp the assignment operator when I was starting out.

We used BlueJ in my comp sci intro courses, but I had already taught myself BASIC in high school using QBASIC and making extensive use of the built-in documentation. It was helpful to have some programming experience coming into it. I had to unlearn a lot of outdated or unfashionable practices, though. If I had learned how to use subroutines instead of relying on GOTO that probably would've helped understand methods a little better.


When I learned basic in school, the teacher taught to use subroutines, right after flow control statements.


That's certainly the benefit of having a teacher. :) I was trying to learn from old books and help documentation, where subroutines seemed to be considered a niche feature for more experienced users.


Code.org recently released an AP CSA course that you may want to check out.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: