Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.freenet.ag!news2.euro.net!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.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'subject:not': 0.03; '16,': 0.03; '(at': 0.04; 'algorithm': 0.04; 'yet.': 0.04; 'classes,': 0.05; '(especially': 0.07; 'algorithms,': 0.07; 'assign': 0.07; 'front-end': 0.07; 'subject:help': 0.08; 'thus,': 0.09; 'try:': 0.09; 'runs': 0.10; 'cc:addr:python-list': 0.11; 'python': 0.11; 'django': 0.11; 'language,': 0.12; 'thread': 0.14; '(starting': 0.16; '6502': 0.16; 'already,': 0.16; 'assignments': 0.16; 'bars': 0.16; 'brand- new': 0.16; 'cards.': 0.16; 'credit:': 0.16; 'flow,': 0.16; 'folks,': 0.16; 'hacked': 0.16; 'handling,': 0.16; "he'll": 0.16; 'previously,': 0.16; 'pygame,': 0.16; 'shooting': 0.16; 'simulate': 0.16; 'solver': 0.16; 'son,': 0.16; 'sorting': 0.16; 'student,': 0.16; 'there...': 0.16; 'things...': 0.16; 'younger': 0.16; 'discussions': 0.16; 'exception': 0.16; 'wrote:': 0.18; 'bit': 0.19; 'trying': 0.19; 'acquired': 0.19; "hasn't": 0.19; 'implementing': 0.19; 'projects,': 0.19; 'fit': 0.20; 'programming': 0.22; 'comfortable': 0.22; 'manual': 0.22; 'cc:addr:python.org': 0.22; 'algorithms.': 0.24; 'byte': 0.24; '\xa0if': 0.24; 'java': 0.24; 'math': 0.24; 'looks': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; 'sort': 0.25; "i've": 0.25; 'source': 0.25; 'player': 0.26; 'recognized': 0.26; 'task': 0.26; '(for': 0.26; 'asking': 0.27; 'header:In-Reply- To:1': 0.27; 'idea': 0.28; 'points': 0.29; 'related': 0.29; "doesn't": 0.30; 'bigger': 0.30; 'database,': 0.30; 'message- id:@mail.gmail.com': 0.30; "i'm": 0.30; 'url:mailman': 0.30; 'asked': 0.31; 'code': 0.31; 'that.': 0.31; 'too.': 0.31; '(my': 0.31; 'ahead.': 0.31; 'away.': 0.31; 'hacker': 0.31; 'helpful.': 0.31; 'pay,': 0.31; 'subject:what': 0.31; 'wind': 0.31; 'class': 0.32; 'there.': 0.32; 'probably': 0.32; 'covered': 0.32; 'stuff': 0.32; 'thanks!': 0.32; 'text': 0.33; 'url:python': 0.33; '(most': 0.33; 'projects.': 0.33; "i'd": 0.34; 'could': 0.34; 'subject: (': 0.35; 'here': 0.66; 'experience.': 0.67; 'side': 0.67; 'jobs': 0.68; 'design.': 0.68; 'introduction': 0.68; 'useful.': 0.68; 'jul': 0.74; 'obvious': 0.74; 'hoping': 0.75; 'grow': 0.77; 'lack': 0.78; 'introduce': 0.78; 'yourself': 0.78; 'forth': 0.81; 'discovered': 0.83; 'around,': 0.84; 'blob': 0.84; 'borrow': 0.84; 'cards,': 0.84; 'complexity': 0.84; 'console,': 0.84; 'homework': 0.84; 'plays': 0.84; 'recursion,': 0.84; 'snake': 0.84; 'subject:!)': 0.84; 'subject:think': 0.84; 'url:lang': 0.84; 'subject:you': 0.87; 'adventure': 0.91; 'difficult,': 0.91; 'graphical': 0.91; 'kid': 0.91; 'realistic': 0.93; 'this!': 0.93; 'wanting': 0.93; 'dream': 0.95; '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:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=wUP6rFcDHJzgo3DKeTUbnMD9fUQAGJPPHoM/noj9Ru0=; b=TbzP6i9VzEu+9H13qoWokZPZ7dcAXpCIrt3Kf/zZFqs5F/udgHTWYjuUbTLlN45LhX Vg/EETYdqKIbOOD7LmYf2BHgamUijWvomGikRE2fFiZBH0tBzBG/zb30Dm8ykM5ltJM9 j9NI99a9z6dlm+dPf4WFD5AhDhm0RWotVWwlmDV5DDncFvvWpK6ivZaW0ErX7euchJUT zQAI30KvjPx761QvI70lzJrBAwmcrIfqlbV3QI70CuyoEOHlx17OVfC1eUl6HKXmu+OH zv+bHYbsoObZvAlbRy/HiAAVLlCZIlYi4MKv5h6ycdXhG1aTbukPF/3yU3DPyykNkogV wT0A== X-Received: by 10.50.20.136 with SMTP id n8mr2095515ige.3.1374098606652; Wed, 17 Jul 2013 15:03:26 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <44c11575-2481-4220-9d3c-b53879e9cd8f@googlegroups.com> References: <44c11575-2481-4220-9d3c-b53879e9cd8f@googlegroups.com> From: Beth McNany Date: Wed, 17 Jul 2013 18:03:06 -0400 Subject: Re: Homework help requested (not what you think!) To: John Ladasky Content-Type: multipart/alternative; boundary=047d7bd76ee25605fc04e1bc434d X-Mailman-Approved-At: Thu, 18 Jul 2013 12:55:19 +0200 Cc: python-list@python.org 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: 314 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1374144920 news.xs4all.nl 15984 [2001:888:2000:d::a6]:49449 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:50853 --047d7bd76ee25605fc04e1bc434d Content-Type: text/plain; charset=ISO-8859-1 On Tue, Jul 16, 2013 at 6:43 PM, John Ladasky wrote: > Hi folks, > > No, I'm not asking for YOU to help ME with a Python homework assignment! > > Previously, I mentioned that I was starting to teach my son Python. > > https://groups.google.com/d/msg/comp.lang.python/I7spp6iC3tw/8lxUXfrL-9gJ > > He just took a course at his high school called Web Technology and Design. > They had the students use tools like Dream Weaver, but they also > hand-coded some HTML and JavaScript. He has a little experience. I am > building on it. > > Well, a few other parents caught wind of what I was doing with my son, and > 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 > great 3D video game. Thus, I'm a little surprised that the kids don't > actually 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 write 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 > manual and the occasional issue of Byte Magazine. I hacked away. Over the > years, I have acquired a working knowledge of BASIC, 6502 assembly > language, Pascal, 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 > parent has recognized his son's lack of independence, and has asked me to > assign 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. > > Many thanks! > -- > http://mail.python.org/mailman/listinfo/python-list > Thanks for this! I'm trying to put together something very similar right now for my younger brother, and this thread and associated links have been very helpful. He's taught himself enough Python to make a rudimentary text adventure game already, so the interest is definitely there. I'm hoping to sneak in some general CS concepts as well, although I'm concerned some things might be less obvious in Python. Also, I learned to program in PHP and Java before I learned Python (starting with a Django project), so I'm not sure how to start there... probably going to borrow some ideas from the intro level Java class I've been TA'ing. In my experience, people learn best via projects, so I've been trying to come up with some that are interesting, not too difficult, and focus on one or two main concepts. To be honest, I have no idea how realistic they are, because it's been a while since I first learned how to program and that wasn't even in Python. Offering it up here for your perusal / feedback (roughly in the order I'd do them): - text adventure: practice with stdlib, control flow, I/O. Lots of opportunities for embellishment here - create maps of rooms, load/save games by serializing into files or even a database, create status bars in the console, etc. - blackjack: a game with simple rules, you have to think about representation for the cards, and you can easily simulate a computer opponent. extra credit: graphical front-end that displays images for the cards. - sudoku checker/generator/solver: practice with lists, loops, logic, implementing algorithms. extra credit: design a solver yourself without looking up algorithms. - mandelbrot set app: math and graphics! can use this as an opportunity to introduce numpy/matplotlib, or DIY. (could be a bit esoteric depending on the student, though.) - game of life: simple graphics and update rules, fun to watch, source of the unofficial hacker emblem. - (extra credit?) simple chat program: this doesn't really fit the theme, but it's an introduction to networking / sockets, which could be useful. (and the intro class had lots of fun sending messages back and forth in class.) At this point, I'm hoping he'll be comfortable enough to begin working on a more complete game (most likely, using pygame, as he hasn't expressed much interest in 3D). Some ideas for classic/simple/well-defined games to try: - blob game (what is this one actually called? where the player absorbs smaller entities to grow but dies if he runs into a bigger entity) - tank battle (again, not sure on the name. two players, moving around, shooting at each other on a map with obstructions) - maze (bonus points for a maze generation algorithm) - snake - frogger - asteroids - etc. This doesn't include a lot of standard but less flashy stuff e.g. advanced data structures, graphs, sorting algorithms, because the idea was to find projects that would be tractable for someone just starting out and wanting to make fun things... but once they're hooked, you can explain how they're useful and start into those (at least, that's my theory). But you could still talk about things like classes, OO design, exception handling, recursion, complexity (especially with the sudoku project), as related to these projects. (As a side note, I'm a bit amused by the discussions about teaching "kids" specifically. When I was 17 I was a freshman enrolled in a Data Structures course, where I discovered that a course I took two years prior had already covered about 90% of the material...) -beth --047d7bd76ee25605fc04e1bc434d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Tue, Jul 16, 2013 at 6:43 PM, John Ladasky <john_ladasky@sbcglobal.net> wrote:
Hi folks,

