Fall 2017: Workout #2 (10/8)


We had a great kickoff last session! Good job coders!

Just a couple reminders:

  • Parents make sure you don’t leave your child’s side until they are successfully logged in and ready to code.
  • If you were unable to bring a laptop, try to find a partner for your child so they can do some pair programming.
  • Also remember you need to stay on the premises.
  • And I hope everyone who has earned a belt wears it with pride!
  • Room assignments are not a hard and fast rule but to start let’s try all Scratch in Room 320 everything else in Room 321. We just want to divide up somewhat evenly to spread the WiFi use!

Novice Coders: Overview [Room 320]

  • If you don’t have a Scratch login, set one up at scratch.edu.mit
  • Work on the 10 Blocks project
  • Share your 10 Block project in our Fall studio
  • Check out other coder’s 10 Block project
  • Work on debugging some Scratch code (see the details)

Novice Coders: Details

These are coders who are just getting started. If you are new to coding in general or just new to Scratch (the language we use to get started) this is the group for you. If you’ve started to feel more comfortable and want to see what everyone else is doing, read down below and see if that appeals to you. You can move between groups to find the best match for you.

Today we are going to continue to familiarize ourselves with the Scratch interface. We will start with a project that comes out of a resource that we have used quite a bit before. This is a resource created by the Harvard Graduate School of Education. It was specifically created to help kids explore and be creative and is aptly named Creative Computing. A link to the workbook in its entirety can be found here. I’ve broken it out chapter by chapter on our Kata page. The project we will work on is called 10 Blocks and can be found in Unit 1 in the Creative Computing resource. This is a great project because you don’t have to feel overwhelmed by all of the options that Scratch provides you. Instead you are purposefully constrained to use just the 10 blocks listed in the exercise. Feel free to use blocks more than once just try to stick to just the ten blocks allowed.

After you have played around with your 10 block project go ahead and share it by clicking the share button on the top right of the screen. Make sure you give it a name and somehow indicate it is a 10 Blocker. Next link it to our Fall studio. Ask around if you are having trouble doing this. Once you have your project linked into the Studio, wait for other people to get theirs up. Better yet, go help them! Once we’ve got our projects in the studio, check out what other people did with their 10 Blocks. Want to know how they did something? Just ask them. Think they did a good job? Let them know in the comment section of the project. Check inside to see how the code works. Want to play with it yourself? Remix it and get a copy of your own that you can modify to your hearts content. Have fun!

Sometimes when we write code it doesn’t behave like we expect. The process of finding these problems and fixing them is called debugging. Want to know the origin of this expression? Read this! And this! Let’s do some debugging. Another thing coders do is work in pairs. Let’s give that a try. Pair up and try to figure out what’s wrong with any of these buggy projects:

With the time remaining, have fun and code up whatever you like. Make some noise, splashes of color, be silly, be serious. Whatever you want.

Everybody Else

This season the focus will be on a long term project. When I say long term, I mean all season! You can use this project to enter into the Cool Code Awards event or as part of the requirement for your next belt or both! Because you will be spending a bit of time working on this project, it’s good to put some thought into it up front. Make a roadmap so you have some idea all the pieces that you are going to have to work out. It might help to brainstorm with a friend.

This session if you are still searching for just the right project let’s explore and see if we can find something that interests you.

Scratch Project Ideas [Room 320]

The Scratch programming language has a lot of features! How much have you explored? Any project that you create in Scratch should have sufficient complexity that it demonstrates your knowledge of many of the features of Scratch. Here are some concepts that will help you start thinking about a big fat Scratch project:

  • Do you like to tell stories? Use Scratch to tell an animated story. Here is an example
  • Do you like games? So do many other Scratchers!
  • Some coders make tutorials like this
  • Some artists make speed drawing demos like this
  • Some scientists make simulations like this
  • Some mathematicians do calculations like this

What can you come up with?

Python Project Resources [Room 321]

There are a number of options of what version and distribution to install. Mac’s come with a version pre-installed. So as a starting point you could roll with that. But I recommend the Anaconda distribution because just about everything you will need is already included.

I recently was shown an Integrated Development Environment (IDE) {the tool you use to write your code} that looks really nice.

The CoderDojo website also has tutorials and resources about Python.

You can also try CodeAcademy‘s tutorial to learn python.

Another good resource is this book designed to teach kids to code in python by writing games.

Web (for lack of a better generic descriptor) Programming Resources [Room 321]

Since this is a newer area for the Dojo, we need to work on curating these resources. You can help! If you have found something useful, like CodeAcademy let me know!

The CoderDojo site has resources for HTML, Node, JavaScript, Ruby, php and many more technologies. Take a look. They also have tutorials on many of this languages/frameworks as well.

Do some research. Ask some questions. Then let’s think of how we can use this new found technology to make something amazing!

Hardware [Room 321]

We currently have 4 mBot Robots. Resources for the mBot can be found at the Makeblock company website. What fun project can you think up to make with one or multiple mBots? Can you make them play soccer?

Again the CoderDojo website has resources for Arduino and Raspberry Pi projects.
We have several Arduino boards and a sensors kit with 37 different types of sensors that you can use. (You’ll have to do some research to figure much of this out. But that is half the fun!). What crazy sensing gadget can you come up with?

Dojo Maintenance [Room 321]

I have a lot of project ideas that are intended to enhance our Dojo experience. Here is the laundry list:

  • Creating a website for logging in coders and keeping track of what belt they are on and what they are working on. Maybe using face recognition as a login aid?
  • Figure out how to use the OpenBadges framework to award badges in addition to our belt system. See how they do badges on the CoderDojo web site.
  • Update/Upgrade/Overhaul the CoderDojoNova web site. Suggested improvements:
    • Easier way to add new workouts
  • Finding a web hosting site that would work well for kids in the Dojo to create web content
  • Setting up git repositories for kids who are coding in text based languages