Who is this course for?
This course is specifically designed for people who are wanting to learn to program, especially children, teenagers, university students…oh yes, and those more mature and looking for a change of direction or career!
What's the course about?
“Everybody in this country should learn how to program a computer…because it teaches you to think" (Steve Jobs). Steve Jobs is not alone in this thinking. Many of the people who are shaping our modern world are saying the same thing – programming is the language of the future. This course will introduce you to programming in the most fun, easiest, and most unique way possible.
You will learn all the basics of programming, and by the end of this course you will be able to push the limits of what can be done in Scratch. You will learn about sprites, about code blocks that control them, about useful elements like sounds, randomization, sensing, and lots more. While the environment is easy to learn in, what you will learn will be amazing.
Why this course?
There are lots of courses that teach you programming…and of course I suggest you do as many as you can. However, if this is your first time, or if you are wanting to see if programming is for you, or your children, then this is the best course for you. Why?
Firstly it will be fun! Learning that is not fun is not fun…OK, I suppose that makes sense ;-) Every step of the process is fun, plus what can be more fun than making your very first program a game…and a fun game too!
Secondly we will be using Scratch to teach you. Sure you will eventually want to learn programming languages like C++ or Swift or Java…as these will allow you to write mobile apps. However, I have seen countless people give up because these environments are so complex. You need to grasp the basics first…and that is exactly why MIT University developed Scratch. This is the best platform, used at schools and universities around the world, to learn to program. From here your options are limitless!
Thirdly when you learn to program you need to learn it in a special way…and that is exactly what we are going to do for you. You will be learning from two people – myself (Craig) and my son, Joshua. I have a PhD in educational technology and have been involved in technology and teaching it for over 30 years. I will share with you the benefit of my knowledge of teaching. Joshua, who began programming at 12, has a passion for programming and sharing it with others. He has written many successful apps and shares his unique skills in this unique course. Together we are going to share with you how you can learn to program and set yourself up for the most needed career of the future. Everything is going to need software to work, whether it's your fridge, watch, phone, car…all of these are programmed. Software is the language of our world, and those who know it hold the key to the future.
What kind of materials are included?
The course includes everything you need. The lectures are professionally created, as people have come to expect from my courses. We will explain everything to you and give you access to the source code files in Scratch. Plus in addition to this we have attached additional exercises with solutions to the end of most lessons. This means you can try other things to see if you have grasped the concepts.
How long will the course take to complete?
There are 3 sections to this course, with each section providing short powerful videos on individual concepts. Learning to become proficient in programming takes time…but this course will give you a jump start into what is one of the most needed and lucrative careers around…ask Mark Zuckerberg if your don't believe us!
How is this course structured?
This is an action course. So the course starts with getting to the doing straight away. The course starts with setting up your Scratch account and then in no time you have written your first program. The course is structured in the following way:
1.Section 1 – Introduction to Programming in Scratch - The purpose of this first section is to introduce you to the importance of programming, and the Scratch programming environment.
2.Section 2 – Making the Flappy Bird game - In this section we will guide you in a step-by-step way through the building of the Flappy Bird game. Here you will learn key programming constructs such as controls, sensing, data, and more.
3.Section 3 – Advanced Programming Features - This section now introduces some more advanced elements to our game including more on data and variables, sounds, etc.
Why take this course?
It is quite simply the best course, in the best starter programming environment, by the most qualified and unique teaching team!
We need to get some formalities out the way - because, after all, who wants to spend so much quality time with people you don't know. So, in this first lesson we will introduce you to the unique team who will be guiding you through your learning journey - one with a PhD in technology and the other with a Passion in technology. Come on in and let's get acquainted.
MIT has developed one of the most amazing and powerful environments for teaching programming. Programming is complex, but MIT's Scratch strips out all the unnecessary issues and allows you to focus on learning the key aspects of programming, such as motion, control, operators, etc...and to see the results quickly. That's what makes learning in Scratch fun! In this lesson we will show you how to setup your Scratch account.
It's time to dive in to the Scratch environment. What's so great about Scratch is that you can get going quickly...but, like with all things its useful to just take a few minutes to have a look around. So, sit back and enjoy a short overview of the Scratch environment. You will find that you are very much at home in Scratch, but we want to just make sure it feels just like home!
Your first program! Yes - with the basics out of the way you will write you first program. You'll create a moving cat and also get a feel for how code blocks work and the basics of a program.
The previous lesson saw you reach that exciting starting point of getting your very first program to work. Now we begin the journey of a lifetime - one where you continue to learn new aspects about coding that will only be limited by your imagination. In this lesson we will look at some of the motion controls that Scratch offers.
In this lesson we explore the sound commands that Scratch provides. While we will just "scratch" the surface, the lesson will expose you to some of the power of this programming environment. We will pick up on some of these sound commands later when we write our game.
Scratch provides a unique set of Pen tools that can be used to draw amazing designs. In this lesson you will be introduced to some basic pen commands.
The Control code blocks are amongst the most important in coding. This lesson introduces you to some of the more important control code blocks. In coding it is important to be able to control the logic of the program through controls like if...then, if...then...else, repeat until...., etc. You will be introduced to some of these in this lesson and will be using them when you build your Flappy bird game.
Scratch uses a common coding concept of Sprites. Sprites are manipulated to do things, as we will see when you create your game. One of the aspects of sprites is the ability to change how they look with programming code. This section looks at costumes and how these can be switched programmatically to create interesting effects.
In order for code to respond, as in the case of a game, it is necessary for there to be a way to sense events or objects. In this lesson you are introduced to some of the basic sensing commands, such as sensing the mouse pointer. This will be important as our Flappy Bird will want to sense his surroundings. Have fun learning sensing...we will have even more fun with this later.
Variables are a very important element of coding. They are temporary storage spaces that can be used to remember important things like scores or the state of some counter. In this lesson you will learn how to create a variable and easily change its value. Of course this is going to be important later on when we create our game.
This quiz reviews what was covered in Section 1. How much do you remember. It's time to test your knowledge. You can do it!
Here's what you are going to build - a fully working, sound effects included, Flappy Bird game. By the end of this section you will have a working game. So, what are you waiting for? Get going.
This lesson looks at how to create a sprite that is used as the background. The lesson explores finding, downloading and uploading the background that you will use in the game.
A key element of Flappy Bird is the appearance that the bird is flying. This lesson starts to create the illusion of movement by animating the background.
The next element of the game are the pipes. Building on some of what we learned earlier we now need to find a special type of graphic that we can use as a pipe and learn how to size it.
It's time to make the pipes move - or appear to move. This is a bit more involved that the moving background that we looked at earlier. In this lesson we are going to use some of the move commands, together with some control commands to create a first version of the moving pipes.
So we have got the pipes moving across the screen, but in Flappy Bird they also move randomly in a vertical direction. This is what makes it fun. In this lesson you will learn how to do this and also learn how to use the random function - an important function when it comes to games.
Our pipes are looking pretty amazing. They need some tweaks to make them start smoothly, and so in this lesson we will show you how to neaten things up. This is important as you learn about initializing sequences in code.
Bring that 'ol bird into the game. The time has come to introduce our Flappy bird and also we will add some gravity to it so it falls out of the sky, unless we help it fly.
We need our flappy bird to resist the gravity we created in the previous lesson. In this lesson we give it some flap - we make it look like its flying and use the mouse click to get the bird to fly.
The bird has flap but it does not recognise the objects around it - like the pipes and the ground. The object of this game is for the bird to fly through the gaps in the pipes - and so in this lesson we will use the sensing commands to enable the bird to recognise the pipes and the ground.
It's time to neaten things up. In this lesson we will look at improving the sensing of objects and once again the importance of initialisation sequences in coding and game writing.
This quiz recaps the learning from Section 2. Let's see what you remember.
There are a variety of sound options and in this lesson we start to bring out Flappy Bird game - which is now fully functional - to life. We explore how to add sound effects to flight and "demise" of the bird.
Games are about scores - and that is what we will look at in this lesson. Variables are an important element of coding as they allow for things like scores to be stored. Using variables we will keep track of the Flappy Bird score.
We are adding some enhancements to our game - this one will initiate a timer when we click start so that everything is reset and the player has time to ready themselves for the great flappy challenge.
We have a score, but we an improve how it is displayed. We need a proper scoreboard. Using some of the drawing tools we will show you how to create a scoreboard.
So we have the score, but is it the best score? That's really what this is about - finding out who is the best. Once more we will use controls and variables to now also store the best score.
WOW! If you have reached this stage and followed along you should have your very own working, pretty amazing flappy bird game. Well done. Your journey to becoming a programmer is now well underway. What will you build next?
Source code with comments
Source code with comments
Source code with comments
Source code with comments
Source code with comments
Link to the flappy bird source code and game
Craig is a dynamic international speaker who has been involved in business, I.T. and education for over 20 years, with his PhD speciality being in IT and learning. He has taught and inspired everyone from politicians to corporate leaders to parents to children, all around the world. In addition he has published numerous books and research papers on IT, and launched many successful businesses both offline and online.
Craig is not only pushing the boundaries of teaching and learning, he has pushed the boundaries of physical endurance having run over 30 marathons (42km/26mi), 8 Comrades Marathons (90km/56mi). For Craig, life is about living it to the full!
Craig's passion is to creatively inspire people, whether through his work with disadvantaged communities in Africa or through his seminars to international leaders. Join Craig, one of the world's foremost authorities in online learning, and not only will you learn amazing things, you will be inspired by his creative and engaging approaches.
If you want to find out more about Craig then visit his website below.
What people say about Craig
- "Craig has the rare ability to engage personally with each member in his audience" (A. Byrnes, PDM Pty Ltd, Australia),
- "Craig is a dynamic speaker, out-of-the-box strategic thinker and professional" (R. van Rooyen, Associate Partner, Deloitte)
- “Mr. Blewett is a pleasure to take in. The excitingly focused style by which he speaks keeps you on the edge of your attention.” (C. Stickney, USA)
- “Craig is an experienced and highly competent teacher and presenter. He has the rare ability to convey innovative concepts in an engaging fashion that is packed with enthusiasm but also logic and balance.” (Dr. Alleyne, UK)
- "Craig is possibly one of the most interesting presenters I have encountered. His students love him and in public forums he is unequalled." (Prof. Maharaj, UKZN, South Africa)