After a day of travelling (thanks to the Christchurch fog) I finally made it to the #CS4PS workshops in Christchurch. I'm excited for a full days of networking and learning.
Computer Science in all curriculum areas ....
Computer science can be used to reinforce learning in all curriculum areas - it doesn't have to be an extra!
Debugging
What is debugging? Locating a problem and fixing it
- What language are you going to give your students when they have a coding problem?
- Often there are different ways to achieve the same thing - not a bad thing, just an opportunity for learning.
Three questions to ask your learners:
What did you expect to have happen?
What is actually happening?
What does your code say?
Encourage students to critically think and debug together.
Using Raspberry Pi, circuitry, robots
Littlebits - really good for inputs and outputs
Arduino - using the specific arduino language but through purchasing a book called Sik Guide you are able to get many codes online. Uses a breadboard to house wires (prevents soldering). Teach learners the first 12 projects and then ask them what they'd like to make?
Raspberry Pi - recommended for older students - takes about a week to set up but needs a time commitment
Spheros - use an iPad app to move a robot around the classroom
Edison robots
For teachers with iPad classes (which can't used Scratch) these options will both work on iPads and are very similar to Scratch
Picaxecloud.com
snap.berkeley.edu
Kidbots and Fitness UnPlugged
Have learners draw one exercise on a card. Laminate and keep the cards so learners can program their fitness each week. Use whiteboards to put each card on so you can write the number of times for each card. Select a child to be a programmer - use a lanyard. Reinforce that there is no wrong answer - programming language can be different.
Ideas and ways to use programming in the classroom
Use Scratch to program and say your Mihi
What is a noun/adjective etc - join them together to create a sentence
Site to explore:
Madlibs
Use Scratch to explore your school values - clickable and interactive for the learners to communicate. Learners create the project - when you half make the project, learners will be more creative.
Codeclub.nz -
projects learners can work through easily with check boxes so they are extremely learner friendly
Statistics unit - Searching algorithms
Organise your data in a way that it can be easily searched and you can find what you need easily.
Sequential search
An efficient way to search? Use paper shot glass cups with a number inside each. Teacher becomes the computer and children guess a number - how many guesses could it take? What is the largest amount of guesses? What is the least number of guesses we need? Sometimes it is good to have things out of order. Use a range of numbers which are mixed up so learners can't just "count" the number of containers.
Binary search
Halve the search criteria by using a binary search. Use "I'm thinking of a number" to demonstrate a binary search using only 7 guesses if they are in order. Could use Scratch to make a teaching algorithm using the "higher/lower" game.
Game - find a
treasure chest. Start with a randomized sheet. Graph the results. Second time, use binary guessing system and sheets that are in order - most should guess within 5 guesses using this system. Talk about the differences in the graphs. Could lead to discussions on probability and validity of the data.
Computational Thinking
Computational Thinking is the thought processes involved in formulating problems and
their solutions so that the solutions are represented in a form that can be effectively
carried out by an information-processing agent. - Cuny, Snyder, Wing 2010
Thinking computationally is about solving problems, by creating solutions that teaches students how to:
- describe a problem
- identify the important details to solve the problem
- break the problem down into smaller, logical steps
- use these steps to create a process (algorithm) that solves the problem
- and then evaluate the process
All of the skills are strongly linked. There is often an overlap in descriptions and in examples.
Algorithmic thinking
- is the process of creating algorithms
- is a step by step process that solves a problem or completes a task
- when we create an algorithm to solve a problem we call this an algorithmic solution
Abstraction
- is about simplfying things to help us manage complexity
- it requires identifying what the most important aspects of a problem are and hiding the details/information we don't need to focus on
Decomposition
- breaking things down into the smaller and simpler parts
- it helps to make large problems less intimidating!
- we can break problems down into smaller subproblems and then break these down further and further
- the solutions to each are smaller and simpler and built up to a solution
Generalising and Patterns
Logic
Evaluation
The
Barcode challenge is a great way to challenge your learners using computational thinking. In the classroom you could amaze your students the first time and then teach them how to do it. The same concept (check sum) can be used with books.
Internet of Things
Relevant learning through problem solving local issues using the internet of things. How can you extend past Scratch - coding something for a purpose or to make it 'real' for the learners. One group of Dunedin schools is working on an issue and using this as the motivation for learning -
Picaxe.co.nz. The project aims to create a website were all the setup and resources are available for teachers to use in their classroom.