By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,222 Members | 2,416 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,222 IT Pros & Developers. It's quick & easy.

Programming exercises/challenges

P: n/a
Hi guys,

I'm learning Python by teaching myself, and after going through several
tutorials I feel like I've learned the basics. Since I'm not taking a
class or anything, I've been doing challenges/programs to reinforce the
material and improve my skills. I started out with stuff like "Guess my
number" games, hangman, etc. and moved on to making poker and card
games to work with classes. For GUIs I created games like minesweeper,
and a GUI stock portfolio tracker. I am out of ideas and am looking for
programming projects, challenges, or programs that have helped you'll
learn. I'm working on the project Euler problems, but I find that they
don't really help my programming skills; they are more math focused.
Suggestions? What has been useful or interesting to you? I'd also
welcome sources of textbook type problems, because the ones provided in
tutorials tend to be repetitive.

Thanks,
Ben
Nov 19 '08 #1
Share this Question
Share on Google+
13 Replies


P: n/a
On Nov 18, 6:39�pm, btk...@email.unc.edu wrote:
Hi guys,

I'm learning Python by teaching myself, and after going through several
tutorials I feel like I've learned the basics. Since I'm not taking a
class or anything, I've been doing challenges/programs to reinforce the
material and improve my skills. I started out with stuff like "Guess my
number" games, hangman, etc. and moved on to making poker and card
games to work with classes. For GUIs I created games like minesweeper,
and a GUI stock portfolio tracker. I am out of ideas and am looking for
programming projects, challenges, or programs that have helped you'll
learn. I'm working on the project Euler problems, but I find that they
don't really help my programming skills; they are more math focused.
Suggestions? What has been useful or interesting to you?
Math problems. :-)
I'd also
welcome sources of textbook type problems, because the ones provided in
tutorials tend to be repetitive.
I read rec.puzzles regularly and always approach each puzzle
in a "how would I solve this with a program" way. Not all
lend themselves to computer solutions, some of the regulars
there frown on computer answers and some are simply math
problems in disguise. I follow sci.math for the same reason.

And alt.math. And alt.math.recreational.

