This Week @ Predicate – 3/20

17353182_1443158542370400_492349485689540258_n

Happy Spring and Welcome Back! As a team we often ideate new ways to present technology to our student population. Our goal, as always, is to find some slice of course content that will present an engaging, exciting, and thought provoking glimpse into the computing field. The start of a new season, the culmination of weeks of planning, is always an exciting time for us. It was great to see everyone and we’re certainly happy many of our innovators shared our excitement to hack on some new course content.

Across the board we’re running eight classes this spring, covering three topic areas and igniting creative thinking for youth ages 8 through 17. Each week we will be posting similar updates on what we cover during our instructional time. Our young innovators will be learning some amazing things during the course of the seasonal program and we find these updates are a great way for parents to spark a conversation and reinforce some of these new concepts. We’ll do our best to keep the descriptions light and informative for our non-techie readers :).

Adventures – Game Makers
“Introduction to Predigame”

game1

Our Game Makers class is using a new game engine that we’re developing in house to make the fundamentals of coding easier for a younger audience. As we often say, there are also some nuances of coding that goes above and beyond basic familiarization with a keyboard. The use of special keys, such as “()”, “#”, “:”, as well as space and tab alignment can be a big impediment to learning. Some learning approaches swap the keyboard for “drag and drop” coding blogs that can be visually assembled into code. We think there is a better way. Our Predigame platform will return focus to the keyboards using an “do more with less” approach the coding – the platform will hide many of the stumbling blocks of coding while providing a simple way to create fully functional games with minimal typing. We look forward to seeing some amazing creations out of this class!

Foundations – Python Gaming
“Basic Shapes”

game2

This week we introduced some of the basic concepts for creating a Graphical User Interface (GUI) – an application much like Microsoft Word or Google Chrome that provides a graphical visualization to the user. Thus far many of the “user interfaces” that we’ve taught in class have been  “command line” or text only interfaces. For GUIs, the magic starts by creating a window and then painting basic shapes within that window. In order to position shapes, the class needed to learn about screen coordinates and the coordinate plane (we often hide math in our classes). Our first project, starting with basic shapes, is the creation of custom emojis.

Foundations/Journey – Physical Computing
“LED Animations”

screen-shot-2017-01-13-at-8-12-56-pm

This week we introduced our first project – a 16 LED assembly that will be used to create moving light animations (think Great Christmas Light Fight). Our first class was primarily focused on wiring up each of the lights to the Raspberry Pi and followed with some basic coding to make sure every light was responding correctly – a precursor step for writing animations. The below picture is a sample of the project; while it certainly looks a bit crazy, these boards will look like a bowl of spaghetti in just a few more weeks 😉

What’s in the box?

studio-webWelcome to a new season! You may be wondering what’s inside your child’s white box. Well, it’s a Raspberry Pi computer kit. These are fully functioning credit card-sized microcomputers.

Raspberry Pi’s are great devices to learn the fundamentals of coding. You’ll child will use the Pi with us at our studio and can use their Pi to continue coding at home.  We encourage all of our innovators to spend a little extra time at home to reinforce some of the concepts we teach in class and it’s not hard to get started.

This Week @ Predicate – 3/16

thats-all-folks-7172-1280x800


On behalf of our team here at Predicate, thank you for participating in our Winter 2016 session. We’ve had a great 10 weeks presenting some of the best projects the technology field has to offer and we hope your aspiring innovator enjoyed their time with us.

Learning technology is very much a lifelong journey and we are grateful that we could come along for the ride! It has been great to see the week in/week out skill development.

Our behind scene tour for the winter completed with “hungry hungry image”, a final round of musical Minecraft, and a custom free running gaming that runs on the web (and our phones!).

For those in our Tuesday classes, our winter season ended with a pretty wild March storm. It’s a tough way to end what has been a really great round of classes.


Adventures – Rock the Beat
“Musical Minecraft” – Part 3

This week continued our adventures with musical Minecraft. Specifically we worked with various shapes and patterns that were drawn and subsequently erased with a changing beat. We also created a custom speaker that would change the tone of a song depending on the proximity and if under water. We hope our innovators enjoyed a coding tour with Sonic Pi and a new way to extend a familiar game.

Foundations – Physical Computing
“Hungry Hungry Image”

