Intro to Advent Of Code 2017

In Python and TDD!

Ah it's Christmas time and that means it's time to fire up the engines for the most fun sleigh ride of the year! It's that time of the year where adventofcode.com gets updated for another year of amazing coding puzzles.

If you've never heard of Advent of Code 2017 I can't recommend it enough. Done by Eric Wastl, each year features a series of stories from Santa's factory. Santa's got a challenge and you've been called in to help save Christmas. The stories unfold via two daily challenges that take you deeper into the labrynths of the facilities and each puzzle becomes harder and harder to complete. The puzzles range from remaking cryptographic functions according to elf specifications, to finding out how many houses received more than one gift due to the drunken instruction written by a drunken elf.

It's charming and deviously difficult.

I've been a fan of advent of code since 2015 which I believe was its inception. So from the beginning. I won't lie though. I've never been able to complete a single year. Not because I procrastinated. I just couldn't get past the difficulty levels after Day 11. My screenshot trackrecord will prove this. Behold!

2015

aoc2015

2016

aoc2016

I'm starting really late this year but I'm in no rush to finish. I know I'm going to be bogged down by work and holiday plans but I am going to try this for as long as I can (which will probably be day 11 again!). I actually view this as a failure on my part because it basically means that my knowledge in algorithms has not grown at all since 2015. Personally I want to try and make it all the way to the end. But that's going to take several months for sure.

As I've done in the past I'll be attempting to complete it using TDD in Python which I find is a great way to stretch the testing muscles as well :). Logs and dev notes will be on the main site

As a quick side note, I discussed with the author of the puzzles, what content he'd be comfortable with letting me place in my source code or any external writings. My puzzle input, thoughts, and source code for answers was all fine, but I was asked to provide links instead of copying content anywhere (which I thought was absolutely fine). So in any logs, I'll be simply sharing a link to the puzzle instead of actually discussing the challenge in depth.

Posted on December 14 2017 by Adnan Issadeen