Our Taste of Computer Science (ToCS) course has a very simple goal. We want to give secondary school students, and in particular those already in senior cycle (4th-6th year) a taste of what a third level course in computer science will be like.
This is crucially different from other courses run at the Academy of Code and elsewhere. For younger students in particular, the goal is more so to get them interested in technology than anything else.
The proliferation of Scratch is a perfect example of this other approach. Scratch is a fantastic tool, and useful both from the perspective of makers and teachers, but no matter how hard you look you are unlikely to find any Scratch developer jobs on your friendly neighbourhood jobs board, and to our knowledge there is no third level computer science department which builds its degree course around Scratch.
Our ToCS curriculum is anchored by a Processing block, which is given two thirds of the total teaching time for the week. Processing is a Java-based language, which uses the industry-standard Java syntax and structure, as well as being widely used in introductory computer science courses at third level.
For this week-long ToCS course we’ve reshuffled our normal beginners material into eight lessons. The first seven are an hour each, and give students a whistlestop tour of the major building blocks of a coding language including variables, conditionals, loops, functions, etc. The final section of the course is a short project where students will build a simple game which they can then personalise and extend using the toolkit they have assembled throughout the week.
(Warning: some technical material ahead!)
The breakdown of lessons and learning outcomes is as follows (lessons 1-7 are each a single hour of instruction):
1) Introduction to coding - students make use of functions to draw shapes on screen. They will manipulate the size and position of the shapes by adjusting parameters. They will also colour the circles using RGB codes, and develop a basic understanding of program flow in the process. This lesson includes a revision of coordinate systems.
2) User input - students will be introduced to the idea of variables and loops here, and make use of them to have simple and composite shapes follow the mouse on-screen. They will also deepen their understanding of parameters by experimenting with sample code to produce simple abstract artwork.
3) Variables and animation - following the introduction to variables in the previous lesson, students will develop a greater understanding here of what variables are, how to use them, why to use them and what to call them. They will learn about different variable types, and make use of floats. They will manipulate those variables to produce very simple “animations” - moving shapes across the screen and in various predetermined patterns.
4) Logic and more user input - an introduction to if statements, one of the cornerstones of all programming languages. Students will produce simple movements and colour changes dependent on keyboard and mouse input from the user.
5) Keyboard movement - building on the previous lesson students will check for keyboard input using simple if statements, and move shapes in all directions on screen according to those keypresses.
6) End conditions - building on the previous two lessons students will create basic visual loops on screen, such as can be seen in many simple computer games (eg Snake).
7) Collision detection - students will use their knowledge of conditional logic and simple mathematics to detect collisions between two circles on screen. They will study how this can be used to build 2D games.
8) Final project - combining everything they have learned up to this point in the course students will produce a functioning game of their own design! Building on a roughly sketched plan students will make the game their own, both graphically and by adding their own unique gameplay features.
Other curriculum elements
Alongside the Processing material there are several other taster sessions throughout the week (HTML, computer hardware, electronics, Micro:bit programming), as well as a short careers talk and Q&A, where students can take the opportunity to find out more about what college and work might be like for someone pursuing computer science at third level.
What students get out of the course
By the end of the course students who have no previous coding experience will have an understanding of what it’s like to write and debug code, and what they can expect if they choose to pursue coding at third level. It will be hugely advantageous both to those who find that they really take to coding, and perhaps even more so to those who thought it would be for them and discover it isn’t. Better to discover that before starting into a multi-year commitment to a degree program!
Whichever direction they go, students will have gained a valuable insight into the world of computer science, which will stand to them regardless of the path they choose in life.
What about returning students
Returning students are at the core of our mission at the Academy of Code. We want every student who finishes one of our courses to be immediately chomping at the bit for the start of the next term!
For those in that boat we have written a whole new set of intermediate and advanced lessons and projects. ToCS will be a perfect environment for perfecting all sorts of finer details of coding, and using them to work on more advanced and interesting lessons and projects.