One thing that I've always thought it's missing is a list of projects in domains other than programming for motivating people that don't have an interest in programming per se.
That means no Lisp interpreters, no command-line palindrome detectors, no reverse polish calculators, no Collatz sequence generators, etc., but things like card game emulators, embroidery pattern creators, guitar tablature generators, etc. Thing that could pick the interest of people that have very specific interests, and that don't see how programming could be of any use to them.
When I was learning to code, I wrote a program for computing the standings table for soccer league tournaments. It was very rudimentary, but it kept me motivated since it did something useful for me, and I could tweak it ad infinitum.
Year later I taught programming to first-year university students, and a big problem was keeping them motivated. Every one of them had different interests, and computing large Mersenne primes was certainly not one of them.
Author here. Great idea! The problem is that I would be hard pressed to come up with projects that are universally appealing. Crowd sourcing for ideas seems like a good option here. If you have a list of ideas please reach out. My contact can be found on the page :)
> But as long as you can read Python there's no reason you couldn't do these in your preferred language with the Python references.
That's a good point, but surely, just as an expert user would want to use the appropriate tool for his problem, also a learning user would want to use the appropriate problem for his tool? By which I mean, an exercise that is a good way to learn Python is likely to be a terrible way to learn, say, R.
Author here. JadeNB you've hit the nail on the head! I have found that each language is better suited towards certain problems. This was a key motivation for making a set of problems specific yo Python. Sounds like you have some great ideas. Hit me up (contact is on the page), we should chat!
Thanks for the invitation! I don't have any concrete ideas, just hopes, but, sure, maybe we could chat. Unfortunately, I failed the Turing test: I can't find your contact information on the Python Practice Projects page.
Yes, looks cool. I'd suggest adding web and desktop versions of a little CRUD app - maybe a contact manager.
Test suites would definitely be a good addition.
There are interesting MOOC elements to this. it'd be very cool to collect all the implementations and analyze the different ways people solve the problem. Stanford had dinner some interesting work like this:
Finally, it'd be great to open-source this. Set up a repo with assignments and test suites, then students fork the repo and code up the exercises. This would allow you to easily see how people are solving the problems, and make it easy for people to propose new projects and tests.
Author here. Adding a community aspect is definitely an end goal. Right now I'm trying to create a reasonable project list and perhaps a few sample solutions. I'm toying with the idea of test suites but that really adds constraints on the final solution.
Thanks for your idea. I am aiming for very specific boundef problems with quality references. A Google app engine app is much too broad. Do you have more specific suggestions?
Find an API-for example, a public transit related API-and build a GAE app with a python back end that fetches real time arrival times and displays them.
good idea. Can you add a forum to the site for people to discuss particulars of the project they're working on? It would be nice to see other people working on the same thing and how they go about it. This feature works great on Coursera.
Project Euler is great--it's how I first dove into Python too--but it will lead you down a very different path than these practice projects. I like to think of it as a constructivist curriculum in algorithms and data structures, whereas these practice projects seem to take much more of a "just write code that works" philosophy.
One thing that I've always thought it's missing is a list of projects in domains other than programming for motivating people that don't have an interest in programming per se.
That means no Lisp interpreters, no command-line palindrome detectors, no reverse polish calculators, no Collatz sequence generators, etc., but things like card game emulators, embroidery pattern creators, guitar tablature generators, etc. Thing that could pick the interest of people that have very specific interests, and that don't see how programming could be of any use to them.
When I was learning to code, I wrote a program for computing the standings table for soccer league tournaments. It was very rudimentary, but it kept me motivated since it did something useful for me, and I could tweak it ad infinitum.
Year later I taught programming to first-year university students, and a big problem was keeping them motivated. Every one of them had different interests, and computing large Mersenne primes was certainly not one of them.