No, I'm not asking for YOU to help ME with a Python homework assignment= !

Previously, I mentioned that I was starting to teach my son Python.

https://groups.google.com/d/msg/comp.lang.pyth= on/I7spp6iC3tw/8lxUXfrL-9gJ

He just took a course at his high school called Web Technology and Design. = =A0They had the students use tools like Dream Weaver, but they also hand-co= ded some HTML and JavaScript. =A0He has a little experience. =A0I am buildi= ng on it.

Well, a few other parents caught wind of what I was doing with my son, and = they asked me whether I could tutor their kids, too. =A0I accepted the jobs= (for pay, actually).

The kids all claim to be interested. =A0They all want to write the next gre= at 3D video game. =A0Thus, I'm a little surprised that the kids don'= ;t actually try to sit down and code without me prompting them. =A0I think = that they're disappointed when I show them how much they have to unders= tand just to write a program that plays Tic Tac Toe.

Where programming is concerned, I'm an autodidact. =A0I started program= ming when I was twelve, with little more guidance than the Applesoft Basic = manual and the occasional issue of Byte Magazine. =A0I hacked away. =A0Over= the years, I have acquired a working knowledge of BASIC, 6502 assembly lan= guage, Pascal, C, and finally Python (my favorite). =A0If I knew how to imp= art a love of experimentation to my students, I would do that.

