Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #50853
| References | <44c11575-2481-4220-9d3c-b53879e9cd8f@googlegroups.com> |
|---|---|
| From | Beth McNany <beth.mcnany@gmail.com> |
| Date | 2013-07-17 18:03 -0400 |
| Subject | Re: Homework help requested (not what you think!) |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.4837.1374144920.3114.python-list@python.org> (permalink) |
[Multipart message — attachments visible in raw view] - view raw
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.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
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Homework help requested (not what you think!) John Ladasky <john_ladasky@sbcglobal.net> - 2013-07-16 15:43 -0700
Re: Homework help requested (not what you think!) David Hutto <dwightdhutto@gmail.com> - 2013-07-16 19:51 -0400
Re: Homework help requested (not what you think!) Joel Goldstick <joel.goldstick@gmail.com> - 2013-07-16 20:53 -0400
Re: Homework help requested (not what you think!) Chris Angelico <rosuav@gmail.com> - 2013-07-17 10:40 +1000
Re: Homework help requested (not what you think!) albert@spenarnc.xs4all.nl (Albert van der Horst) - 2013-07-18 12:47 +0000
Re: Homework help requested (not what you think!) Gene Heskett <gheskett@wdtv.com> - 2013-07-18 09:38 -0400
Re: Homework help requested (not what you think!) Chris Angelico <rosuav@gmail.com> - 2013-07-17 11:34 +1000
Re: Homework help requested (not what you think!) alex23 <wuwei23@gmail.com> - 2013-07-17 16:35 +1000
Re: Homework help requested (not what you think!) PythonAB <python@rgbaz.eu> - 2013-07-17 10:31 +0200
Re: Homework help requested (not what you think!) Steven D'Aprano <steve@pearwood.info> - 2013-07-17 06:51 +0000
Re: Homework help requested (not what you think!) Joshua Landau <joshua@landau.ws> - 2013-07-17 09:33 +0100
Re: Homework help requested (not what you think!) Neil Cerutti <neilc@norwich.edu> - 2013-07-17 13:20 +0000
Re: Homework help requested (not what you think!) Chris Angelico <rosuav@gmail.com> - 2013-07-17 23:29 +1000
Re: Homework help requested (not what you think!) Neil Cerutti <neilc@norwich.edu> - 2013-07-17 13:55 +0000
Re: Homework help requested (not what you think!) Chris Angelico <rosuav@gmail.com> - 2013-07-18 00:05 +1000
Re: Homework help requested (not what you think!) alex23 <wuwei23@gmail.com> - 2013-07-18 12:09 +1000
Re: Homework help requested (not what you think!) Aseem Bansal <asmbansal2@gmail.com> - 2013-07-17 21:57 -0700
Re: Homework help requested (not what you think!) Beth McNany <beth.mcnany@gmail.com> - 2013-07-17 18:03 -0400
RE: Homework help requested (not what you think!) Joseph Clark <joeclark77@hotmail.com> - 2013-07-18 08:46 -0700
Homework help requested, thanks to everyone. John Ladasky <john_ladasky@sbcglobal.net> - 2013-07-21 13:49 -0700
Re: Homework help requested, thanks to everyone. Chris Angelico <rosuav@gmail.com> - 2013-07-22 10:25 +1000
Re: Homework help requested, thanks to everyone. Roy Smith <roy@panix.com> - 2013-07-21 20:57 -0400
RE: Homework help requested, thanks to everyone. Joseph Clark <joeclark77@hotmail.com> - 2013-07-21 20:10 -0700
PyGLet on Python 3 John Ladasky <john_ladasky@sbcglobal.net> - 2013-07-22 23:24 -0700
Re: PyGLet on Python 3 Devyn Collier Johnson <devyncjohnson@gmail.com> - 2013-07-25 09:35 -0400
Re: PyGLet on Python 3 John Ladasky <john_ladasky@sbcglobal.net> - 2013-07-25 15:27 -0700
Re: Homework help requested, thanks to everyone. Skip Montanaro <skip@pobox.com> - 2013-07-22 12:01 -0500
Re: Homework help requested, thanks to everyone. Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-07-22 19:39 -0400
csiph-web