Over the past two weeks, we’ve been working with a force resistor that provides a rough weight measurement – from 0 to about 22lbs – and can be used in a number of practical applications. This week we extended our image pixilation game, “The Image Eater”, to pull a series of pictures from Giphy (the Google of animated gifs). The goal of the game was to destroy as many pictures in the least amount of time. The Giphy provided a nice element of surprise to the game – you never knew what was going to pop in next 🙂

Journey – Web Coding
“Free Running on the Web”

Our free running web game is now complete. With an added surprised we added a few mods to demonstrate how the game can be played from a phone. Our Journey innovators got to see how to create a game from the ground up – from basic web coding using HTML, CSS, and Javascript, animating sprites, capture keyboard events, to dodging obstacles and keeping score. We covered quite a bit of ground over the past 10 weeks.

Please remind your children to save off their game code and make a note of some of these skills. Down the road, a well defined code portfolio will be priceless 🙂

 

The Predicate Impact

experience2

Changing the Way Children Learn About Technology

When we opened our doors last January, we sought to provide a meaningful program focusing on real-world applications of technology, using the “tools of the trade”, with instruction delivered by professionals who have a shared passion of technology and teaching. Predicate Innovators participate in a pretty unique experience and so many parents have sent us notes and pictures that showcase the direct impact our program has been having on their child’s education.

Here’s a few first hand accounts of the Predicate Academy experience provided by some of our innovators and their parents.


Drew is in our Foundations program and recently completely his first Predicate class – Physical Computing:

Predicate has allowed us to see excitement in our budding inventor – more than any other extracurricular activity he has tried!  Drew may be quiet while concentrating in coding class, but then he comes home and runs to set up the latest project declaring, “You HAVE to see this,” to the whole family! What an amazing and smart way to spread the love of coding and computers to our future inventors, scientists and leaders!


Kevin is in our Journey program and is completing his third class:

screenshot-of-game

Kevin’s experience at Predicate Academy has been amazing!  He has been able to apply what he has learned in his Journey sessions to create a video game in his high school’s Computer System and Video Game Design class.  Kevin designed a fully interactive game that required coding and creating sprites, sounds, backgrounds, objects, controllers, and levels.  The game has three lives and secret Easter Egg levels.  If a player passes all the levels, the game can provide up to thirty minutes of entertainment!

We are thrilled that Kevin is a part of something so special at Predicate Academy!  Not only is he gaining valuable real-life skills to take into the classroom and world, but Predicate has given him the knowledge and confidence to share these skills with his high school classmates!

Ryan joined Predicate for very first Bootcamp class and has completed Python Gaming, his sixth coding class.

Some time ago, Ryan decided that he wanted to be a coder when he grew up.  I knew he liked playing video games and Minecraft mods, so I guess that’s where he got the idea that he wanted to be a coder.  With the help of a junior programming book, we tried to do a little programming at home, but I was not very successful helping him to understand the concepts or make it applicable to his interests.  We came across a Facebook mention of a Predicate Academy open house and went to check it out.  Mr. Mike showed us the Python programming and physical computing interaction with the Raspberry Pi and Ryan was immediately hooked.  The computing projects at Predicate Academy provide him with just the right mix of challenge, skill development and fun.  Ryan looks forward to going to class every week and he can’t wait to continue learning how to code at Predicate Academy!


Kassandra joined Predicate in Summer 2016 for a Bootcamp class, worked with us to create a Robot in the Fall, and recently completed Physical Computing.

pastedimageOur daughter, Kassandra, has really enjoyed her classes at Predicate Academy.  She has a great interest in robotics and we believe that what she has created using the Raspberry Pi and the Python language is laying a solid foundation to enable her to pursue further studies.  Any parent who has a child interested in learning programming and applying that knowledge will find Predicate Academy to be a good investment.


New to Predicate? Read about our Jumpstart program.

Has your child taken a class with us? Send a few sentences to info@predicate.us describing some aspect of Predicate’s program and how it has impacted your child. We’d love to add your contribution to our blog. Thank you for helping us embark on our mission.

This Week @ Predicate – 3/6

studio-web

Welcome to Winter Week 9!  Our behind the scenes tour this week takes us through another round of musical Minecraft, image eating, breakout with text, and free running with obstacles.

Adventures – Rock the Beat
“Musical Minecraft” – Part 2

musical-minecraft-1

We continued our adventures with musical Minecraft. This week we coded mods for creating our own cities. From clearing land, laying pavement, to building skyscrapers, our innovators got to see first hand experience on the powers of writing code. Some of these tasks would be daunting in the game. Not so with code! Computers are really good at automating basic repetitive tasks.

