Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #61562

Re: Experiences/guidance on teaching Python as a first programming language

Path csiph.com!usenet.pasdenom.info!news.albasani.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <rosuav@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.013
X-Spam-Evidence '*H*': 0.97; '*S*': 0.00; '(at': 0.04; 'mathematics': 0.05; 'subject:Python': 0.06; 'algorithms,': 0.07; 'back.': 0.09; 'subject:language': 0.09; "they've": 0.09; 'yeah,': 0.09; 'cc:addr :python-list': 0.11; 'python': 0.11; 'language.': 0.14; 'programs.': 0.14; "wouldn't": 0.14; 'all).': 0.16; 'benjamin': 0.16; 'correctness.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'handlers.': 0.16; 'partly': 0.16; 'personally,': 0.16; 'subject:programming': 0.16; 'types,': 0.16; 'so.': 0.16; 'language': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'bit': 0.19; 'meant': 0.20; '(the': 0.22; 'command': 0.22; 'code,': 0.22; 'input': 0.22; 'programming': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; 'creating': 0.23; 'certainly': 0.24; 'days,': 0.24; 'lets': 0.24; 'mathematical': 0.24; 'fine': 0.24; 'cc:2**0': 0.24; 'nearly': 0.26; 'subject:/': 0.26; 'header:In-Reply-To:1': 0.27; 'idea': 0.28; '[1]': 0.29; 'dec': 0.30; 'message-id:@mail.gmail.com': 0.30; 'code': 0.31; 'that.': 0.31; 'you?': 0.31; '(usually': 0.31; 'routine': 0.31; 'styles': 0.31; 'figure': 0.32; 'stuff': 0.32; 'quite': 0.32; 'worked': 0.33; 'actual': 0.34; "i'd": 0.34; 'could': 0.34; 'problem': 0.35; 'basic': 0.35; 'display': 0.35; 'created': 0.35; 'tool': 0.35; 'something': 0.35; 'computing': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; "he's": 0.36; "didn't": 0.36; 'application': 0.37; 'mine': 0.38; 'needed': 0.38; 'pm,': 0.38; 'rather': 0.38; 'does': 0.39; 'though,': 0.39; 'called': 0.40; 'how': 0.40; 'algorithms': 0.60; 'extended': 0.61; 'world.': 0.61; 'course': 0.61; 'first': 0.61; "you'll": 0.62; 'making': 0.63; 'kind': 0.63; 'real': 0.63; 'teaching': 0.64; 'different': 0.65; 'world': 0.66; 'introduction': 0.68; 'results': 0.69; 'fact,': 0.69; 'study': 0.69; 'touch': 0.74; 'goal': 0.75; 'analysis': 0.75; 'friend': 0.79; 'oscar': 0.84; 'playable': 0.84; 'played': 0.84; 'rexx,': 0.84; 'studying': 0.84; 'same,': 0.91; 'to:none': 0.92; 'ultimate': 0.93; 'students,': 0.95; '2013': 0.98
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=1Qp6droXSmTw0k49H5DOJc3F0QsX3AZt49CByTDJNLM=; b=v5lD6bIPE39BmKiUqoe6PIL/BIo5aPvJBE2pV3VEXLioNGvxdAVHhWzCdOj4PyKEwX 9uif8IMxy7IufD6tc43rxMrSwLkYjq+wOOG1M6DaHg5XojD9iibiH46rKBcCoZf++HeN /SOWR+/IJQ9uh4p6j9oIaZKdwa6T70sBncDOETx4BWKMDl1hu1QXUiVbwpl6+qrpFZ4a 4JTYOi0bt1kul/pS8MNIcvivY6V0WFMC7EbXjr4T60wfVWuXHC0ztaPaXGTlAaOR5MOb 1iinfTpc17osToNlE02xyeTQijaNIr/Nbt7DBaL6q5yyRqg9B9NZu8to5XCw/56bj/CU Oung==
MIME-Version 1.0
X-Received by 10.66.66.42 with SMTP id c10mr1389383pat.98.1386765350178; Wed, 11 Dec 2013 04:35:50 -0800 (PST)
In-Reply-To <CAHVvXxRLzn-bFE8VRQb0bOWxwTkqo+DdQ-rYm=c4tvzgCGJ86Q@mail.gmail.com>
References <CAHVvXxS23g8dxO23pPTmXLo0z=QzJY_CjwMUtJcvAVfRhZa8bA@mail.gmail.com> <201312090824.25211.gheskett@wdtv.com> <52A78F6F.3060507@stoneleaf.us> <CABicbJKoN9fV48yskd5wqE79vsb5=nPGfwgOTCO+fCFMG7g8qw@mail.gmail.com> <CAPTjJmpQ9bFP66j3p-PDb2Mp88GKWKktrcFRCWQtdo6fb8LHmA@mail.gmail.com> <CAHVvXxRLzn-bFE8VRQb0bOWxwTkqo+DdQ-rYm=c4tvzgCGJ86Q@mail.gmail.com>
Date Wed, 11 Dec 2013 23:35:49 +1100
Subject Re: Experiences/guidance on teaching Python as a first programming language
From Chris Angelico <rosuav@gmail.com>
Cc "comp.lang.python" <python-list@python.org>
Content-Type text/plain; charset=UTF-8
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.3894.1386765359.18130.python-list@python.org> (permalink)
Lines 49
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1386765359 news.xs4all.nl 2914 [2001:888:2000:d::a6]:35013
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:61562

Show key headers only | View raw


On Wed, Dec 11, 2013 at 10:46 PM, Oscar Benjamin
<oscar.j.benjamin@gmail.com> wrote:
> This definitely wouldn't work for my students but a friend of mine
> studied CS (at Warwick?) and his course worked as Dijkstra describes.
> In the first year they don't touch a real programming language or
> write any actual programs. They take exams in pseudocode and formal
> proofs of correctness. Then after a year of studying algorithms,
> linguistics, semantics, proof, mathematics and so on they write their
> first hello world program in a real programming language. I don't
> really know whether he's any good at programming but he's certainly a
> good mathematician.

Yeah, that's how that sounds. If programming is, to your students, a
tool for mathematical analysis (if code is a kind of super-algebra),
then it's right to take eams in pseudocode and study algorithms before
writing hello world. But if programming is a means of gaining command
of a computer, it's far better to see some results of that. Some
people like the idea of creating games (usually because they've played
so many), so there are courses around that take you from knowing
nothing about code to creating your first game (often in one of those
systems that lets you build an application without writing code,
though, in which case it's not really teaching programming at all).
Personally, I'd rather focus on something that's universal[1] (the
console and "Hello, world!"), but I do see the appeal of "And by the
end of the course, you'll have created a playable game!".

Early in my computing days, I met REXX, and a program called REXXTry.
It provided a basic Read/Eval/Print loop, though the Print part wasn't
very sophisticated (though since REXX didn't have much in the way of
complex types, all that meant was that the display of long strings was
a bit ugly). I ended up creating an Extended REXXTry, partly by adding
a sophisticated input routine courtesy of REXXTT, and then by adding a
pile of custom functions - with the goal of making it the ultimate in
algebraic handlers. It was, in fact, quite a reasonable tool for
playing around with maths; I could sketch a geometric problem on
paper, figure out what I knew and what I needed to know, key stuff
into EREXXTry, and get a result back. Python could do exactly the
same, only way way better (already has support for fractions and
complex numbers, which REXX doesn't), and that would make a fine
introduction to programming... for someone with a background in
algebra.

Different styles for different origins.

ChrisA

[1] Or nearly so. Ironically, many of the systems that don't have a
console available are called "consoles". <voice imitate="Jubal
Early">Does that seem right to you?</voice>

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Experiences/guidance on teaching Python as a first programming language Chris Angelico <rosuav@gmail.com> - 2013-12-11 23:35 +1100

csiph-web