Live data from Hacker News

Retiring Python as a Teaching Language

prog21.dadgum.com

191–200 of 238 posts

Re: Retiring Python as a Teaching Language

#191
Lets run with the OA for a bit.

What textbook is there that is easily available in English that could support a 30 lecture introductory course?

What 'environment' would you use? Text editor plus browser or a browser plugin for JavaScript editing or something else?

What base selection of libraries would be included with each project in your opinion?

Possibly linked with my first question, what kinds of projects/assignments would you suggest?

Re: Retiring Python as a Teaching Language

#192

When I took an introduction to Computer Science in college, it was taught in Racket. Over winter break, I then learned Python, and I was baffled -- why would any curriculum not start with Python? Python was easy, expressive, and allowed the user to get lots done with little effort. It was great at motivating programming by showing its use and power. It seemed like an ideal introductory language. Over the last few yea…

Teaching is made of two components: access to knowledge, and motivation. Today, access to knowledge is almost entirely irrelevant: pretty much all knowledge is freely accessible from anywhere, anytime. You just need the motivation to look it up. Teaching yourself can be easy, if only you have the drive to keep at it. It wasn't the case in our past. In the middle ages, before the printing press, teaching was 99% passi…

Guided presentation of knowledge. Not access to knowledge.

Admittedly a lot of uni teaching is just a data dump. But the data dump at least tells which topics to investigate, and regular reviews tell you when you're not getting it.

Without that you may never know why - say - compiler design is important in CS, and not just to compiler writers.

Re: Retiring Python as a Teaching Language

#193
post #159
post #65

Earlier quoted context omitted.

Again, this is not about personal preference. In the real world, 90% of programmers use either C#, Java, C/C++, JS or Python/Ruby/Perl in their jobs. We could restrict ourselves to this set of languages and syntax style, and design a super-set language that does everything, gets rid of their historical warts, and can go from scripting to HPC. Stuff like using significant whitespace or not, are BS bikeshedding, which…

> So it was Windows only, in the CLR with no supported AOT option, etc. NGEN was there since day one. Spec#, Singularity systems programing language (based on C#) only has AOT compilation to native code. This work was the basis of Windows Phone 8 .NET, that only compiles to native code, in a PE format known as MDIL. This work was then continued to bring static code compilation to the Windows 8 for tablets and now for…

Cool, missed that NGEN was there from the start. Was mostly following Mono at the time, were the AOT option came quite later.

Re: Retiring Python as a Teaching Language

#194

I'm saddened by the lack of academic rigour displayed in this thread. If you have not taught introductory computer science courses, then you have NO CLUE what makes a good introductory language choice. It appears James Hague isn't working as a teacher either, just giving advice to newbies, so his opinion is just that -- opinion. What you want is field studies: "This year we used Haskell and 75% of all students gave u…

>I'm saddened by the lack of academic rigour displayed in this thread. If you have not taught introductory computer science courses, then you have NO CLUE what makes a good introductory language choice.

Judging from what most academic institutions teach as a first language, that seems to move with the fads of each period and what's "hot in the industry" (e.g. Java a decade and a half ago), that's also the case if you HAVE taught introductory computer science courses.

>It appears James Hague isn't working as a teacher either, just giving advice to newbies, so his opinion is just that -- opinion.

As is most "informed opinion" of academic teachers. CS is mostly a sub-field of mathematics, the rest of it is, as Alan Kay says, pop culture.

Re: Retiring Python as a Teaching Language

#195
post #180

When I took an introduction to Computer Science in college, it was taught in Racket. Over winter break, I then learned Python, and I was baffled -- why would any curriculum not start with Python? Python was easy, expressive, and allowed the user to get lots done with little effort. It was great at motivating programming by showing its use and power. It seemed like an ideal introductory language. Over the last few yea…