Foundations – Physical Computing
“Image Eater”

force-sensing-resistorscreen-shot-2017-03-09-at-6-49-31-am

Last week we introduced the force resistor that provides a rough weight measurement – from 0 to about 22lbs – and can be used in a number of practical applications. This week we highlighted the application of force resistance in the context of an image pixilation game, “The Image Eater”.  The first round of our game was pretty basic – a certain amount of the image was “eaten” based on the strength of the resistor strike. The class got to customize the image, sound effects, and amount of damage per strike. We posted a video of our game on Facebook. The game was fun for all ages, even our teaching staff 🙂

 

Foundations – Python Gaming
“Breakout with Text”

experience2

We’re starting to put the finishing touches on our breakout games. Our topic for this week was adding “Welcome” and “Game Over” screens, as well as final adjustments to levels, sounds, and images. There has been a significant amount of collaboration in this class – a combination of sharing tips and tricks for winning the game – which fuels further creativity and competition. We have a few more features to add to our game next week.

Journey – Web Coding
“Running with Obstacles”

kennycactus-enemy-game-character-sprite-sheet-sidescroller-game-asset-animation-gui-mobile-games_dribbble_1x

Our free running web game now has holes AND obstacles! We’re nearly “feature complete” at this point and we’ve been making some final adjustments to speed, player size, and the number and type of obstacles. The game is a ton of fun, both for coding as well as playing. We have a few more features to cover next week and we can’t wait to showcase our final products!

This Week @ Predicate – 02/28

studio-web

Welcome to Winter Week 8.  Our behind the scenes tour this week takes us through musical Minecraft, sensing force, multilevel breakout, and complete customization of our free running game.

Adventures – Rock the Beat
“Musical Minecraft”

musical-minecraft-1

This week we combined our two favorite Raspberry Pi applications – Sonic Pi and Minecraft. We demonstrated how to create Minecraft mods using the same tool for creating music. All said, we have about two dozen mods that we’ll be coding up for the remainder of the class – each of them are equally awesome. From jumping to a beat, creating rain, and vacuuming up blocks, our class highlighted some pretty neat things that can be done with code. As a special surprise, we ended with Minecraft Fireworks – an awesome display of block animations and sound.

Foundations – Physical Computing
“Sensing Force”

force-sensing-resistor

This week we introduced our second analog sensor – the force resistor. Like the potentiometer, the force resistor provides variable resistance – the amount of weight of the circular pad reduces the amount of resistance in an circuit. We demonstrated force resistance with a simple light bulb; as our innovators push the brightness of the bulb changed as a relation to the strength of a push. The force resistor is a key component of our next project, the high striker game, a mini version of a boardwalk classic.  

highstrikerpopeye

Foundations – Python Gaming
“Multilevel Breakout”

Our breakout games are really starting to show off some creativity. From selection of background images, balls and paddles, each game has taken on a certain amount of individuality.  This week we introduced levels and the ability to configure certain aspects of the game as the player completes each level.  Backing the level is a key programming concept called “dictionaries”. In code, dictionaries hold keys and values. As it relates to levels, dictionaries allow us to identify the background images, number of objects to hit, speed of the ball, among others. The highlight of the class was, of course, playing each others game – a perfect opportunity for fun and collaboration. 

Journey – Web Coding
“Custom Everything”

spritesheet

Last week we introduced custom “assets” – dropping in different images for animation. This week we demonstrated how to customize the rest of the game – obstacles, background images, and ground tiles. We also tweaked our game scoring, run speed, and jumping height. Our class has been generating a number of feature requests for things they’d like to add for the game. We’ll be prioritizing them and working on as many as we can over our remaining two classes.

 

This Week @ Predicate – 2/20

studio-web

Welcome to Winter Week 7.  Our behind the scenes tour this week takes us through an awesome boombox, musical picture frame, pygame breakout, and custom sprites.

Adventures – Rock the Beat
Jukebox Boombox” – Part II

bbox

This week we continued our Boombox application with additional buttons (top center, they don’t have any labels so we referred to them by military alphabet: alpha through foxtrot). In addition to the play, stop, and skip buttons from last week, the top buttons allowed for some customization. As part of our audio coding we demonstrated how to cut music tracks by time, play random samples, and chain multiple tunes. It was a really fun exercise fill with lots of personalization. We were impressed with some of the final products. Next week we demonstrate how to combine music coding and Minecraft to add a bit of blocks to our beats!

