Welcome to…

The Happy Coder

The aim of this course and the material provided is to encourage people to learn how to code, it covers a wide range of concepts and aspects useful for many applications. The course is free to download and use as you want, if you find it useful then please consider donating using the donate button below to support the project. Please be aware that this is a work in progress so new stuff will be added from time to time, some of it will be very draft but the code should work fine even if the explanation is a bit patchy in places.


The Happy Coder

Section A1 Introduction

You may be wondering what coding is. This is your introduction to it so you will at least have a basic idea, followed with a quick taster of doing some actually coding to see if this is for you. This covers the many coding languages and other aspects of coding.

Download A1 PDF

Section A2 Shapes

This where you get into the coding one small step at a time. You begin with drawing some regular shapes and  text. Once you have created and coloured these shapes  you can make them move. This section shows you how to interact with your mouse on the canvas.

Download A2 PDF

Section A3 Arrays

In this section you will cover a range of topics including arrays, oscillating objects (sine and cosine). Arrays are fundamental to coding, they are a way of storing data than can be easily accessed and manipulated. Also you will cover 3D shapes which means you can work in a 3D environment.

Download A3 PDF

Section A4 Vectors

Introducing a random element called perlin noise. This is a smoother and more realistic form of random. An important ingredient in coding is object orientated programming. It is a powerful use of classes in coding that many languages incorporate. The third part of this section is a unit on vectors.

Download A4 PDF

Section A5 Web

This covers what are called DOM elements that you might use in a website such as CSS, HTML and JavaScript. There is more on the functions available for the keyboard and the mouse. Also how you can incorporate the time and date. Using milliseconds function to measure the length of time.

Download A5 PDF

Section A6 Data

This is primarily about data files in the format of .json. How they are created and used. JavaScript makes good use of this data file type as do other coding languages. There are additional bits and pieces that cover things like promise, the for/of loop and arrow functions.

Download A6 PDF

Section A7 Media

Explores video and sound. Using the webcam on your laptop or computer you can create and manipulate images. There is also a brief section on creating .png images that have a transparency before moving onto creating and graphing sound. Using the microphone and downloading free music and visualising it radially.

Download A7 PDF

Section A8 Flappy Bird

Creating the famous flappy bird game. You press the spacebar repeatedly to make the bird fly through the gap in the pipes. This draws on mush of what you have learned in the first seven sections. You will also add features to make it mobile friendly.

Download A8 pdf

Section A9 Classification

This introduces you to the concept of Artificial Intelligence. It is more hands on than just learning about it. You get to build your first one using a library called ml5.js which sits neatly with p5.js. So no new coding language to learn and is a gentle introduction.

Download A9 pdf

Section A10 Regression

After learning about Classification in A9 you will now explore Regression and the differences between them. This is an opportunity to also explore hyper-parameters and looking a bit more in depth into what makes a neural network work. This is still small steps and a lot of ground to cover.

Download A10 pdf

Section A11 Pixels

Using a webcam we can train a neural network to detect when you are in shot or not. You can use your built in webcam otherwise you will need an external one. You will collect the data, save it and train it and then tweak the hyperparameters to improve its performance.

Download A11 pdf

Section A12 Image Classification

This section looks at convolutional neural networks, which are a popular way of classifying images. it builds on the previous section with pixels. 

Download A12 pdf