Hacker News new | ask | show | jobs
by detaro 2260 days ago
Performance is largely irrelevant for the first teaching language. You can completely ignore OOP (unlike Java) if you want, although you probably should teach students about it at some point. Python doesn't have "no concept of types".

I have TA'd different intro classes that started with those languages, and Python IMHO makes a way better first language than C or Java. Start with it, introduce other languages and their concepts later. I've heard mixed things about starting with functional languages, but I think it can work too.

1 comments

> Performance is largely irrelevant for the first teaching language. You can completely ignore OOP (unlike Java) if you want, although you probably should teach students about it at some point. Python doesn't have "no concept of types".

That's how my college (Macalester) teaches it. We have two levels of CS class. One in Python, that only covers OOP at the end of the class in regards to GUI/Games.

We have another OOP class where we use Java and we go a little more deeply into CS concepts + Software Engineer Practices.

The first course is intended for anyone wanting to have some view of what CS is. I think it's a good balance.

It also helps that there are good job opportunities with both Python and Java(more so).