Foundations – Physical Computing
“Musical Picture Frame”

frame

Potentiometers are a pretty versatile electronic component. Over the past two weeks we talked through the science of measuring resistance with an analog to digital converter.  This week we introduced a practical example of how potentiometers are used – with a musical picture frame. Mr Mike provided some of his favor image and music pairs to get started (and all of our classes were quick to find their own replacements). The potentiometer was used to control the speed of displaying the image. The class learned how to read values, load pictures and music, and control the rate of the show.

Foundations – Python Gaming
“PyGame Breakout” – with Sounds

This week we continued the development of our breakout game. In addition to customizing the paddle, ball, and bricks, we also introduced sound effects – namely, the sound a paddle would make when it makes contact with the ball and the sound of a brick exploding. Our innovators were tasked with finding their own sounds. Needless to say, there was quite a bit of creativity here with some sounds being a bit of a stretch from what you would otherwise expect to hear.

Journey – Web Coding
“Custom Sprites”

spritesheet

So much of web games are based on “assets” – custom artwork that is animated with code. This really highlights the “behind the scenes” aspects of animations. Most are nothing more than a bunch of still pictures that are refreshed at a fast pace (~ 30 times a second) that gives the appearance of the character moving. While we provided Kenny and friends to get started with animation, there was an overwhelming request to add custom sprites. We spent a good portion of the class on how to find, crop, and save sprites from a sprite sheet. Kenny was joined with a knight, Mario, stick figure, wolf, various Pokemon characters, among others.

This Week @ Predicate – 2/13

studio-web

It’s Week 6 of our Winter Session and we rocked it! Our behind the scenes tour this week takes us through a custom boombox, brickatory, pygame breakout, and sprite physics.

Adventures – Rock the Beat
Jukebox Boombox”

We were originally planning to code a custom jukebox until we saw this picture of a boombox and had a great idea..

bbox

We turned the class into part history of “portable” music, part coding. Three of the buttons were activated for use (ask your innovators which ones). We provided some basic programming abstractions – picking random songs, clipping, playing, etc. – things that are pretty complicated but can be simplified with code. The job of this class was to explore the boombox, build a playlist, and make use of the programming abstractions. We plan to activate more of the buttons next week as we dig into how to clip and weave multiple songs together.

Foundations – Physical Computing
“Brickatory”

screen-shot-2017-02-17-at-8-27-03-pm

While our python gaming class codes up their own breakout game, we took some existing code and integrated in our potentiometers. The topic of the class was “value normalization” – reading data from a potentiometer provides some number between 0 and 1. This number can be “normalized” into a different range (e.g. 0 to 10, 0 to 100, etc). There are a number of applications of a potentiometer once the readings can be normalized. This week’s example was controlling the breakout paddle.

Breakout is a bit more fun playing competitively. We created a special version of the game “Brickatory” where everyone in the class could compete against each other. We recognize that some of our innovators are starting to get a bit clever, so we came prepared to ensure they didn’t go in and try to cheat. Needless to say, we didn’t catch all potential cheats but we’ll be the first to admit that hacking code for personal benefit – IN OUR COMPETITIONS – is perfectly acceptable!

Foundations – Python Gaming
“PyGame Breakout”

The first half of python gaming covers the basics – drawing objects, adding images, animating them, and added collision detection. With the foundations in place, it’s time to start working on a game. Our python gaming class will be creating their own breakout game. The game starts with the creation of a paddle, balls, and objects to hit. While we do a good amount of the heavy lifting for the game (some aspects require a bit of math), our innovators have plenty of room for personalization. The creations in this class were incredible! We saw a bacon paddle hitting eggs against bowls, plenty of pokemons, and even a few presidents.

Journey – Web Coding
“Sprite Physics”

kenny

How do you get Kenny to jump? Well, he needs a some physics. This weeks class focused on a practical exercise of force = mass * acceleration. For a sprite to jump on a screen, they need some force (the act of jumping), mass (in game world weight doesn’t mean anything), and acceleration (calculated by our code). This was pretty neat exercise plug in different values and see what happens – a great way to use code to understand the impacts of variables in an equation.

This Week @ Predicate – 2/6

studio-web