Another hobby I have is tracking movie box-office receipts
(where you can make interesting graphs comparing Titanic
to Harry Potter or how well the various sequels do, if Pierce
Brosnan saved the James Bond franchise, what can you say about
Daniel Craig?). Lots of potential database problems there.
Not to mention automating the data collection from the Internet
Movie Database by writing a web page scraper than can grab
six months worth of data in a single session (you probably
wouldn't need this if you cough up a subscription fee for
professional access, but I'm not THAT serious about it).

There is nothing like such a hobby to provide motivation to
learn programming.

Here's something interesting: take a films opening weekend
box-office receipts and multiply it by Pi. You'll get the
film's total gross.
>
Thanks,
Ben
Nov 19 '08 #2

P: n/a
On Wed, Nov 19, 2008 at 2:39 AM, Mensanator <me********@aol.comwrote:
Another hobby I have is tracking movie box-office receipts
(where you can make interesting graphs comparing Titanic
to Harry Potter or how well the various sequels do, if Pierce
Brosnan saved the James Bond franchise, what can you say about
Daniel Craig?). Lots of potential database problems there.
Not to mention automating the data collection from the Internet
Movie Database by writing a web page scraper than can grab
six months worth of data in a single session (you probably
wouldn't need this if you cough up a subscription fee for
professional access, but I'm not THAT serious about it).
This is really interesting. What would one need to do such a thing?
The only program web related I did in Python was generating a rss feed
from a local newspaper static site, using BeautifulSoup. But I never
put it on an online host. I'm not even sure if I could run. What
requisites should have the host to run python code?

Thanks and sorry for the meddling.
Nov 19 '08 #3

P: n/a
On Wed, Nov 19, 2008 at 1:35 PM, Jeremiah Dodds
<je************@gmail.comwrote:
>
Personally, I prefer a host that gives me root on a box (or virtual
machine). I've had a great time with slicehost (http://slicehost.com).
Yes, I knew about slicehost, but it is expensive for what I need to
do, that is just experimentin a bit.
There are a few hosts that specialize in, or explicitly offer python
hosting, http://wiki.python.org/moin/PythonHosting has an overview of them.
Thanks for the link, seems useful.
Nov 19 '08 #4

P: n/a
On Nov 18, 6:39*pm, btk...@email.unc.edu wrote:
Hi guys,

I'm learning Python by teaching myself, and after going through several
tutorials I feel like I've learned the basics. Since I'm not taking a
class or anything, I've been doing challenges/programs to reinforce the
material and improve my skills. I started out with stuff like "Guess my
number" games, hangman, etc. and moved on to making poker and card
games to work with classes. For GUIs I created games like minesweeper,
and a GUI stock portfolio tracker. I am out of ideas and am looking for
programming projects, challenges, or programs that have helped you'll
learn. I'm working on the project Euler problems, but I find that they
don't really help my programming skills; they are more math focused.
Suggestions? What has been useful or interesting to you? I'd also
welcome sources of textbook type problems, because the ones provided in
tutorials tend to be repetitive.

Thanks,
Ben
You night look at "Useless Python" (you'll have to Google for the
site). It has tons of problems from trivial to complex.
--greg
Nov 19 '08 #5

P: n/a
On Wed, Nov 19, 2008 at 1:50 PM, Jeremiah Dodds
<je************@gmail.comwrote:
If you need to do it on the extremely cheap, you can host on your own
machine on a port other than 80, make sure your router / firewall is
forwarding the port to your machine, and use dyndns (http://dyndns.com) to
give yourself a domain name. CherryPy (http://cherrypy.org) makes the python
side of hosting a simple service or app quite painless. I use this method to
host a little app for downloading Ubuntu packages and their dependencies as
a tarfile on my personal machine.
Thanks, I'll try.

To turn back in topic, there is the python challenge:
http://www.pythonchallenge.com/
I started it when I was learning Python, but since the beginning it is
not as simple as they say on the site. It maybe stimulating.
Nov 19 '08 #6

P: n/a

On Nov 19, 2008, at 7:12 AM, Mr.SpOOn wrote:
On Wed, Nov 19, 2008 at 2:39 AM, Mensanator <me********@aol.com>
wrote:
>Another hobby I have is tracking movie box-office receipts
(where you can make interesting graphs comparing Titanic
to Harry Potter or how well the various sequels do, if Pierce
Brosnan saved the James Bond franchise, what can you say about
Daniel Craig?). Lots of potential database problems there.
Not to mention automating the data collection from the Internet
Movie Database by writing a web page scraper than can grab
six months worth of data in a single session (you probably
wouldn't need this if you cough up a subscription fee for
professional access, but I'm not THAT serious about it).

This is really interesting. What would one need to do such a thing?
The only program web related I did in Python was generating a rss feed
from a local newspaper static site, using BeautifulSoup. But I never
put it on an online host. I'm not even sure if I could run. What
requisites should have the host to run python code?
I'm not sure why you'd need to host the Python code anywhere other
than your home computer. If you wanted to pull thousands of pages from
a site like that, you'd need to respect their robots.txt file. Don't
forget to look for a crawl-delay specification. Even if they don't
specify one, you shouldn't let your bot hammer their servers at full
speed -- give it a delay, let it run in the background, it might take
you three days versus an hour to collect the data you need but that's
not too big of deal in the service of good manners, is it?

You might also want to change the user-agent string that you send out.
Some sites serve up different content to bots than to browsers.

You could even use wget to scrape the site instead of rolling your own
bot if you're more interested in the data manipulation aspect of the
project than the bot writing.

Enjoy
Philip

Nov 19 '08 #7

P: n/a
On Wed, Nov 19, 2008 at 3:41 PM, Philip Semanchuk <ph****@semanchuk.comwrote:
I'm not sure why you'd need to host the Python code anywhere other than your
home computer. If you wanted to pull thousands of pages from a site like
that, you'd need to respect their robots.txt file. Don't forget to look for
a crawl-delay specification. Even if they don't specify one, you shouldn't
let your bot hammer their servers at full speed -- give it a delay, let it
run in the background, it might take you three days versus an hour to
collect the data you need but that's not too big of deal in the service of
good manners, is it?
Mmm, I didn't really mean the possibility to just host the code, but
to run. I mean, like server side code, so that my programs keep
running and updating, in my case, the RSS feed, without the need for
me to be online and run it.
Nov 19 '08 #8

P: n/a
Edwin <ex****@gmail.comwrites:

[...]
a diary manager compatible with my Emacs diary file (sometimes I don't
want to open Emacs for a quick note)
You mean that you sometimes don't have emacs open?

--
Arnaud
Nov 20 '08 #9

P: n/a
On Nov 20, 12:39*am, Arnaud Delobelle <arno...@googlemail.comwrote:
Edwin <exp...@gmail.comwrites:

[...]
a diary manager compatible with my Emacs diary file (sometimes I don't
want to open Emacs for a quick note)

You mean that you sometimes don't have emacs open?

--
Arnaud
heh... I believe in the potpourri style mate (and I don't mean petals
and spices).
After all I'm no expert.
Nov 20 '08 #10

P: n/a
>a diary manager compatible with my Emacs diary file (sometimes I
don't want to open Emacs for a quick note)
ArnaudYou mean that you sometimes don't have emacs open?

I am constantly amazed at work that people open a separate emacs for each
file they want to edit. Most of them seem not to even know that find-file
exists.

Skip

Nov 20 '08 #11

P: n/a
On Nov 20, 6:28*am, s...@pobox.com wrote:
* * >a diary manager compatible with my Emacs diary file (sometimesI
* * >don't want to open Emacs for a quick note)

* * ArnaudYou mean that you sometimes don't have emacs open?

I am constantly amazed at work that people open a separate emacs for each
file they want to edit. *Most of them seem not to even know that find-file
exists.

Skip
Come on mate... it's already a bit hard to post in a non-native
language. As a beginner in Python it's just "my two pennies worth",
really.

Cheers,
E.
Nov 21 '08 #12

P: n/a
>I am constantly amazed at work that people open a separate emacsfor
each file they want to edit. *Most of them seem not to even know that
find-file exists.
EdwinCome on mate... it's already a bit hard to post in a non-native
Edwinlanguage. As a beginner in Python it's just "my two pennies
Edwinworth", really.

No knock on you at all, just an observation about the work patterns many of
my colleagues have. The people I work with are professional software
engineers, engineers, quantitative analysts, etc. Many not at all new to
Python, C++, Unix or Emacs. And it's not like I haven't shown them howto
do it. I showed one guy how to exchange two adjacent words today with M-t.
He about fell off his chair.

Come to think of it, the one other person I work with who always keeps an
Emacs open is a vi user who likes it for sql mode. Nothing else. He runs
viper mode and keeps an sql mode buffer open continuously with all his
little sql snippets ready to submit to our Sybase server. When he usesvim
to edit? One vim session per file. I'm pretty sure that vim allows you to
open multiple files at once as well. Go figure.

Skip
Nov 21 '08 #13

P: n/a
On Nov 20, 10:32*pm, s...@pobox.com wrote:
* * >I am constantly amazed at work that people open a separate emacs for
* * >each file they want to edit. *Most of them seem not to even know that
* * >find-file exists.

* * EdwinCome on mate... it's already a bit hard to post in a non-native
* * Edwinlanguage. As a beginner in Python it's just "my two pennies
* * Edwinworth", really.

No knock on you at all, just an observation about the work patterns many of
my colleagues have. *The people I work with are professional software
engineers, engineers, quantitative analysts, etc. *Many not at all new to
Python, C++, Unix or Emacs. *And it's not like I haven't shown them howto
do it. *I showed one guy how to exchange two adjacent words today with M-t.
He about fell off his chair.

Come to think of it, the one other person I work with who always keeps an
Emacs open is a vi user who likes it for sql mode. *Nothing else. *Heruns
viper mode and keeps an sql mode buffer open continuously with all his
little sql snippets ready to submit to our Sybase server. *When he usesvim
to edit? *One vim session per file. *I'm pretty sure that vim allows you to
open multiple files at once as well. *Go figure.

Skip
No worries. I actually agree. I've found myself in situations like the
ones you describe, finding new commands and realizing there's more to
it than I thought. I have to point out that I myself use Vim more than
Emacs. Not because I think it's better (I'm not a religious person)
but because it has better integration with my Mac... and actually, I
use them for different programming tasks.

As a newcomer to Unix (I've come from Web related fields) I've been
learning not only how to use the operating system, but also Python,
Emacs, Vim, bash, etc. This hasn't been easy, of course, but it has
been quite interesting and as I'm learning a specific topic (say
learning readline commands, how to access command history, etc.) I
don't always keep my editor open; sometimes I want to learn how an
editor does its stuff and then I 'hack' a script for manipulating a
relevant text file (like my diary).

I know you can run your favorite shell inside Emacs and learn from
there, but being the only computer at home (and not the fastest) I
don't want to be opening programs all the time (maybe my girlfriend
has several programs running) so being able to write some beginners'
scripts to solve common tasks has been a good learning experience for
me.

Greetings from the third world (or is it underdeveloped? ;))
E.
Nov 21 '08 #14

This discussion thread is closed

Replies have been disabled for this discussion.