Sunday, November 7, 2010

Project Euler

My brother told me about Project Euler today, and I've more than used up my extra hour working on some of the problems.  What is Project Euler?  Well the simplest explanation is "just click on the link and find out."  I can't give you a much more detailed review since I only found out about this today, but here are my initial thoughts.

So far, the problems I've worked on are good.  They are very accesible.  They are problems that a middle schooler could work on (and solve), but at the same time problems that keeps me--a middling recreational mathematician--challenged.  So far there has been no context aside from the context of puzzle solving, so they won't help you determine how the speed of the shadow of a sandbag being dropped from a hot air balloon is changing.  Somehow, they've still kept me engaged.  :)

The problems are posed (and from the solutions I've read, generally solved) with the lens of a computer programmer.  So far I've solved 5 problems without any coding (well, to be fair, I used someone else's code to solve one), but it looks like programming will end up being a requirement for many of the problems.  I've skipped one so far that either required some programming, more thinking time, or someone more clever than I.  Looking down the list this appears to become more common.  Regardless, I find this to be an interesting lens (and maybe a great motivation to bone up on my Java/C/C++/Mathematica/Matlab/Scratch/Perl/Dylan/... skills).

All of the problems (so far, at least) have unique answers.  All of these answers (so far) are numbers.  While I generally frown on such a focus, I admit that it feels good to put your number in and get a green checkmark (instead of a red x).  I also like that answering a problem correctly unlocks a forum where other people have posted solutions (which include both code and explanations).

I also like this response to whether or not you can use google for help.
Making use of the internet to research a problem is to be encouraged as there could be hidden treasures of mathematics to be discovered beneath the surface of many of these problems. However, there is a fine line between researching ideas and using the answer you found on another website. If you photocopy a crossword solution then what have you achieved?
All has made me wonder how this or something like this could be used in or outside of school to promote the activity of doing mathematics (or to allow robots to replace teachers).  Feel free to wonder with me, or just register and try your hand at some of the problems.

1. You destroyed me :-) I spend several hours to solve 10 problems. I, too, solved them without writing a single algorithm (but I did use a factorization webapp for one of them). This, despite the fact that I am a computer engineer. Seems that for most of them you can go for a brute force (algorithmic) solution which is no fun. I had fun trying to use logic, remember some math, search on wikipedia for more info etc.
BTW, I really like your take on education; that's how I got hooked in your blog :-)

2. I've tried to get my son to do Project Euler, and he has done some of the problems, but the interest wore off after a day or two. That seems to be common: look at the drop off in number of people who have solved each problem as a function of the problem number at http://projecteuler.net/index.php?section=problems

See my post at
http://gasstationwithoutpumps.wordpress.com/2010/06/21/project-euler/

3. @Thanassis: It's not a contest. :) And to your credit, I expect that the next 5 questions are going to take me much much longer than the first five...especially if I try and continue to avoid any programming.

@gasstation: I wonder if the learning curve is too high for middle schoolers (heck, I wonder if it's too high for me...it'll be interesting to see if I too lose interest). I also wonder if students would have the metacognition to go back to earlier problems they had solved to look for more efficient algorithms that might help with later problems they are stuck on. Regardless of the implementation or lens, I remain intrigued by the format.

4. Hmm, what I wrote was confusing. I did not mean "you beat me at doing this", I meant "damn you, you introduced me to this site and made me 'waste' so much time" :-) And I did not solve problems 1-10, not sure that all of them can be solved without programming. I handpicked the problems that appealed to me.

I wonder too if my interest will continue. Maybe I could see it as a good opportunity for me to hone my python skills. But I am not sure how many opportunities the problems offer for beyond-basic programming structures.

5. You know, having a gradually increasing series of mathematical questions like this is a great idea. There are courses set up in this fashion at the Journal of Inquiry Based Learning (here). A less structured, more diverse assembly might be fun though.

6. I did three in an hour with only the help of some very basic excel. Started working on an interesting days of the week one but was putting in tons of time and wanted to try a different approach but not right now.