Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!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.029 X-Spam-Evidence: '*H*': 0.94; '*S*': 0.00; 'programmer': 0.03; 'subject:Python': 0.06; 'code"': 0.09; 'sake': 0.09; 'subject:language': 0.09; 'cc:addr:python-list': 0.11; '"build': 0.16; '4:25': 0.16; 'benjamin': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'hammers,': 0.16; 'sense,': 0.16; 'subject:programming': 0.16; 'toolbox': 0.16; 'wrote:': 0.18; '>>>': 0.22; 'programming': 0.22; 'putting': 0.22; 'saying': 0.22; 'cc:addr:python.org': 0.22; "shouldn't": 0.24; 'cc:2**0': 0.24; 'subject:/': 0.26; 'header:In-Reply-To:1': 0.27; 'rest': 0.29; 'dec': 0.30; 'message-id:@mail.gmail.com': 0.30; 'fighting': 0.31; 'yourself.': 0.31; 'monday,': 0.33; 'programmers': 0.33; 'basic': 0.35; 'december': 0.35; 'something': 0.35; 'beyond': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'picking': 0.36; 'programming,': 0.36; "didn't": 0.36; 'useful': 0.36; 'possible': 0.36; 'should': 0.36; 'system,': 0.38; 'solving': 0.38; 'tools,': 0.38; 'pm,': 0.38; 'anything': 0.39; 'expect': 0.39; 'does': 0.39; 'extremely': 0.39; 'system.': 0.39; 'most': 0.60; 'simple': 0.61; "you'll": 0.62; 'making': 0.63; 'soon': 0.63; 'teaching': 0.64; 'bang': 0.84; 'end.': 0.84; 'oscar': 0.84; 'pain': 0.84; 'that!)': 0.84; 'thing,': 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=puB+C3IAEWn0JmgS9OAWQTQxea+h+0eCkvX+ovPDtbw=; b=VBucRcRlILrwKNTW5JRSCTa2tF/f8tms9Q07sSPstJ1LN2mBd7qPzLvEcS/RRhg6Hg 45qYON88yRrlUCkbln/l9/y12Fn8v5O/i+1HXN5Th1tyuWH60xEp2Av+q9HmGdWQPbt6 1xi2ZqjfGa6R8AwVQbnZq8r7cSTp7C6kqFbBnwNV53cj2fXbPMsTP4qMHghPU7vpOSSh B3+yESg4iTZVmO3iZCJ4PRDCoXQbPOmQwa8Jun3l4rBZxV0GKrj21OkZR7ZGs7HM0x72 pbzuyrfHaNQlb2XAYs1eoXMPFc0r0oAkTUnt7gw3gQkp352bdk4QB8sapk/8mJiR+z6c fPQA== MIME-Version: 1.0 X-Received: by 10.68.236.133 with SMTP id uu5mr788980pbc.153.1386654932673; Mon, 09 Dec 2013 21:55:32 -0800 (PST) In-Reply-To: References: <889721b4-a980-4205-9b1d-a1bedadd7eb3@googlegroups.com> Date: Tue, 10 Dec 2013 16:55:32 +1100 Subject: Re: Experiences/guidance on teaching Python as a first programming language From: Chris Angelico Cc: "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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 32 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1386654941 news.xs4all.nl 2918 [2001:888:2000:d::a6]:60581 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:61447 On Tue, Dec 10, 2013 at 4:25 PM, Gregory Ewing wrote: >> On Monday, December 9, 2013 5:53:41 PM UTC+5:30, Oscar Benjamin wrote: >> >>> 5) Learning to program "should be painful" and we should expect the >>> students to complain about it (someone actually said that!) but the >>> pain makes them better programmers in the end. > > > That's like saying that when teaching woodwork we shouldn't > let people use hammers, we should make them use rocks to > bang nails in, because it will make them better carpenters > in the long run. But in teaching woodwork you SHOULD let people use basic tools, and not just a CNC lathe. Or in the most extreme sense, putting together IKEA furniture is not carpentry, and neither is picking from an extremely limited toolbox programming - which is why "Build a program without writing a line of code" systems are junk for anything complicated. (Occasionally, VERY occasionally, it's possible to use the simple drag-and-drop system to get you 90% of the way, and then fill in the rest yourself. Usually, you'll end up fighting the system as soon as you do something the author didn't intend.) Programming shouldn't be painful just for the sake of making it painful. But you should be programming, not just solving a Sudoku puzzle. It should be possible for a programmer to develop a unique program that does a unique thing, and if that's beyond the scope of the system, the system isn't a programming system. (Might still be a useful system, of course, but it's not programming.) ChrisA