Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Programming Problems for Plane Rides
76 points by andrewparker on April 2, 2011 | hide | past | favorite | 28 comments
When I have been on flights recently without Wifi, I've been passing the time by doing programming problems I find online before the flight.

A few times now I've found myself scrambling before a flight to download some random CS course PDF or digging around recruiting sites for hiring challenges that don't assume I have an Internet connection.

Does anyone have a good recommendation for a big page or site full of interesting problems that I could download locally? Generally problems that take from 30min - 2hrs to complete?

I often do this on flights, and in addition to solving "puzzles" you can always try to build a well-defined system from scratch. For example:

  - A JSON parser (bring the BNF from http://json.org/)
  - Simplified Lisp interpreter
  - Forth compiler (for example: https://github.com/JohnEarnest/Four.Ps)
  - Emulator for a simple CPU or MCU (6502, 1801, etc- bring a datasheet)
Projects like these are not "practical", as everything here has been done before, but great learning experiences.

The http://norvig.com/spell-correct.html code was written on one flight, for another example.

More for the mathematician than programmer, http://projecteuler.net/ offers a nice collection of challenges, some of them very tricky.

I recommend trying to implement a classic game (e.g. tetris). If you download the documentation for the graphics library, it's surprising how much you can do in two hours. Even without knowing the library from before.

(Unfortunately, we just got internet on trains here in Norway, which have reduced my train-productivity noticeably)

I love doing this.

I suggest programming Snakes (on a plane).

If you're up for challenge, I'd try "Ed's Programming Contest Problem Archive" at http://www.karrels.org/Ed/ACM/, and the Baylor archive at http://icpc.baylor.edu/Past/PastProblems.html.

Both contain problem sets from the ACM International Collegiate Programming Contest.

Take a look at http://codingkata.org/.

Best suited for playing around in a new language, but could perhaps inspire exploration of a language you are fluent in.

And lets not forget the original code kata site: http://codekata.pragprog.com/

It's a shame Dave Thomas stopped making these.

You can download the SPOJ problem set as a PDF or PS file.



This is the International Informatics Olympiad 2009's page. They have PDFs. Problems range in difficulty, but it does take a lot of thought and time to solve each of the problems.

Gah! But how would I complete a programming challenge without Google!?

I once tried to accomplish a variety of tasks with nothing but an Ubuntu liveCD. It's actually very helpful and complete! It teaches you a lot about what tools you have on hand, which I now realize are much more helpful (if you know what you need is there) than the ad-ridden internet.

You can solve almost any problem just by thinking about it, the question is: how inefficient will your solution be?

I always keep an offline copy of the Javadocs on my laptops, and it's easy to do similarly for any other language of your choosing.

If your problem is needing to look up algorithms, I'd say that copying and pasting from programming blogs and wikipedia is not a substitute for actually learning algorithms. With a very small amount of memorization and a larger amount of practice designing algorithms it can be quite easy to reinvent these techniques on the spot.

You could always download earlier topcoder-contests (http://www.topcoder.com), specifically single round matches for algorithms. They have a time limit on 75 minutes for 3 exercises, and should keep you busy for roughly that amount of time.

If you are looking for algorithmic puzzles you can browse the archives of topcoder.com : http://www.topcoder.com/tc?module=MatchList

These usually require less time and less math skill than the already mentioned projecteuler.net problems.

One of my professors has a large collection of previous ACM programming contest problems (with solutions) on his web site, along with problems from the contest he runs: http://math.nmu.edu/~apoe/

For short puzzles, you can try out our newly launched site puzzlenode: http://puzzlenode.com/ | Only 4 problems there now but there will be at least 4 new ones added every two months, hopefully much more often than that.

These problems also serve as entrance exams for Ruby Mendicant University. We release our RMU exercises as well, but they're more open ended and likely take more than two hours in most cases: http://university.rubymendicant.com/resources/learning_mater...

Slightly off-topic, but I'm actually disappointed by the spread of Internet access to things like planes and trains. One of the things I enjoy the most about flying is that I feel disconnected from the rest of the world, and I try to take advantage of this to focus on a book or programming problem for the duration of the flight, without worries or distractions. I haven't yet been on a flight with wifi, but I suspect that the illusion of isolation would be broken for me, and my ability to focus would suffer dramatically. Hopefully, most airlines will see it as another thing they can charge me for.

I am wholeheartedly in agreement with you, to the extent that I took a 36 hour train ride a few months ago partly to disconnect from the normal flow of life, and from the 24/7 Internet access that I am accustom to.

I always like to do something practical, not a mere exercise. So my first choice is actually building something with a full-stack framework like web2py. You can easily create a db-driven web site in 30 min - 5 hours.

I'm not sure about sites that let you download all their problems in one go, but look at my list of sites of programming problems here: http://stackoverflow.com/questions/4697615/are-there-any-sit...

Look up the Informatics Olympiad. Some awesome theoretical puzzles: http://www.olympiad.org.uk/problems.html

built by a couple of guys I know: http://www.coderloop.com/

"bus scheme" is cute: http://technomancy.us/98

You could do "airbus scheme".

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact