As always I promote technology that:
- Enhances or encourages learning. Programming is one great way to implement Computational Thinking into your class.
- The software is free and open source.
Disclaimer: These are intended to be a summary. They are presented in no particular order.
Python
Free? FOSS (Free as in zero cost and open source)
Requires an installation? Yes but there are web based options like sage math notebook. Python comes preinstalled on Mac and Linux.
Strengths:
- The syntax is very high level so you and your students can take your ideas and very quickly turn them into code.
- Python is interpreted so as soon as you press enter or run the code you can see the results.
- It has a large number of modules and support for graphics (e.g. VPython), physics, math, language parsing and more.
- Great for prototyping, web, data mining/processing, and almost anything!
Recommended Tutorials:
Javascript
Free? FOSSRequires an installation? No
Strengths:
- Coupled with HTML5 and CSS allows you to add a lot of power and interactivity to your web pages and applications.
- Gives you to access web APIs (directory of available APIs) and use other services.
FYI: Javascript fails silently (meaning if there is a bug, it just won't work the way you intended, there won't be an error message) so use lots of debugging techniques and logs to debug. This is far easier than it may sound and is useful to learn regardless of what language you are using.
Recommended Tutorial:
Processing
Free? FOSS
Requires an installation? Yes
Strengths:
- Designed to be very easy to make something visual, beautiful and/or interactive.
- With both Processing and Arduino, it provides an introduction to C++ that is less intimidating.
Recommended Tutorials:
Examples in the Processing software (Select File and then Examples)
Arduino
Free?
Strengths:
- Works with off the shelf parts (e.g. motors, LEDs) to cheaply and easily build projects that sense, move, light up, etc.
- Many "shields" are available to easily add functionality like Bluetooth, Wifi, audio, etc.
- Hardware is relatively inexpensive (~$20-30)
- Interfaces easily with Processing to add interactivity and data visualization.
Recommended Tutorials:
Examples in the Arduino software (Select File and then Examples)