# C'est la Z

It's almost December which means it's almost time for Advent of Code 2019. Advent of code is an annual computer programming competition created and ruyn by Eric Wastl. It's been running since 2015. I've written about it before, mostly from a teacher's point of view (Solve A to Solve B, Data structures and Hidden Complexity, Tools can shape how we think and a few others). Basically, Eric releases one poblem a day at midnight from Dec 1 through Dec 25.

# Solve A To Solve B

So many programming assignments involve a direct solution. Write a program to do this or write a problem to solve that. It's pretty typical. There's nothing wrong with assignments like these. They allow students to practice what they've been learning and it gives them the opportunity to create some cool programs. All the same, I like it when there's an indirect problem. You're faced with a problem but in order to solve it you first have to solve some other problem

# Advent of Code, Data Structures, and Hidden Complexity

Since 2015, Eric Wastl has gifted us each December with Advent of Code - a 25 day programming competition that I very much enjoy. This year I haven't been able to get to too many of the problems. I only completed the first two days on the day they were released, problem three a day late and then I didn't get back to the problems until almost 12/25 - the final day of the competition.

# Tools can shape how we think

I've been having fun with this years Advent of Code competition. So far, I've been able to keep up but with I expect that to change in another couple of days since I'll be traveling for the weekend. After solving a problem, I like looking over some of the other solutions on the Advent of Code subreddit. Even with similar agorithmic solutions there's a decent amount of variation in the actual code and solutions in different languages can look radically different.

# Advent of Code 2017 - Day 1

It's once again time for Advent of Code. That one a day programming competition that's been running now for three years. Here are some thoughts on day 1. The core of the problem is that you have a large string of digits and you have to calculate a checksum. This is done by adding the sum of a subset of the digits. Only the ones that are identical to the digit to their right.

# It gets easier (or advent of code 2016 day 19)

Today's Advent of Code problem was a variant on the Josephus problem. I recalled that there was a formula to figure out the sole survivor but I decide to run a simulation rather than looking it up. I also decided to write it up in C++, well, really C with cout instead of printf. Part 1 was the traditional problem. Part 2 was a variant where at each iteration, you remove the elf opposite the elf being processed (see the problem description for details).

I'm spending the weekend up in Michigan. Visiting my brother and is family. We're here to see the UMGASS production of Gilbert and Sullivan's The Sorcerer. Batya also came up from Cornell to join us so the two families are all togehter for the first time in about 10 years. This hasn't left much time for Advent of Code but I did manage to finish yesterday's challenge this morning.

# A Teacher looks at Advent of Code 2016 #2

Today we're looking at Advent of Code 2016 number 2. To change things up, I thought I'd do a video where I live code a solution. The solution I present is pretty straightforward - use a 2D array (or technically, an array of strings) to represent the keypad, parse the input, and follow the input instructions to build the code. One of the things I really like about Advent of Code is that every problem has two parts and depending on how you solved part 1, you may or may not have extra work to do for part 2.