Giter Site home page Giter Site logo

snappy's Introduction

SnapPy

A Python tutorial using Snap!

======

SnapPy: Why Do It?

As technology becomes increasingly relevant in our lives, so does the ability to understand, interact with, and build modern technological systems. To do this, programming, the process by which one is able to communicate directly with a computer, has become an extremely important skill to possess. However, to those unacquainted, learning how to program can be a daunting task. Unlike other languages, a single typo in an entire block of code will completely break its functionality. Therefore, the learning curve for the most commonly used programming languages is quite steep and the ability to do something useful requires an enduring commitment. Because of its lack of instant gratification, those who do not know how to program are often disheartened at the process of learning.

Our philosophy is that the current proccess of learning to program by learning a language such as Java or C is flawed. Instead, the process should be split into two stages: (1) learning how to think like a programmer, and (2) learning a programming language. Teaching these two concepts used to be inseparable, however with the invention of graphical programming languages (GPLs), it has now become possible to teach programming without the need to also teach the complex syntax of most programming languages. A graphical programming language is a language that allows users to create programs by manipulating graphical elements rather than writing textual code.

Unlike the syntax of even the most user friendly textual programming languages, the semantics of blocks in graphical programming languages can be easily inferred without any prior coding knowledge. Additionally, blocks are always visible and therefore the user does not need to memorize the syntax of a block, only that a block with a particular functionality exists. These features make graphical programming languages an ideal tool for teaching beginners the basics of computer programming. They have the unique ability to give users a hands on experience with the core workflow and components of programming without bogging them down in tedious syntax.

Because of this, GPLs are becoming increasingly popular as a way to introduce kids to computer programming for the first time in a fun and engaging manner. However, for many reasons that should be apparent, graphical programming languages have their limitations. The biggest limitation is that blocks are merely a high level abstraction of underlying textual code and have no support outside of their environment. Therefore, while GPLs are useful and cool, at this time, the main end goal must still be to teach beginners how to harness the powers of a textual programming language. As was mentioned above, GPLs are popular among kids, however after reaching the boundaries of what a GPL can offer, these beginners have no obvious method of converting their knowledge of GPLs into the knowledge of a more useful textual programming language.

Therefore, SnapPy is a tutorial that uses snap to introduce the basics of python.

snappy's People

Contributors

sktank avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

snappy's Issues

Is this running online anywhere?

I'm curious, I'd love to play with this.

(I haven't had a chance to download and run myself, but maybe in a couple weeks.)

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.