Skip to content

blocks-to-text/transitional-learning-environments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

Transitional Learning Environments

Choosing the right programming language and environment is one of the most important decisions you make. It's possible to come up with new projects and lessons on the fly, but it is very disruptive for your students' learning to change languages or environments partway through a course.

You know your students, what are they ready for? what would be most engaging for them? The transition from beginner environments to full text-based programming isn't one skill and one step. Choosing an environment that matches your students' current levels and interests is key.

Making the right choice will involve determining which of the skills you want to address (text? notional machine? computational thinking?), the types of projects that will be most effective for your students (visual? investigative?) and contextual constraints (existing lesson material, curricular requirements, technical infrastructure). The different environments provide more or less support for different skills and project types.

This repository is a reference to good programming environments to consider after Scratch and it's ilk, organized by which learning objective they best support. One environment might appear in multiple categories if appropriate.

Index:


Tutorials vs Programming Environments

Before introducing the learning environments it's important to understand the difference between a tutorial and a programming environment.

A programming environment is any application or website that allows you to write, run, debug and generally work with code. When you open a programming environment it will usually be empty because they are designed to let you build anything you can dream of starting with a blank page.

Many tutorials take place in custom programming environments, but are not the same thing. With a tutorial students are guided step-by-step through exploring certain concepts or building a pre-defined project. It would be impractical to develop your own project in a tutorial environment because there may be no mechanism for saving your work, the environment may not allow you to do everything you need, or simply because they are cluttered with many features you won't need.

A good example to make the distinction clear is Khan Academy's JavaScript course. They have both an interactive programming environment:

TOP


Blocks to Text

  • BlockPy
    • Python
    • Edit in blocks, text, or view them both at once
    • Readily import and work with real-world data sets
    • Ideal for first steps into authentic data analysis
    • No runtime visualizations
    • Very helpful error messages, feedback and console
  • Trinket
    • Python, HTML/CSS, Java, R, PyGame
    • Create projects with blocks, see the python side-by-side.
    • A new Python trinket can be generated from any blocks project.
    • Supports turtles, art, music, games, and bare programming
    • Many great tutorials and challenges
    • Can share and remix projects
  • PencilCode
    • CoffeeScript, JavaScript, HTML, CSS
    • Can edit the same project in blocks or code, toggling between the two.
    • Turtles, Music, Art or Adventures
    • Can share and remix projects
  • Mu Editor
    • Python
    • simple and beginner-friendly
    • Comes with turtle built in, but is optional to use
    • Can also write and study any basic python script or project
    • Does not do blocks, but has very helpful auto-complete & pop-up documentation
    • A basic but good debugger for stepping through and visualizing data structures
  • Khan Academy
    • JavaScript
    • Build interactive animations & artworks
    • Detailed and friendly realtime feedback on syntax errors & available language features
    • Can search, share and modify other student's projects online
    • Watch in real-time how changes in code effect changes in animations

TOP


Program Execution

  • Thonny
    • Python
    • Step through program execution down to the expression level
    • Good visualization of function calls
    • Can't step backwards through execution
    • Paired with Birdseye, this is a best option for pure-text programming
  • birdseye
    • Python
    • Not a standalone environment, but a module. It can be used with any standard Python editor/runtime. Stores records of variables & function calls throughout program execution. Students can then go back and inspect or debug their programs
    • Can step forward or backwards
    • Expression-level inspecting
    • Paired with Thonny, this is a best option for pure-text programming
  • Mu Editor
    • Python
    • simple and beginner-friendly
    • Comes with turtle built in, but optional to use
    • Does not do blocks, but has very helpful auto-complete & pop-up documentation
    • A basic but good debugger for stepping through and visualizing data structures

TOP


CS and Working with Data

  • BlockPy
    • Python
    • Edit in blocks, text, or view them both at once
    • Readily import and work with real-world data sets
    • Ideal for first steps into authentic data analysis
    • No runtime visualizations
    • Very helpful error messages, feedback and console
  • Thonny + birdseye
    • Python
    • Step through program execution down to the expression level
    • Inspect programs after they have run
    • Good visualization of function calls
    • Can step forward or backwards
    • Can load and execute any Python code
  • General Purpose Blocks (GP)
    • Blocks for adults and the serious programmer
    • Can do everything Scratch can do
    • Can also accompany learners through systems modeling, data manipulation & analysis
    • Can access API's and cloud data
    • Build and deploy projects
    • Connect to and program hardware
  • DrRacket
    • Racket, a Scheme-like functional language
    • Can also execute student or teacher created variations and extensions of Racket
    • Explore the connections between mathematics, computing theory & programming
    • Study programming languages by extending Racket
    • Build applications for modeling and analysis
    • Share and extend projects between students
  • Snap
    • Blocks for adults and the serious programmer
    • Students can extend and customize blocks
    • Implements full functional programming inspired by Scheme
    • Can do everything Scratch can do

TOP


Software Development

  • General Purpose Blocks (GP)
    • Blocks for adults and the serious programmer
    • Can do everything Scratch can do
    • Can also accompany learners through systems modeling, data manipulation & analysis
    • Can access API's and cloud data
    • Build and deploy projects
    • Connect to and program hardware
  • Snap
    • Blocks for adults and the serious programmer
    • Students can extend and customize blocks
    • Implements full functional programming inspired by Scheme
    • Can do everything Scratch can do
  • Greenfoot
    • Java (classical OOP)
    • Frames-based editing
    • Class hierarchy visualizations
    • Develop and share games

TOP


The Web

JavaScript is not the most beginner-friendly language available. It is very easy for beginners to write code that doesn't break, but the language is complicated making it a challenge to move beyond the basics and to learn good practices.

That said, JavaScript is still a good option as a first language for other reasons. By virtue of being the language used by all web browsers, the possibilities for real-world projects and self-directed learning are endless. Students can immediately begin inspecting the websites they visit on a daily basis, making interactive UI's with HTML & CSS, and share their projects as live websites from day 1.

Three great environments for building & sharing web-base projects. Repl.it & Glitch are both more than beginner environments, while still being quite accessible to beginners they are also great environments for experienced developers to practice and experiment.

In order of recommendation:

  1. glitch
  2. repl.it
  3. codepen

TOP



About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published