My thoughts, written down.

Project Euler – A Great Learning Tool

Posted by signal on July 30th, 2012

I am planning on taking CSCI E-160 next semester Java for Distributed Computing, but one of my issues is that its been sometime since I have actually used Java.  I did get my foundations in Java while a computer science undergrad at Louisiana State University, unfortunately that was eight years ago.  Java has never been my “goto” language for quick and dirty hacking, that has always been a script language such as Perl.  So the task before me was to try to brush up on my Java knowledge and as I was doing so I discovered Project Euler.

Project Euler presents you with over 300 computational problems designed to be solved with computer programs.  There is a whole community of people that have worked to solve these problems.  The problems have varying levels of difficulty and the tools to solve them are up to the user.  Many of the users use C, Java, x86 assembly, however there are many using languages such as Delphi, Pascal, PHP, etc.  Part of the fun in solving the problems is to review others solutions, something you can only do once you have submitted your own.  Many of the users are math/science geeks and have extremely clever ways of solving problems.  For example, today I solved a problem using primes, which led me to the paper The Genuine Sieve of Eratosthenes by Melissa E. O’Neill.  This showed one of the most efficient algorithms used with discovering prime factors….of course I had already written my Java code.  The point is however, that you learn your programming language at the same time you are learning some pretty good information on math and algorithms.

So far I have only completed a handful of the Project Euler problems, however I actually find it an interesting aside to try to solve them when i am trying to take my mind off something else.  They are fun, and that’s the point of the site.


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>