snap! block programming for kids …and parents

15
Snap! Block programming for kids …and parents Grzegorz Posyniak SAP Inside Track Walldorf: January, 13th 2018 – #sitwdf #sitkids

Upload: others

Post on 17-Jan-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Snap! Block programming for kids …and parents

Snap!Block programming for kids

…and parents

Grzegorz Posyniak

SAP Inside Track Walldorf: January, 13th 2018 – #sitwdf #sitkids

Page 2: Snap! Block programming for kids …and parents

Playing an instrument or coding?

Page 3: Snap! Block programming for kids …and parents

Why?

• It is not about: • making kids “computer literate”• making kids into hard-working little app developers• raising the next generation of Silicon Valley entrepreneurs

• It is about:• training and experience in problem solving• training and experience in breaking big project down to the minute tasks that,

when put together, are what make it work • natural reality check: interpreters and compilers are unforgiving

Page 4: Snap! Block programming for kids …and parents
Page 5: Snap! Block programming for kids …and parents

Block-based programming languages

• visualizing the structure of control blocks • flow of algorithms • colorful • fun •easy to use • give an immediate feedback ideal motivation

booster

Page 6: Snap! Block programming for kids …and parents

Snap! http://snap.berkeley.edu/

• ready-to-use block-based programming environment• web browser based, pure HTML Canvas and JavaScript • uses modern and open JavaScript application servers • free (libre), open-source• free cloud service (from MioSoft) SAP Cloud Platform• used as teaching tool and research platform around the world• translated in 38 languages • visually stunning • expandable• easy to use

You can also download the latest source code withgit clone https://github.com/jmoenig/Snap--Build-Your-Own-Blocks.git

Page 7: Snap! Block programming for kids …and parents

„Snap is Scheme disguised as Scratch” Brian Harvey

Scratch “low floor”• LEGO - like blocks grammar• 2D cartoon themed microworld (stage, sprites, media) • events, parallelism• interactive, continuous feedback, “liveness”

Scheme “no ceiling”• dynamically typed, lexically scoped variables • first class lists (incl. lists of lists) • lambda (incl. full closures) • first class continuations • proper tail recursion (TCO)

Page 8: Snap! Block programming for kids …and parents

„Snap is Scheme disguised as Scratch” Brian Harvey

Scavenged from LOGO, Smalltalk, SELF “wider walls”• sprites are first class and can be nested • tables • accessing web APIs (robots!) • extensible with JavaScript • “codification” transpiles blocks to any text language • deploy projects as native apps

Link to demo projects• Vee - List of Blocks, Procedures as Data, Recursion • Functions & Custom Control Structures • using MAP for Grahic Effects

Page 9: Snap! Block programming for kids …and parents

University Informatics with Snap! http://bjc.berkeley.edu/

The Beauty and Joy of Computing (BJC) AP® CS Principles - UC Berkeley

• created for UC Berkeley’s new CS10 course named “The Beauty and Joy of Computing” (BJC)

• development has been supported by the NSF, MioSoft, SAP and YC

• curriculum developed at Cal and EDC

• BJC using Snap is a pilot course for the new AP CS Principles framework and has been officially endorsed by the U.S. College Board

• edX MOOC (Berkeley BJC)

• BJC 4 NYC brings Snap! to every high school in New York City

Page 10: Snap! Block programming for kids …and parents

The Beauty and Joy of Computing (BJC) for schools http://bjc.edc.org/In this course, you will create programs using the Snap programming language, you will learn some of the most powerful ideas of computer science, you will be creative, and you will discuss the social implications of computing, thinking deeply about how you can be personally active in promoting the benefits and reducing the possible harms

Unit 1: Introduction to ProgrammingUnit 2: AbstractionUnit 3: Data Processing and ListsUnit 4: How the Internet Works (AP Explore Task)Unit 5: Algorithms and Simulations (AP Create Task)Unit 6: How Computers WorkUnits 1-6 cover all of the AP CSP curriculum framework. You are ready for the test.

Unit 7: Fractals and RecursionUnit 8: Recursive FunctionsUnits 7 and 8 focus on recursion, a beautiful and powerful CS idea that goes beyond the AP CSP Framework and test. These units are perfect to enjoy after that test.

Page 11: Snap! Block programming for kids …and parents

Snap! HuGo (Big pixels with Philips Hue Go)

• Similar to http://arbalet-project.org/

Page 12: Snap! Block programming for kids …and parents

Other Blocks-Based Educational Tools

On the Web:• Scratch• Code.org• App Inventor• Pencil Code• StarLogo Nova• Blockly games• GameBlox

Downloadable:• AgentSheets• Alice• Looking Glass• Kodu

On mobile:• Scratch Jr• Pocket Code• Tynker• Hopscotch

Page 13: Snap! Block programming for kids …and parents

How to learn programming easily?

• We need programing languages with UI which welcome new users, not a technical tool for experienced developers• Recognition, not recall (focus on learnability) • Chunking code to lower cognitive load• Visible grammar rules and types• Program chunks directly manipulable• No tool installing necessary for coding environment• Clear words and high-level abstractions describing simple concepts• Visible runtime state and behavior• Easy to find and apply examples

Programming is the original human-computer interaction, and it remains an unsolved usability challenge.

Page 14: Snap! Block programming for kids …and parents

Links“Beauty and Joy of Computing”

• for Universities: http://bjc.berkeley.edu/

• for High-schools: http://bjc.edc.org/

• “Introduction to Computer Science Principles” (Microsoft TEALS): https://www.gitbook.com/book/teals-introcs/introduction-to-computer-science-principles/details

• Actual course: https://www.edx.org/course?search_query=The+Beauty+and+Joy+of+Computing

• All courses (Youtube): http://bjc.edc.org/Jan2017/bjc-r/cur/teaching-guide/resources/video-list-scratch.html

• Snap! Overview: http://snap.berkeley.edu/snapsource/Snap.pdf

• Snap! Samples http://snap.berkeley.edu/snapsource/SnapExamples.pdf

• Snap! Reference Manual: http://snap.berkeley.edu/SnapManual.pdf

• Snap! Details:

• Frist-Class Sprites: http://snap.berkeley.edu/snapsource/FirstClassSpritesInSnap.pdf

• Tables: http://snap.berkeley.edu/snapsource/TablesInSnap.pdf

• Linked Lists: http://snap.berkeley.edu/snapsource/LinkedListsInSnap.pdf

• Blocks: http://snap.berkeley.edu/snapsource/BlockEnhancementsInSnap.pdf

Mostly known GitHub Forks

• Snap4Arduino http://snap4arduino.rocks/

• Turtlestitch http://www.turtlestitch.org/

• 3D BeetleBlocks http://beetleblocks.com/

Page 15: Snap! Block programming for kids …and parents