Wray Mills, 2019-07-15, Classes

1-week Session July 15-19, 9 - 12pm

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.

Alex

- Ian
- Gabby

Students will...

- have an understanding of computing and computer science
- have an understanding of problem solving techniques
- have an understanding of the binary number system, logic gates, and elementary boolean logic
- explore procedural instructions, conditionals, loops, variables and data structures, functions

- iPads
- Whiteboard

Presentation and iPads charged

Start the class with an ice breaker (two truths and a lie). The main focus for today is an overview of the history of Computer Science and Computers. Instructors will use the [Code Em] (http://blog.techemstudios.com/decks/code-em.html) presentation to go over the history of computer science and basic computer science/coding concepts. Go over the difference between hardware and software. When introducing the concept of sequential programming, use the out of desk programmer/robot activity to demonstrate.

Then, continue the class with the hands on activity of Lightbot. Emphasize that the robot will only do what you tell it to, in the exact order you tell it (just like programming a real robot or computer). After the students have made significant progress in the Lightbot levels, stop the class to go over procedures. Explain to students how if you spot a pattern in your Lightbot cdoe, you can put that pattern in the PROC1 section to save space. The robot performs those instructions inside the PROC1 when you tell it to with the instruction P1 in your normal code. These are called functions in real-world coding.

Once the students have made significant progress in Lightbot, go over with the class the concepts of functions, loops, and conditions. Then have the class start to work on the Box Island game to reiterate those concepts.

Conclude the class with a quick review. Ask the class questions such as what is a computer program, what does it mean to be efficient, what is a function, etc. Be sure to record the iPad number that each student used.

Take a snack break when needed during the class.

In groups of two, assign one person to be the programmer and the other person to be a robot. The robot needs to get to a specific point in the room, and it must follow the verbal instructions given by the programmer. The robot can only follow the instructions they are given, and in the order they are given, or in sequence. The "code" the robot understands is move forward/backwards a certain number of steps and turn right/left a certain degree, etc. Have each group go one at a time, and write the steps given by the each programmer out on the whiteboard.

After the activity is over, ask the class which group reached their goal the quickest, or with the least amount of steps? Discuss efficiency with the class.

The students will play the Lightbot game on the iPads to gain a better understanding of sequences and functions. Students have to program a robot using the instructions provided by Lightbot.

The students will play Box Island on the iPads to reiterate the coding concepts of giving instructions, sequence, functions, loops, and conditions.

Students played Lightbot using iPads and ChromeBooks. Some students were even able to finish all levels except for the challenges! Tomorrow we will finish up with Lightbot and hopefully move onto Hopscotch.

iPads given to the correct student

Review the concepts discussed yesterday (what is code, computer program, hardware vs. software, sequence, statements, functions, conditionals and loops). Introduce and explain the Binary Number system and how it is used in computer science. As a class, practice converting different numbers with the out of desk activity. Go over boolean logic.

Have the students continue to work on the Lightbot and Box Island games.

Go over the square Hopscotch activity in the Code Em Deck. Explain the drag and drop style of Hopscotch. Walk through the main areas of logic: controlling objects with x and y axis, move right (poistive X), move left (negative X), move up (positive Y), and move down (negative Y).

Go over the basics of controlling a character in Hopscotch with direction buttons. Explain that everything is an object that doesn't know what to do yet, and as the programmer we need to give those object instructions on what to do. Demonstrate how to add other objects in Hopscotch and how to add conditionals when the main character bumps into other other objects.

If there is time left over at the end of class, have the students continue to work on one of the three apps they have learned about (Lightbot, Hopscotch, or Box Island).

Take a snack break when needed during the class.

Students will practice converting numbers into binary using whiteboards as class.

Students will continue to make progress in the games of Lightbot and Box Island. Students will also be introduced to the Hopscotch app.

Students continued where they left off in Lightbot from the day before and made great progress today with even more students nearing completion. For the last hour of class, we shook things up by making the move to Hopscotch for each student to begin their own video game masterpiece.

iPads given to the correct student

Review all of the coding concepts from the previous two days. Then start the students off with continuing to make progress on the Lightbot levels and challenges. Have the students take a break from the screen with the out of desk conditional card activity.

Then, have students continue to work in the Hopscotch to design a Crossy Road game using the logic skills they have learned over the past two days. Talk about loops and how to use them in the Crossy Road game.

Take a snack break when needed during the class.

Deck of cards conditionals. In groups, we'll create our own game with a deck of cards. Each group will be assigned a suit (i.e. clubs, hearts, diamonds, or spades). Each group will come up with a rule as to what their group will od or say after that suit is pulled form the "main" deck. Each suit's/group's rule should be written on the whiteboard. The game will start by drawing cards from the deck. For each suit that is drawn, the corresponding group will respond with their action or verbal response. Repeat this game a couple of times, and emphasize the idea of conditions that is present within this game.

Students will play the various coding games on the iPad.

Another day with more Lightbot and continuing with Hopscotch. Students finished more levels on Lightbot today and then halfway through class, we changed gears and did more Hopscotch. Students finished their personal games from the day before, and then the entire class made their own rendition of Crossy Road. Each student put their own twists on the game, but by the end of the day, each student had a working version of their own Crossy Road!

- iPads given to the correct student and presentation set up
- may need keyboards for ipads or chromebooks for coding portion of the class

Review the coding concepts learned over the past three days. Introduce python with the Code Em Deck. Go over expressions, statements, variables, and data types. Then, have the class do the out of desk Transistor Acitivty and discuss how this relates to some of the concepts talked about earlier in the week.

Introduce students to a [madlib Python program] (https://github.com/techemstudios/intro_cs/blob/master/PYTHON/python_code/mad_libs/mad_libs.py). Talk about the variables and how to handle user input. Have students edit the mad libs program to create their own. Have students play with other classmates.

Then, have students look at a [calculator Python program] (https://github.com/techemstudios/intro_cs/blob/master/PYTHON/python_code/calculator/calculator.py). Talk about the concept of if elif and how the calculator works. Have the students change various aspects of the code to see what happens.

If time at the end of class, students can either continue to work with Python or play one of the three games they have looked at over the past week.

Take a snack break when needed during the class.

Transistor Activity:

- Select 3 kids, 1 transistor with its 3 connectors (base, collector, and emitter).
- Arrange the collector, transistor, and emitter in a line and stand the base beside the transistor, perpendicular to the line.
- Explain that the transistor can only have 1 tennis ball at a time and give her tennis ball to hold.
- Give the collector several tennis balls and explain that she needs to get those balls to the emitter through the transistor * one ball at a time.
- Explain that the transistor is “closed” because she is holding a tennis ball and therefore blocked.
- So, the base can take away the tennis ball, which will allow the collector to pass balls to the emitter one ball at a time using the “free space” in the transistor.
- The base can stop the flow, by giving the ball back to the transistor — shutting down the collector to emitter flow.

Students will look at various Python programs and change elements of the programs.

Today, each student began working with Python, and each student programmed a working four-function calculator. We taught each student the ins-and-outs of Python and wrapped things up by splitting into groups. Some students wanted to hop back into Hopscotch, while others wanted to keep on with Python. The first group continued making new games, while the second group programmed a choose-your-own adventure game in Python. Tomorrow, we hope to finish our Hopscotch and Python games to wrap up the week.

iPads

To start, the instructors will review all of the coding concepts taught throughout the week. To reinforce those concepts, students will create a Gemometry Dash game on Hopscotch using some of the concepts learned from Crossy Road and some new ones (such as randomness). They will also learn to identify, and solve bugs that happen during the development process. When a screen break is needed, have the students review the binary number system with the out of desk activity from earlier in the week.

If students finish early, they can continue to design games in Hopscotch or continue to work on their levels in Lightbot or Box Island. They can also finish up any activities from earlier in the week that they did not get a chance to finish.

Take a snack break when needed during the class.

Students will review the binary number system by converting harder numbers into binary using whiteboards as class.

Students will work with various apps on the iPad.

For the final day of camp, we spilt into our two groups again, this time with the majority of students doing Python! Our Python group made sure to finish their games today, and they played other students' games and offered feedback and suggestions for improvement! Our second group went back to Hopscotch again today and made their own games. Some made their own versions of Flappy Bird, while others made their own versions of Geometry Dash. At the end of the day (and week), each student had made their own, working game. This week was a blast, and everyone did an amazing job with their code!

Here we will link each student's code and provide instructions for how to access it! Everyone make sure to use a Python Interpreter like repl.it or trinket.io/python to use your code.