Code Club Advanced

From Hamsterworks Wiki!

Jump to: navigation, search

I'm thinking of running an advanced bootcamp-style introduction to C programming for Christchurch CodeClub.

For a handful of really keen students to 'level up' their programming skills and tools.

Aim

The 'C' programming language is a key skill in your toolkit. The language was created 44 years ago, and has stood the test of time to still be the second most popular programming language (see http://www.tiobe.com/tiobe_index).

This course will take you from your first C program to generating and processing graphics files, audio files, generating fractals and use a WiFi IoT micro-controllers.

The challenges here are 'relatively trivial' but open a world of exploration and learning.

The structure has been chosen that rather than focusing on the language itself, it focuses on learning about technology such as graphics, audio and microcontrollers that can be moved to other programming environments and projects.

Requirements

  • Can write simple programs in a procedural programming language (e.g. Python)
  • Is familiar with the concepts of arrays
  • Want to learn lots, really quick

As C is a textual programming language it is also good to have relatively good typing skills (e.g. two-finger or better).

  • Can bring either:
    • Their own laptop to sessions - running Windows or Linux
    • Or a USB Flash drive for their projects

If you want to have your own micro-controller also bring $20 for a complete IoT development kit - one one be loaned for the last few weeks.

Session plans

Code Club Advanced - C introduction

Code Club Advanced - Working with files

Code Club Advanced - Creating graphic files

Code Club Advanced - Drawing simple objects

Code Club Advanced - Fractals

Code Club Advanced - Image Processing (maybe)

Code Club Advanced - Simple 3D Graphics (maybe)

Code Club Advanced - Digital Audio

Code Club Advanced - Digital Signal Processing

Code Club Advanced - Microcontrollers

Code Club Advanced - Internet of things (maybe)

Personal tools