Advent of Code: A Different Approach

Problem Solving Without Computer Science Prerequisites

Course Overview

In this course, we are going to be going through problems from last year's Advent of Code (AoC) series. These are problem-solving exercises of increasing difficulty that are normally solved by people with a background in data structures and algorithms, such as learned in a computer science degree.

We'll be showing how to solve these problems without doing a course in data structures and algorithms. Instead, we'll be showing how to use a specific problem-solving process relying on nothing but the Python standard library (and sometimes a tiny bit of NumPy).

Getting Started

You should sign up for the 2023 AoC, but there's no need to start looking at any of the problems now. (If you want to check out AoC problems before we start, it might be better to look at earlier years instead, so that we're all working through the 2023 problems together.) The course is scheduled in a way that this year's Advent of Code will be starting shortly after we start the course, so there will be a second set of problems you can start working on right away if you wish!

Our Approach

The problem-solving process will be something that you will be able to reuse in all of your problem solving with code. We'll be showing how to incorporate AI into the process in such a way that you are always in control, and are continuously learning and becoming a better programmer every time you solve another problem.

We're not going to be teaching any web application frameworks or AI algorithms or anything like that. This course is all about building up the foundational skills and techniques necessary to become really good at solving problems with code (and anything you want to create using code you can break down into a series of problems to solve!)

Expected Outcomes

We hope that following this course you'll feel much more confident of your abilities to solve whatever problems you come across from here on in, because you'll have lots of personal examples to draw on of using what we teach you to do stuff you previously thought was beyond your capabilities. 😄

Important Note

Quite a few of the earlier AoC problems can be solved in 1 shot by Sonnet and O1-preview. But don't do that please! That would be like a child at primary school skipping all math classes because they can use a calculator. The purpose of these exercises will be to learn a process which you then practice -- it's important you practice it on easier problems first before you move onto the harder stuff.