PyCarolinas, Chapel Hill, NC, Oct 21 2012 Why Python Makes a Good First Language Barry Peddycord III http://isharacomix.org
@isharacomix No research was done in the preparation of this talk!
This is an opinionated discussion based on my personal observations and biases.
That being said, I'm not going to make up numbers or figures. Assume that if it isn't cited, it's either mine or common knowledge.
THIS TALK COMES WITH ABSOLUTELY NO WARRANTY, EXPRESSED OR IMPLIED, ETC ETC ETC The Fine Print #pyshara Intrinsic Reasons Pedagogical Reasons Who actually learns a language from a lecture? Public Static Void What? What we teach How we teach it Object-Orientation Class-File Parity Function Definitions BOILERPLATE CODE!!! Access Control Static Memory Getting started with Python requires *very* little scaffolding.
It's possible to learn basic concepts without having to recursively understand other concepts along the way.
Python does not needlessly introduce concepts before students are prepared to learn them. Python is Dependency-Light Why am I picking on Java?
Java is the "default" CS1 language
Used in AP Computer Science since 2003, replacing C++ Works cited
1: Zelle, T. Python as a First Language. http://mcsp.wartburg.edu/zelle/python/python-first.html
2: Robins, A. (2010). Learning edge momentum: a new account of outcomes in CS1. Computer Science Education, 20(1), 37–71.
Other Features that make Python nice:
Classes/Functions are not compulsory
REPL and built-in 'help()' function
Easy to use packages
SDL, OpenGL, Django
Zen of Python
It's a "real language" (YouTube)
It was originally designed to teach! Just-in-Time
Students should develop the intuition behind programming on their own.
Lecture should be reserved for formalizing that intuition. When students find a solution on their own, they:
Internalize the problems they face
Derive greater satisfaction from finding the answer
Retain the knowledge! Humanities Teachers Get It!
Students in their classes are novices, yet still manage to learn how to make websites and games:
Unity3D Intro CS courses feature a bimodal curve, primarily due to having students...
who already know how to code or pick it up right away
who get overwhelmed and can't grasp it This is a more authentic way of teaching programming as it aligns more with the way that professionals learn code in real life! ... and Python Supports this!See the full transcript