One kid looks like he's ready to forge ahead. =A0In the mean time, one = parent has recognized his son's lack of independence, and has asked me = to assign programming homework. =A0I 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 ca= n give to brand-new students of Python. =A0Please keep in mind that none of= them are even up to the task of a simple algorithm like Bubble Sort -- at = least, not yet.

Many thanks!
--
http://mail.python.org/mailman/listinfo/python-list

Thanks for this!=A0 I'm trying to = put together something very similar right now for my younger brother, and t= his thread and associated links have been very helpful.=A0 He's taught = himself enough Python to make a rudimentary text adventure game already, so= the interest is definitely there.=A0 I'm hoping to sneak in some gener= al CS concepts as well, although I'm concerned some things might be les= s obvious in Python.=A0 Also, I learned to program in PHP and Java before = I learned Python (starting with a Django project), so I'm not sure how = to start there... probably going to borrow some ideas from the intro level = Java class I've been TA'ing.

In my experience, people learn best via projects, so I've been tryi= ng to come up with some that are interesting, not too difficult, and focus = on one or two main concepts.=A0 To be honest, I have no idea how realistic = they are, because=20 it's been a while since I first learned how to program and that wasn= 9;t=20 even in Python.=A0 Offering it up here for your perusal / feedback (roughly= in the order I'd do them):

- text adventure: practice with stdl= ib, control flow, I/O. Lots of opportunities for embellishment here - creat= e maps of rooms, load/save games by serializing into files or even a databa= se, create status bars in the console, etc.

- blackjack:=A0 a game with simple rules, you have to think about=20 representation for the cards, and you can easily simulate a computer=20 opponent.=A0 extra credit: graphical front-end that displays images for=20 the cards.

- sudoku checker/generator/solver: practice with lists, loops, logic, i= mplementing algorithms.=A0 extra credit: design a solver yourself without l= ooking up algorithms.

- mandelbrot set app: math and graphics! can use this as an opportunity= to introduce numpy/matplotlib, or DIY.=A0 (could be a bit esoteric dependi= ng on the student, though.)

- game of life: simple graphics and upda= te rules, fun to watch, source of the unofficial hacker emblem.

- (extra credit?) simple chat program: this doesn't really fit the = theme, but it's an introduction to networking / sockets, which could be= useful. (and the intro class had lots of fun sending messages back and for= th in class.)

At this point, I'm hoping he'll be comfortable enough to begin = working on a more complete game (most likely, using pygame, as he hasn'= t expressed much interest in 3D).=A0 Some ideas for classic/simple/well-def= ined games to try:
- blob game (what is this one actually called? where the player absorbs sma= ller entities to grow but dies if he runs into a bigger entity)
- tank battle (again, not sure on the name. two players, moving around, sho= oting at each other on a map with obstructions)
- maze (bonus points for= a maze generation algorithm)
- snake
- frogger
- asteroids
- etc.

This doesn't include a lot of standard but less flashy st= uff e.g. advanced data structures, graphs, sorting algorithms, because the = idea was to find projects that would be tractable for someone just starting= out and wanting to make fun things... but once they're hooked, you can= explain how they're useful and start into those (at least, that's = my theory).=A0 But you could still=20 talk about things like classes, OO design, exception handling, recursion, c= omplexity (especially with the sudoku project), as related to these projects.
(As a side note, I'm a bit amused by the discussions about teaching &= quot;kids" specifically.=A0 When I was 17 I was a freshman enrolled in= a Data Structures course, where I discovered that a course I took two year= s prior had already covered about 90% of the material...)

-beth
--047d7bd76ee25605fc04e1bc434d--