Students will learn about the history of computing and computer science; they will review the evolving machines and the people behind them. Students will be introduced to the binary building blocks of modern computers: the binary number system, logic gates, and elementary boolean logic. They will learn about computer programming, "coding", and explore the basic concepts through: visual languages, coding games and a text-based language.
We have been learning about computer programming from a couple different apps. We started with Lightbot at the beginning of last session, and started to move over towards Kodable towards the end. Kodable is similar but does a good job of showing students some of the same concepts but in different environments. The first topic that Kodables goes over is Sequences. The kids are taught that a Sequence is a group of instructions that occur in order. I explained to them that with each level on Kodable, we need to find out what instructions we can use for our Sequence in order to be able to solve the level!
Spend time acting out Kodable in person with partners like we did Lightbot. It is similar, but the key is for kids to pick up and understand the different instructions that Kodable allows you to use compared to Lightbot.
Every student will get a iPad, and will login to their Kodable account. We will continue where we left off last time, and work our way through Sequence Sector. Once kids have completed those levels, and feel confident, they will move onto the next section which introduces Conditionals
- iPads - Whiteboard
How many instructions does Kodable allow us to put into our sequences?
Class went fine, and we have been making some progress on the Kodable levels. Being the class size is our largest yet, we still have some kids working on previous levels but I will be working with kids individually to make sure everyone is on the same page. Most of the kids have gotten through the first levels going over Sequences, it has the most levels compared to the other sections. Those that finished have moved on and started learning about Conditionals.
We will do a quick refresher on Conditionals since we had a snow day last week, and then move onto loops!
Starting with Kodeable and making sure all the students have a good grasp of Conditionals and all the levels in the Condition Canyon section of the app. Once we are done there we will move over to the next section which is loops! Loops are introduced with three levels, students will practice identifying the patterns in each level and figuring out which instructions are needed in order for the loop to function correctly.
Why do we use loops?
We are making some progress on Conditionals, but it still hasn't clicked with all the students. I've started to use the whiteboard in order to draw out some of the levels and really break down the concept. We have also been saying the Conditional out loud in the format of "At the PINK BLOCK TURN DOWN." Kodables isn't the best with running and testing your code, so sometimes it takes us a second to back track and do the debugging.
Loops! We will spend class today furthering our understanding of Loops, and wrapping up Conditionals. The kids have been learning to use Loops when we need to reuse some code. Something we have learned is called Do not Repeat Yourself or D.R.Y. By using Loops, and reusing our code it helps us to be more efficient.
The kids will be given iPads and will sign into their Kodable accounts. Once logged in we will focus on the Loopy Lagoon section of the app. Kodable allows you to create Counting Loops in order to tell the computer that we want to repeat a block of code a certain amount of times.
Students first need to observe the level, and think of any patterns that they see. Second they should work towards figuring out which instructions they can use to complete that pattern, and then how many times that block of code needs to be looped.
I'll show kids that one tip to help them get started is to use their finger and trace the path that they think they need to program their Fuzzball to take. And while doing it, it helps to say outloud in which direction your Fuzzball is going. By doing that, it sometimes helps us pick up on a pattern, like Turn Right, Turn Down, Turn Right, Turn Down and that needs to be looped 3 times in order to complete the level.
Can we use two loops in one level?
Today is the first day we spent some decent time understanding Loops. I started the class out with going over some examples of Loops on the whiteboard. We talked about real world examples of them, and also how they are used within Kodables. I've been trying to teach the kids a strategy for approaching them, and to break it down into smaller parts.
We will finish up with Loops, and get everyone to the same point. We still have some students who are working through levels, and getting all their stars! With the new session starting I have been going over some of the important vocabulary words with the kids on the whiteboard at the beginning of class. Kodable has taught us a couple computer science fundamentals, and it never hurts to give ourselves a refresher!
Once students finish working through Loopy Lagoon they will move on to the Function Junction section of the app. This area teaches the kids the basics of what a function is, and how it can help us remain D.R.Y
Our main objective today will be getting all finished with the Loopy Lagoon. And making sure that we feel comfortable using Loops in Kodable to make our code more efficient. If there are some kids who think that they could use some more practice with Loops they can spend their class time replaying through some of the levels, or doing the quick play feature with shows similar levels. Those that are confident in their knowledge of Loops can move onto the next section of Kodable, Function Junction.
What is a function?
Class went great today, albeit a little slow. But we are definitely making progress, and I have been trying very hard to use the white board and really break things down. As well as work with the kids on asking better questions for help. When the students are stuck I want them to first try to back track, and see if they can figure out their mistake. When they can't, they should ask for help and be able to point to the area of code that is causing them problems. I don't want students to just come up and say that they are stuck but yet have not added any code to the level. A lot of programming is about trial and error, and seeing what works. Sometimes they are multiple ways to solve the level!
We are almost through most of the content that I wanted to touch on within the Kodable app. The last section deals with Functions and shows the students how they are similar to the Counting Loops that we have been creating. And like loops, we can even use the same function multiple times without our code! I have tried to give students some tips on how to approach a level with functions, and to make sure that they are testing their code while they work to solve the level.
Working towards getting finished with Kodable and making sure all students have a good understanding. The last section is Function Junction and almost all of the students should have at least started it by the end of class today. Kids should have an understanding of the similiarities of using Functions and using Loops. As well as be able to describe what the benefit to using them in our programs is.
What benefit does using a Function in our Kodable code give us?
Started the class on the whiteboard going over Sequences, Conditionals, Loops the three main concepts that Kodable has been focusing on the past couple weeks. As I have said in the past we have had some slow downs, but I'm confident that all the kids definitely have an understanding of Conditionals, which is what we had the most trouble with. To reinforce this concept I have used the whiteboard to sketch out Kodable levels featuring Conditionals, in addition we have been talking about real world examples of Conditionals, like IF it is my birthday, I will have a birthday party. IF we are on the pink colored block in Kodable, turn our fuzz ball left.