Home computers used to boot to a BASIC interpreter. To do anything you needed to use a little bit of BASIC. Looking at HN threads we see many people who claim this one thing created very many programmers. But back when it was happening we had teachers giving remedial classes to force BASIC users to "unlearn" bad habits. (There's probably a "BASIC considered harmful" somewhere). What language would you recommend for 8…

> (There's probably a "BASIC considered harmful" somewhere).

Edsger Dijkstra: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

I do not subscribe to this opinion. I think BASIC (at least the flavor Dijkstra was talking about) does encourage bad programming habits, but everything can be remedied with exposure to better languages and practices.

I actually agree with you: BASIC helped make a lot of people interested in programming. I know GW Basic, and later Quick Basic, did this for me.

Re: Retiring Python as a Teaching Language

#196
As much as I fear a Dijkstra apocalypse and how much brain damage newbies will sustain by starting with JavaScript (and thinking arrays being hash maps to be perfectly OK), I started with 8-bit AppleSoft BASIC and I have to say that, while the concept of a function or recursion only appeared to me after my introduction to Pascal, I turned out well enough. Also, I had a good idea of how machine language programs operated - they map very neatly to what BASIC could do.

Re: Retiring Python as a Teaching Language

#197

Earlier quoted context omitted.

> Thus, I don't really think that learning Python offers solid programming foundations. I agree. But there is a huge class of people that this argument tends to miss - all the people who learn programming as a tool and not a way of life, like scientists or engineers from other departments. For those, it's ideal to learn one language, and it's OK if they don't completely understand CS. For them it's better to know a l…

Yes, that's a good point. Some people might not actually need to cultivate a deep understanding of CS -- they just need a tool to get the job done. Not everyone who uses a hammer needs to take carpentry lessons. In that sense, Python can be a very appropriate choice.

Exactly, for the others there's Software Carpentry: http://software-carpentry.org/lessons.html

Re: Retiring Python as a Teaching Language

#198

Earlier quoted context omitted.

> What you want is field studies: "This year we used Haskell and 75% of all students gave up on programming stating that it was to hard. Last year we used Visual Basic and only 20% did. Ergo Visual Basic is probably a better first language than Haskell." Why is that necessarily a good thing? What are we optimizing for here, understanding or popularity? SICP review by Peter Norvig: > Donald Knuth says he wrote his boo…

Exactly this. Why are we trying to raise an army of procedural, object-oriented programmers?

Easy for corporations to replace cheaply.

Re: Retiring Python as a Teaching Language

#199
post #98

Earlier quoted context omitted.

I'm sorry, your comment isn't making clear what teaching programming has to do with distributing graphical applications. Could you clarify what 'these reasons' are?

Teaching intro programming courses with "parse a CSV file" or "implement a text based calculator" is outdated. Modern students have grown up with smart phones and are used to being able to click around and have the computer react graphically. Students learning with C or Python have a large chasm of GUI libraries they have to cross before they can make anything like the UIs they are used to seeing. Being able to make…

Looks like there is some sort of school of thought that differentiates 'programming' from Computer Science. This seems wrong, because you're not teaching 'how' you're teaching 'what'. The time students spend learning how to write HTML what CSV is, isn't spent on what bool, operators, statements, blocks, procedures are. They're learning 'Web Programming', which won't help them nearly as much when they have to do anything else.

Re: Retiring Python as a Teaching Language

#200

I battle with the same problem with my students. I love teaching Python, and I think it is a fantastic teaching language. JavaScript, although harder to learn, is much more exciting for the students to play with, and libraries are always just a link away. My main reason for not switching completely over to teaching JS, is the nightmare that is debugging simple syntax errors.

Most editors have a JSHint plugin, which will check your code as you go and point out when you've made a syntax error or used a bad practice.

I use it with Syntastic + Vim and it's a long time since I've ever loaded up code in a browser and there's been a syntax error. Definitely worth checking it out if that's the last hurdle before switching.

Post reply on HN