Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!feeds.phibee-telecom.net!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.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'subject:not': 0.03; 'read.': 0.03; 'algorithm': 0.04; 'yet.': 0.04; 'inspired': 0.05; 'assign': 0.07; 'rest,': 0.07; 'subject:help': 0.08; 'boring': 0.09; 'meaningful': 0.09; 'seemed': 0.09; 'teh': 0.09; 'thus,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'bug': 0.12; 'language,': 0.12; 'useful,': 0.14; 'posted': 0.15; '6502': 0.16; 'a-level': 0.16; 'assignments': 0.16; 'assignments.': 0.16; 'blocks': 0.16; 'brand- new': 0.16; 'expert,': 0.16; 'hacked': 0.16; 'learnt': 0.16; 'massively': 0.16; 'son,': 0.16; 'url:py': 0.16; 'url:sites': 0.16; 'write,': 0.16; 'sender:addr:gmail.com': 0.17; 'wrote:': 0.18; 'acquired': 0.19; 'programming': 0.22; 'manual': 0.22; 'cc:addr:python.org': 0.22; 'byte': 0.24; "haven't": 0.24; 'looks': 0.24; '(or': 0.24; 'cc:2**0': 0.24; 'sort': 0.25; 'permission': 0.26; 'recognized': 0.26; 'task': 0.26; 'least': 0.26; '(for': 0.26; 'asking': 0.27; 'gets': 0.27; 'header:In- Reply-To:1': 0.27; 'host': 0.29; 'quickly': 0.29; 'thus': 0.29; "doesn't": 0.30; 'originally': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'work.': 0.31; '(which': 0.31; 'asked': 0.31; 'went': 0.31; 'code': 0.31; 'getting': 0.31; 'easier': 0.31; 'that.': 0.31; 'too.': 0.31; '(my': 0.31; 'ahead.': 0.31; 'away.': 0.31; 'checking.': 0.31; 'lessons': 0.31; 'pay,': 0.31; 'subject:what': 0.31; 'though.': 0.31; 'trivial': 0.31; 'wind': 0.31; 'there.': 0.32; 'probably': 0.32; 'know.': 0.32; 'regular': 0.32; 'says': 0.33; 'everyone': 0.33; 'ago': 0.33; 'beginning': 0.33; 'there,': 0.34; 'could': 0.34; 'knowledge': 0.35; 'subject: (': 0.35; 'basic': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; "he's": 0.36; 'doing': 0.36; 'next': 0.36; "didn't": 0.36; 'should': 0.36; 'so,': 0.37; 'too': 0.37; 'list': 0.37; 'mine': 0.38; 'stopped': 0.38; 'needed': 0.38; 'issue': 0.38; 'rather': 0.38; 'little': 0.38; 'anything': 0.39; 'guidance': 0.39; 'though,': 0.39; 'hope': 0.61; 'free': 0.61; 'forum': 0.61; 'solo': 0.61; 'took': 0.61; 'john': 0.61; 'simple': 0.61; 'first': 0.61; 'show': 0.63; 'hear': 0.63; 'july': 0.63; 'teaching': 0.64; 'more': 0.64; 'love': 0.65; 'great': 0.65; 'finally': 0.65; 'jobs': 0.68; 'useful.': 0.68; 'home': 0.69; 'links,': 0.74; '100%': 0.77; 'lack': 0.78; '(still': 0.84; 'homework': 0.84; 'plays': 0.84; 'subject:!)': 0.84; 'subject:think': 0.84; 'understand,': 0.84; 'subject:you': 0.87; 'kid': 0.91; 'lazy': 0.91; 'thoughts,': 0.91; 'students,': 0.95; 'taught': 0.96; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=S5XUd6Xq9Jlv94krTp5iSug8HSpmMnzzCawVUFqEA4M=; b=mh5AHP5NYxxJmlfBkgI5jrbpkjuA8yQ5eXDz7YICAPDn5Q/1JexHDWcXm8KjtmKFiM uFU81urUbV0Gc0HruMWAtguECYaH7lNc7Z1bP5sDxvR4HmFTJc+pL6G7c6FuffF87uLZ rkarpLveUEgP/PeaMdEZ6mYTFTUfCN+k1ebvYzVAKKgt6YHWZzSlPoRHJBRsBRdV1poP kicjtiPmsUuA9OQiBgRRwzXwEf1Z+0U9pH0wCIgO64AOqs3G3Z+L4os+xeieDiAiDcKn WiofNfeCOYVqk73vdbE8kF7mOmy1GTPnRj70metyKsTAxT8SottD6TvNjrVZCaWMETyT 73EA== X-Received: by 10.112.42.44 with SMTP id k12mr2751716lbl.63.1374050046300; Wed, 17 Jul 2013 01:34:06 -0700 (PDT) MIME-Version: 1.0 Sender: joshua.landau.ws@gmail.com In-Reply-To: <44c11575-2481-4220-9d3c-b53879e9cd8f@googlegroups.com> References: <44c11575-2481-4220-9d3c-b53879e9cd8f@googlegroups.com> From: Joshua Landau Date: Wed, 17 Jul 2013 09:33:26 +0100 X-Google-Sender-Auth: YGje7OQnzx8r2JG02KMZvdV04M8 Subject: Re: Homework help requested (not what you think!) To: John Ladasky Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: python-list 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: 80 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1374050054 news.xs4all.nl 15884 [2001:888:2000:d::a6]:38319 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:50781 On 16 July 2013 23:43, John Ladasky wrote: > > Well, a few other parents caught wind of what I was doing with my son, an= d they asked me whether I could tutor their kids, too. I accepted the jobs= (for pay, actually). > > The kids all claim to be interested. They all want to write the next gre= at 3D video game. Thus, I'm a little surprised that the kids don't actuall= y try to sit down and code without me prompting them. I think that they're= disappointed when I show them how much they have to understand just to wri= te a program that plays Tic Tac Toe. > > Where programming is concerned, I'm an autodidact. I started programming= when I was twelve, with little more guidance than the Applesoft Basic manu= al and the occasional issue of Byte Magazine. I hacked away. Over the yea= rs, I have acquired a working knowledge of BASIC, 6502 assembly language, P= ascal, C, and finally Python (my favorite). If I knew how to impart a love= of experimentation to my students, I would do that. > > One kid looks like he's ready to forge ahead. In the mean time, one pare= nt has recognized his son's lack of independence, and has asked me to assig= n programming homework. I hope it doesn't kill the kid's enthusiasm, but I= 'm willing to try it. > > So, what I am seeking are suggestions for programming assignments that I = can give to brand-new students of Python. Please keep in mind that none of= them are even up to the task of a simple algorithm like Bubble Sort -- at = least, not yet. As probably the youngest regular on this list (still not a kid any more though, as much as I would like to be) it's always been my experience that if you see someone young who says "I'm really interested in how to program!" they already either know a little (or a lot) or they're probably somewhat deluded. Programming's so easy to learn solo that if they haven't at least tried, they're just not as interested as they say ;). For homework I actually recommend reading assignments. Something that gets you straight there. When I taught a few people (back not that long ago to A-level [UK], once-a week lunchtime things) the first thing everyone went through were these: https://groups.google.com/forum/#!category-topic/learn-how-to-program---mat= thew-arnold/help-for-lesson-1/cKy43xj56y4 https://groups.google.com/forum/#!category-topic/learn-how-to-program---mat= thew-arnold/help-for-lesson-2/iR6pMtsgFjA Note that I rather quickly stopped using the forum above, as with https://sites.google.com/site/learnhowtoprogram/, which I only really used to host code we needed (I got too lazy to update the rest, basically), so there's nothing else woth checking. I give you 100% free permission to steal anything of mine from those links, though. I'm no teaching expert, but these seemed to help people get the idea. The basic concept is that before you learn to write, you learn to read. If you give them well-documented (like, every line is documentation=C2=B9) code or something like the duo of links I posted above it will probably be a lot more meaningful than asking them to do something trivial they already know. I hear from a lot of people over teh netz that they learnt how to code from reading OSS. I personally didn't do most of my learning that way, but it doesn't mean that it doesn't work. The person from my lessons who learnt the most was the guy who of his own choice took some of the code we were working on and changed it at home without prompting to do something else. At the beginning there was no way he could write code that was marginally useful, and thus doing so would have been massively boring and discouraging -- giving him a platform he could work on made it much easier to do something useful. I hope I inspired a few thoughts, I'm not giving you the One True Way but these ideas should at least be blocks you can build with. =C2=B9 See https://sites.google.com/site/learnhowtoprogram/Snake.py (which might have a purposeful bug in there, it's been a small while since I last ran it). That was for almost-new coders, with the aim of giving them something they originally could read but not really understand, and by gradually editing the code together they ended up getting it.