1 of 24

Getting Students Coding

david.hay@eips.ca

@misterhay

tinyurl.com/studentscoding

2 of 24

Description

Programming is not just for nerds and computer scientists, it is being used across all disciplines. You'll be able to see examples of some easy ways to start programming, including Scratch, Touch Develop, Google Apps Script, Swift, Python, OpenSCAD, and Arduino. Regardless of what, or who, you teach you can find something here that will interest you. In an increasingly automated world, we can prepare students to direct and control the machines.

3 of 24

Hour of Code

A good way to get started

Easy for students and teachers

e.g. code.org/learn

4 of 24

The Importance of Computational Thinking

England

California

New York

Canada

  • B.C.
  • Alberta

Blue collar work?

5 of 24

Definitions

Programming - writing programs

Coding - converting meaning, but has become synonymous with programming

Computer Science - study of theory, methods, and of computers, data, etc.

Computational Thinking - designing computable solutions to problems

6 of 24

http://www.bbc.co.uk/education/guides/zp92mp3/revision

7 of 24

A complex problem is one that, at first glance, we don't know how to solve easily.�Computational thinking involves taking that complex problem and breaking it down into a series of small, more manageable problems (decomposition). Each of these smaller problems can then be looked at individually, considering how similar problems have been solved previously (pattern recognition) and focusing only on the important details, while ignoring irrelevant information (abstraction). Next, simple steps or rules to solve each of the smaller problems can be designed (algorithms).

�Finally, these simple steps or rules are used to program a computer to help solve the complex problem in the best way.

http://www.bbc.co.uk/education/guides/zp92mp3/revision

8 of 24

Programming

Variables

Loops

Conditionals

Functions

9 of 24

Scratch

A drag-and-drop environment designed to “create stories, games, and animations”.

Also great for teaching math and anything else

Online at http://scratch.mit.edu/

10 of 24

Microsoft Touch Develop

Create apps on a phone, tablet, or laptop.

https://www.touchdevelop.com

Includes resources for educators: https://www.touchdevelop.com/docs/teach

11 of 24

MIT App Inventor

Create apps for mobile devices

http://ai2.appinventor.mit.edu

12 of 24

Python

A programming language designed to be easy to read, with simple syntax.

Jupyter Notebook: https://cybera.syzygy.ca

Use it with students: https://repl.it/site/classrooms

Try it online at http://www.trypython.org

(one of my favourites)

13 of 24

Google Apps Script

JavaScript with a cloud-based IDE

http://script.google.com

14 of 24

Swift

Programming for macOS, iOS, etc.

https://developer.apple.com/swift

Check out Swift Playgrounds

15 of 24

OpenSCAD

Programmatically generate 3D CAD objects

(also check out http://openjscad.org/)

16 of 24

Arduino (and ESP8266)

Programmable Microcontroller

  • for controlling LEDs, motors, etc.
    • also compatible boards (e.g. Teensy, Launchpad)

Programming/Circuit simulator at 123d.circuits.io

17 of 24

Lego Mindstorms

RCX, NXT and EV3

NXT-G

Enchanting

other languages

18 of 24

mBot

Programmable with a variation of Scratch:

mBlock

19 of 24

Drones, Lights, etc.

20 of 24

Drag and Drop Coding Apps

Tynker

LightBot

Hopscotch

and many others

Some even appropriate for pre-readers

e.g. Kodable

21 of 24

Online Learning

Perhaps CodeAcademy.com and Khan Academy

  • JavaScript (and jQuery)
  • PHP
  • Python
  • Ruby
  • HTML
  • CSS
  • APIs (e.g. YouTube, Twitter, Evernote)

22 of 24

Without Computers

23 of 24

Programming in...

24 of 24

Python Examples (Jupyter)

github.com/misterhay/math

  • basic math (and variables)
  • patterns (loops)
  • graphing (matplotlib)
  • geometry (turtles)
  • data analysis (open data and matplotlib etc.)