Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.061 X-Spam-Evidence: '*H*': 0.88; '*S*': 0.00; 'tutorial': 0.03; '"this': 0.03; 'causing': 0.04; 'subject:Python': 0.06; 'plenty': 0.07; 'subject:language': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'hits': 0.16; 'interest,': 0.16; 'sorts': 0.16; 'subject:programming': 0.16; 'do,': 0.16; 'language': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'command': 0.22; 'programming': 0.22; 'cc:addr:python.org': 0.22; 'print': 0.22; 'affects': 0.24; 'either.': 0.24; 'visible': 0.24; 'cc:2**0': 0.24; 'subject:/': 0.26; 'gets': 0.27; 'header:In-Reply-To:1': 0.27; '[1]': 0.29; 'skills.': 0.29; "doesn't": 0.30; 'dec': 0.30; 'especially': 0.30; 'message-id:@mail.gmail.com': 0.30; 'stuff': 0.32; 'reader': 0.33; 'knowledge': 0.35; 'something': 0.35; 'done.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'url:org': 0.36; 'level': 0.37; 'starting': 0.37; 'minimum': 0.38; 'skip:o 20': 0.38; 'sometimes': 0.38; 'pm,': 0.38; 'rather': 0.38; 'that,': 0.38; 'explain': 0.39; 'bad': 0.39; 'how': 0.40; 'even': 0.60; 'middle': 0.60; 'problems.': 0.60; 'worry': 0.60; 'tell': 0.60; 'story': 0.63; 'teaching': 0.64; 'details': 0.65; 'world': 0.66; 'registers': 0.68; 'skill': 0.68; 'sound': 0.68; "today's": 0.70; 'engage': 0.74; 'filling': 0.78; '2:02': 0.84; 'asterisk': 0.84; 'bare': 0.84; 'ethan': 0.84; 'furman': 0.84; 'start.': 0.84; 'url:php': 0.85; 'same,': 0.91; 'story,': 0.91; 'to:none': 0.92; '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=79V8Y64YlCRm5Fz8BTtwxaCFXPosdtX9Bjrenuf3Pkw=; b=bOLIoGGalY2Gpg30GwvHqhewqBV98w96p9jw2HaAYDp/CzrfUmelKeItK4kLAHgr4A NVHFw3vz5cBoqkPUMXNELCcO5EiLk7lqUfs4eNGfoixYrPFHhyyeAnuYXs7xqRGDGJPF lGse1jgZL/8R8nLhTTmnzs8yeilNiqvKrrOxYtHoekvt21ZkeWjPw+BU1giMYfJT89B4 LL055nx/aM2uA11lJN80CSQeHhNLC2cGxxb0ffRyond0fiXcetsDkShabCItN2lFzdu9 t95Zu8bMYgZWw6I78o0eJq00e1zX7iuIEaUvcWgElhRlJu6ODE9sSwznioKpsAnGUP54 j2/w== MIME-Version: 1.0 X-Received: by 10.68.111.33 with SMTP id if1mr250583pbb.31.1386751432431; Wed, 11 Dec 2013 00:43:52 -0800 (PST) In-Reply-To: References: <201312090824.25211.gheskett@wdtv.com> <52A78F6F.3060507@stoneleaf.us> Date: Wed, 11 Dec 2013 19:43:52 +1100 Subject: Re: Experiences/guidance on teaching Python as a first programming language From: Chris Angelico Cc: "comp.lang.python" 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 34 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1386751441 news.xs4all.nl 2838 [2001:888:2000:d::a6]:60414 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:61534 On Wed, Dec 11, 2013 at 7:34 PM, Devin Jeanpierre wrote: > On Tue, Dec 10, 2013 at 2:02 PM, Ethan Furman wrote: >> Doesn't sound like they do, as that's causing plenty of problems. In >> today's world that level of knowledge isn't always necessary, especially if >> your degree is not in CS. One of the (many) nice things about Python is one >> doesn't need to know that stuff to Get Things Done. > > You don't need to know how to use the brakes to drive to Wal-Mart, > either. "Get Things Done" is not the one and only goal. It ignores > productivity, correctness, ethics... It isn't a bad thing to learn > things that are unnecessary to get the bare minimum accomplished. When you tell a story, it's important to engage the reader from the start. Sometimes that means starting the story in the middle of the action, and filling in the important-but-less-exciting details later, when they mean something. [1] Teaching a skill often hits the same sorts of issues. Rather than explain "This is how to manipulate registers in a CPU", explain "This is how to print Hello World to the console" and worry about what exactly the console is (and how redirection affects it) later. My tutorial on assembly language programming did the same, though it used a one-character-output operation so it printed a single asterisk to standard out. (Manually setting CPU register AX to 0200 and DX to 002A, placing an INT 21 command in memory, and single-stepping it.) Learning how all that functions - or even what the INT opcode means - came later. Start with something visible and engaging. After that, learn/teach as much background as is of interest, and improve skills. But start with something that gets something done. [1] http://tvtropes.org/pmwiki/pmwiki.php/Main/InMediasRes ChrisA