We’ve hit the half-way point of our Winter Session and innovation awesomeness is in full effect. Our behind the scenes tour this week takes us through a custom jukebox, potentiometers, game inputs and sprite animation.

Adventures – Rock the Beat
“Jukebox”

We’re using our Sonic Pi program to code up a custom jukebox! First step in the process is finding music. To do this, we’re showing how to find and save our favorite Youtube clips as audio files. The process is a bit like a squirrel burrowing nuts for the winter – the class has been finding and saving as many clips as they can. The importance of this exercise is file management – the ability to find, move, rename files – fundamental skills that every programmer must know and use.

Foundations – Physical Computing
“Potentiometers”

screen-shot-2017-02-10-at-7-33-03-am

We’ve gone all analog this week. While we all use digital devices every day, we live in an analog world. This week we explored how to integrate analog signals on a digital computer – the process is called is called “analog to digital conversion” (here’s a quick video that explains the process). We wired in a “analog to digital” micro-controller to our hardware assembly – which is starting to look like a bowl of spaghetti! With this chip in place, we introduced a potentiometer, an electronic component that consists of a dial that applies or releases resistance as it moves from left to right (same as a fading switch). This is what we would call an analog device. Using the analog to digital converter we are able to “sample” the position of the dial – how far left or right. What can be done with this information? We have a cool surprise in store for next week!

Foundations – Python Gaming
“Game Inputs”

This week we continued animating our images and focused on how to let them collide (bounce off each other). We also introduced how to read mouse activity – every mouse motion and click is passed to the computer as an “event” that can be processed in code. Now with moving images and mouse event code in place, we introduced our first game: speed clicker (where the class tries to click and destroy all the moving images on their screen in the shortest amount of time).

Journey – Web Coding
“Sprite Animation”

kenny

Last week our classed focused on drawing objects to a web canvas. This week we introduced how to draw sprites (pictures) and have them animated. We introduced Kenny, our favorite sprite, as well as a few of Kenny’s friend’s: Kurt, Krock, Kyle, and Keith. All of our sprites have a number of still shots that, when coded together, produce animations. We demonstrated how to run, jump, fall and get hurt. All of these stills are what we call “game assets” and it’s the code that brings them to life. We’ll be using these assets as part of our free running game.

This Week @ Predicate – 1/30

studio-web

It’s Week 4 of our Winter Session and we had a number of fun exercises in store for our classes. Our behind the scenes tour this week takes us through the “Four Weeks at Predicate” audible game, streaming light animations, animating images, and canvas painting.

Adventures – Rock the Beat
“Four Weeks at Predicate”

We coded a really fun music game we called “Four Weeks at Predicate” – a play on the popular “Five Nights at Freddy’s” game. We used Sonic Pi to show how to programmatically trim a song clip (change the start location and duration) and introduced some random numbers to let Sonic Pi decide where in the song to play and for how long. The objective of the game was to see who’s music would play the longest. It’s a game of pure luck, but more importantly, it was a great coding exercise!

Foundations – Physical Computing
“Streams Animations”

Our physical computing classes got a taste of automation when we showed how stream music from a Pandora station and automatically animate our 16 LED assembly. Everyone in the class got to pick their custom pandora station and we walked through how use that station in an automated light show. This class was a great opportunity to use the Linux console – a concept that we originally taught in our Bootcamp class and regularly revisit. Anything that can be done on the Raspberry Pi can be executed from the Linux console.

Foundations – Python Gaming
“Animating Images”

Take a few lines if Python code, add a favorite image, and you end up with a pretty fun class! This week we showed how to use Google to find an image – not just any image, but one that has a transparent (clear) background. We then saved and resized the image using a graphics program and loaded into our game (not quite a game just yet, but we’re getting there). We provided some basic code to bounce the image around the screen – which involves some basic physics and is a bit advanced for our foundations classes.

Journey – Web Coding
“Canvas Painting”

 

It’s our second week of Javascript coding and we focused on drawing shapes – arcs, line paths, rectangles, circles, ands ellipses. In addition to shape drawing, we discussed how to position on the screen (where to draw on the canvas) and coloring (stroke outline vs fill with a color). Naturally, canvas painting quickly comes into a “create your own emoji” exercise which is always entertaining to watch.  In addition to drawing shapes, we provided some developer documentation so our class got to read through all of the shape options. Iterating through documentation with example code is one of the most effective ways to explore the power of writing code.