Home » Technology » Computer Programming

Category Archives: Computer Programming

Little Wizard -programming environment for children

Little Wizard logoI’ve recently come across a very engaging platform through which children can learn to write computer programs.  Little Wizard is an open source application designed to help students in the primary grades learn the concepts that are common in all programming languages, such as variables, loops and conditions.  Students can do all this using the mouse.  Let’s get up front and personal with Little Wizard.

Little Wizard, energize education through open source
Little Wizard at start up.

The interface is WYSIWYG and rather delightful in its use of colorful, engaging images.  At the top of the window is a menu bar and below this is a toolbar which, by default, has the Program button already depressed.  This is referred to as program view.  Below the toolbar is a row of tabs, called the palette.  Below this is a row of colorful buttons used for writing computer programs by simply clicking on and dragging program elements represented by the buttons to the program grid below.  This is where users write their programs.  One really cool feature is that users can easily toggle views of their programs by clicking on buttons on the toolbar.  Users can bounce from program view to world view to mixed view.  World view presents the world grid which allows users to create and alter the wizard’s world.  Mixed view displays both the world grid and the program grid.  Integrated tooltips nicely enhance functionality.

little wizard,energize education
A simple program being executed.

So, what kind of programs can you write with Little Wizard?  Looking at the tabs in the palette should give you a clue: Wizard, Math, Variables, Conditions and Loops and Other.  Each tab has icons, which represent different program elements.  Wizard controls functions such as movement of the Little Wizard icon.  Math is where you find numbers and their operators.  Variables provides the ability to add variables to your program.  Conditions and Loops allows for conditions (e.g. if/else statements) and loops (e.g. repeat/until statements) to be placed in a program.  Other allows users to assign positions or to prompt for user input.  Using these tools, young programmers can make the wizard move, wait for user input or even change his world.

little wizard, energize education
Little Wizard creates a world.

So what happens if you need help getting started?  The Little Wizard Web site offers a free tutorial that will guide you through Little Wizard’s interface and to help you learn to use the building blocks of computer programming.  Sample programs are provided that give Little Wizard the opportunity to show you what it can do.  In no time, users can start developing and bringing to life their own ideas.  Now stop reading this and download Little Wizard so you can see what your students will create.

Little Wizard is available for Linux and Microsoft Windows.

Resources

Little Wizard Tutorial

References

Kirillov, K.  (n.d.).  Little Wizard’s home page: tutorial.   GNU General Public License.  Retrieved from http://littlewizard.sourceforge.net/tutorial.html.

Kwadrans, M.  (n.d.).  Little wizard [computer software].  GNU General Public License.

 

 

 

Dr. Geo -Be a Geometer!

dr.geo,energize education,geometry software,energize education through open sourceIt’s been almost three years since a wrote a little blurb on an exciting application that allows learners to explore geometry.  That application was Dr. Geo and its developers recently, and with much-deserved pride, announced the release of its latest version.  With that in mind, I thought that maybe it was time to take an in-depth look at Dr. Geo.

dr.geo,energize education,energize education through open source
Object formatting is easy with the Property option under the Edit menu.

Dr. Geo is an open source application that provides an engaging environment through which school-age learners may explore, and learn about, geometry.  So, what can users do with Dr. Geo? Users have the opportunity to work with the building blocks of geometry, including points, line segments and rays.  Users can create arcs, circles and polygons.  Vectors can be used to accurately assign points.  Virtually anything geometric in nature can be created.

dr. geo,energize education,christopher whittum
The author’s burgeoning creation.

What’s even more amazing is that Dr. Geo allows users to bring their creations to life through computer programming.  The programming language used in Dr. Geo is the same one used to create Dr. Geo –Smalltalk.  Some of my regular readers may remember a blog that I wrote a while back on Pharo, a computer programming environment.  Pharo also uses Smalltalk.  Smalltalk is an open source object-oriented programming language.  This simply means that it focuses on objects and data rather than commands and logic.  Portland State University computer science professor Harry H. Porter III (March 24, 2003) describes Smalltalk as “highly efficient, extremely portable, easy to use, and very reliable. But more importantly, Smalltalk is still the most enjoyable language in which to program.”  What better tool to employ to introduce learners to computer programming?

dr.geo, energizxe education
Not ready to program yet? Use a wizard to create a Macro.

As can be seen in the screenshots, Dr. Geo’s interface is very straightforward.  All actions can be performed readily via a menu, a toolbar or tabs, all located at the top of the Dr. Geo window.  This traditional interface certainly minimizes the learning curve.  Even without having used the software, users can jump right in and begin creating.  Functionality is also enhanced by tooltips, which provide a quick way to identify tools.

So, what are you waiting for?  Your students’ potential as geometricians and computer programmers is waiting to be unleashed.

Dr. Geo is available for Linux, Microsoft Windows and Apple MacOS.

Resources

Dr. Geo Home Page

Dr. Geo User Guide and Video Tutorial.

Smalltalk Users Manual

References

Fernandes. H.  (2016).  GNU Dr. Geo [computer software].  GNU and MIT General Public Licenses.

Porter III, H.P. (2003). Smalltalk: a white paper overview.  Portland OR: Portland State University.  Retrieved from http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html#Basic%20OOP%20Concepts%20and%20Terminology.

 

ExpEYES… Your Lab@Home

expeyes,energize education ExpEYES is a low-cost open source framework of computer hardware and software that provides a means to perform low-cost science experiments using computers.  ExpEYES offers formats designed for students from high school on.  Let’s take a look at what can be done with ExpEYES.

expeyes,energize educationAccording to its Web site, ExpEYES is a tool for learning science through exploration and experimentation, It includes integrated an oscilloscope and a signal generator and is powered via USB.  ExpEYES offers 12-bit analog resolution, accurate measurements and is physically compact, for easy relocation.  The software for ExpEYES is written in Python, an open source programming language.  The online manual presents 50 (yes, fifty!) experiments that users can duplicate and, perhaps tha coolest feature of all, others can be easily created and added to the list.

expeyes,energize education
Make your own AC generator with ExpEYES.

 

So, from where does this marvel of scientific exploration come?  ExpEYES was developed by the PHOENIX project of Inter-University Accelerator Centre (IUAC) of New Delhi.  The long-term goal of this project is to make the equipment and methods used in research available to the student community.  In science, experiments are performed, data is collected and analyzed.  Conclusions drawn.  The difference offered by ExpEYEs is the fact that the equipment is affordable.

water-conductivity-hr1
Measuring water conductivity

So, what kind of experiments can a burgeoning scientist perform with ExpEYES?  According to the ExpEYES User’s Manual, users can conduct experiments involving electricity, magnetism, electronics, sound, mechanics, optics, heat and computer programming.  In terms of electricity, young scientists can perform experiments involving, among many other topics, voltage measurement, water conductivity and AC circuit study.  Regarding electricity and magnetism, possible experiments include creating a simple AC generator and making an electromagnet.  Some of the other experiments include amplitude and frequency modulation (electronics), sound velocity, using a stroboscope and hardware communication.

expeyes,energize education,open source experiments
What experiments could your students conduct with ExpEYES?

 

As potentially enriching as ExpEYES sounds, it is just one of several open source technology products created as part of the PHOENIX Project.  If you’re interested in learning more about this and other opportunities to cultivate the scientists and engineers in your school, you should check out the ExpEYES Web site.  Your students will thank you through their creations, if not through their words.

Thanks to Ajith Kumar for his support, the contributions that he provided and for suggested modifications.

ExpEYES is available for Linux and Microsoft Windows.  It is available in Canada and the UK.

Resources

ExpEYES Web site

The PHOENIX Project

References

ExpEYES junior user’s manual: experiments for young engineers and scientists.  n.d.). New Delhi: Inter-University Accelerator Centre. GNU General Public License.  Retrieved from http://www.iuac.res.in/~elab/expeyes/Documents/eyesj-a4.pdf.

Ozark -a Readable Open Source Programming Language

ozark programming language, energize education
The Ozark logo

Undoubtedly, one of the best ways to draw students into STEM fields is computer programming. But which programming language do you use? Some say Python, others suggest JavaScript. I propose that the ideal programming language for new learners is one that is approachable and that narrows the margin for error. I understand that every programmer needs to learn to debug code, but this can be intimidating to new learners. Let’s take a look at a programming language that meets both of my aforementioned criteria, Ozark.

Ozark is an object-oriented programming language designed for building software that is readable and reusable. So, what is “object-oriented Programming”? According to TechTarget (2015), object-oriented programming OOP) utilizes a programming language that focuses on objects rather than actions and data rather than logic. In brief, the programmer identifies the objects he or she wants to manipulate and the relationship(s) of these objects, often referred to as data modeling. Each object is categorized and the category determines the type of data assigned to the object. If this sounds confusing, think of a toolbox. Each tool has a specific purpose. Object-oriented programming allows the programmer to define the tools and their purposes.

ozark programming language,energize education
Ozark at work.

The philosophy behind Ozark is that of strict code formatting. What this means to users is that there is only one way to do each function. This minimizes error potential. For example, look at a word processor. How many ways are there to perform a task, such as text alignment formatting? At least two methods immediately come to mind. Imagine if there was only one way to do this. You would save much time, as you wouldn’t have to correct mistakes made by invoking the wrong method. Many programming languages work in a similar fashion as there may be more than one way to do something. Choose the wrong one and your program doesn’t work correctly. This scenario is eliminated in Ozark. Strict formatting also means that even if you are unfamiliar with a particular application written in Ozark, you should have little trouble understanding its code.

Ozark is still in its early development stages. In fact, the complier is still under development. However, though you cannot execute programs created in Ozark, you can still write the code, which is great training and practice. For more information about Ozark or how you can help, please check out the Ozone Web Site (link provided below).

All images are from the Ozark Web site and are the property of Finch Software.

Resources

The Ozark Web Site.

References

Ozark Language – Documentation. (n.d.). San Diego: Finch Software.

What is object-oriented programming? (2015). TechTarget. Retrieved from http://searchsoa.techtarget.com/definition/object-oriented-programming

QGIS -An Open Source Geographic Information System

energize education, qgis
The QGIS logo

Today I want to take a look at QGIS, a free, open source Geographic Information System. So, what is a geographic information system? The U.S. Government Accountability Office (February 2015) defines a geographic information system as “a computer system for capturing, storing, checking, and displaying data related to positions on Earth’s surface. GIS can show many different kinds of data on one map, such as streets, buildings, and vegetation. This enables people to more easily see, analyze, and understand patterns and relationships.” Imagine the kinds of classroom activities that you could develop for Science and Social Studies classes with this kind of software. It’s comparable to ESRI, but without the rather hefty expense that often comes with proprietary technology.

QGIS is actually comprised of several components. The first is the QGIS Desktop. This component allows users to create, view, analyze and share geospatial information. The QGIS Browser allows users to review and organize their data. QGIS Server allows users to share data and to choose which aspects of the data are viewable by others. The QGIS Web Client makes publishing maps online a breeze. They can also be enhanced with symbols and labels. The final component, QGIS on Android, is at the beta level of development, but experienced users are welcome to try it out.

qgis,energize education
A QGIS session

So what can you do with QGIS? You can create, edit, manage and export data using a variety of tools such as OpenStreetMap integration. There are digitizing tools that support OCR and GPS. Spatial data can be analyzed in terms of vectors, geoprocessing and geometry, among other criteria. QGIS also integrates 400 tools from GRASS GIS. Additionally, QGIS can share your work online as a WCS (World Coverage Service), a WMS (Web Map Service) or as a WFS (World Feature Service). In short, virtually anything that a user would want to do with a map, he or she can do with QGIS. Imagine the projects students could complete.

QGIS owes much of its functionality and versatility to the wide variety of plugins that are available. The core plugins installed by default include, but are by no means limited to, GPS Tools, Raster Terrain Analysis, interpolation and a Road Graph plugin. Furthermore, a real strength of this software, especially in terms of expandability, is the integration of the Python programming language. Python has been used to develop many of the external pulugins available through the QGIS community. As part of this integration, QGIS offers a Python console through the use of which new plugins can be developed. How’s that for growth potential?

qgis,energize education,energize education through open source
QGIS displays information about the habitat of the Asian Lynx.

Python and QGIS combine with OpenLayers, an open source mapping library, and APIs (Application Program Interface) to create some incredible maps. Maps can be generated that, with a click, can move from one location to another. Maps can be developed that zoom in and out as needed with a mouse click. Users can even toggle between different types of maps for the same regions. For example, QGIS was used recently by undergraduate students to analyze the habitat of the Asian Lynx in the Carpathian mountains. you can view some of their findings in the screenshot at left.

energize education through open source,qgis
QGIS running on Linux in GNOME

You’re thinking, ‘This is great! But how long does it take to learn to use QGIS or become proficient in it enough to teach my students?” The good news is that there is a large amount of documentation available to help new users install and learn to run QGIS. Most of the literature is available on the QGIS Web site and I have provided links directly to some of them below. Regarding the Python programming language, it is fairly easy to learn to use and there are plenty of free tutorials available online. As to using this application with students, you could argue that, because of Python integration, QGIS will grow with your learners.

QGIS is available for Linux, Microsoft Windows and MacOS X.

Thanks to Charles Cossé for suggesting this topic. All images have come from the QGIS home page.

Resources

QGIS Web Site

A Gentle Introduction to GIS

References

Dichte, A., Ehrminger, L., Garcia Travesi Reyes, S., Hoppe, T. and Winger, D. Gnilke, A., Hiltunen & Mund, J.P. (August 2015). Lynx habitat analysis in the Southern Carpathians. Creative Commons. Retrieved from http://www.qgis.org/en/site/about/case_studies/europe_lynx.html.

QGIS user guide. Release 2.8. (14 November 2015). The QGIS Development Team. GNU Venereal Public License. Retrieved from http://docs.qgis.org/2.8/pdf/en/QGIS-2.8-UserGuide-en.pdf.

U.S Government Accountability Office. (February 2015). Progress Needed on Identifying Expenditures, Building and Utilizing a Data Infrastructure, and Reducing Duplicative Efforts (Publication No. GAO-15-193). Retrieved from http://www.gao.gov/assets/670/668494.pdf.

Pharo -The Immersive Programming Experience

I’d like to focus on computer programming in this installment.  Towards this end, I’d like to take a look at Pharo, a software development environment released under the MIT License (similar to GPL, see link below).  Pharo provides a graphical way to utilize the Smalltalk programming language, the programming language used to write Dr. Geo, one of my favorite geometry exploration programs.

phaor logo,energize education
The Pharo logo

First of all, Pharo’s development team refers to Pharo as an “immersive programming environment.” What does this mean? Dictionary.com defines immersive as an adjective “noting or pertaining to digital technology or images that deeply involve one’s senses and may create an altered mental state.” Techopedia defines a programming environment as “a collection of procedures and tools for developing, testing and debugging an application or program.” Another name for such an environment is Integrated Development Environment or IDE. What this means is that Pharo provides a graphical interface for Smalltalk that is so intuitive, full-featured and graceful that it allows you to code without getting in the way.

Before I go further, I’d like to share a few things from Pharo’s mission statement.  The Pharo team seeks to provide an accessible and innovative free, open source programming environment.  These people strive to keep Pharo small, stable and equipped with excellent tools key for software development.  Finally, Pharo seeks to foster a healthy ecosystem of contributors who strive to maintain and enhance this application.

pharo, energize educaton through open source
Pharo at work.

Smalltalk is an object-oriented programming language, which, in layman’s terms means that it focuses more on objects and data rather than on commands, or actions, and logic.  Keeping this in mind, Pharo is designed to be very straightforward to use and to provide prompt feedback.  Pharo also includes an IDE (Integrated Development Environment), from which it draws its simplicity.  Furthermore, Pharo offers a high level of diversity through a large library and a set of external applications.  Pharo also includes strong support for business use in the form of organizations, such as the Pharo Industrial Consortium and an association of users, the Pharo Association.

pharo,energize education
Pharo works its magic.

I’d like to take a look at Pharo’s interface as this is key to Pharo’s ease of use.  How often have you launched a new program with some trepidation, wondering with what will I be presented?  How intuitive will the interface be?  How long will it take me to figure out how to make this thing do what I need it to do?  Arguably, Pharo’s interface, or lack thereof, is not just one of its strengths.  It’s also aesthetically appealing.  No need for a menu bar or tool bar, as Pharo relies on context-sensitive menus for its functionally.  Simply click in the main window to open the World Menu, which is a general menu, from which you can select Workspace.  A Workspace is like an artist’s sketchpad upon which you create your application.  Once a Workspace has been opened, you can use contextual menus to perform desired tasks.

So, what’s the best thing about Pharo?  It could be that it is free to download.  It could be the number of free books about Pharo available online.  It could also be the extensive support community.  I leave it to you, the reader, to download and install Pharo.  Then start using it and find out for yourself what you think is the best thing about Pharo.

Pharo is available for Microsoft Windows, Apple MacOS and GNU/Linux.

Resources

The MIT License

Pharo Website

References

Thanks to the people at Pharo for permission to use their screenshots for this article.

Black, A.P., Ducasse, S., Nierstrasz, O., Pollet, D., Cassou, D. & Denker, M.  (2009). Pharo by example.  Switzerland: Square Bracket Associates.  Retrieved http://pharobyexample.org/versions/PBE1-2009-10-28.pdf

Immersive. (n.d.). In Dictionary.com. Retrieved from http://dictionary.reference.com/browse/immersive?s=t

Pharo [computer software].  (n.d.).  GNU General Public License.

programming environment. (n.d.). Techopedia. Retrieved from https://www.techopedia.com/definition/16376/development-environment

Colobot: Learn to Program through a 3-D Strategy Game

While looking for a blog topic, I came across Colobot, a real-time, 3-D first-person strategy game that teaches users how to write computer programs. The pretense is an engaging one. The user is an astronaut who is equipped with robots. The user must use these robots (called “bots”) to make the planet he or she is currently on safe for human colonization (thus the name (“colony”+”robot”=”Colobot”)). In order to get the bots to accomplish tasks, the user must write the commands in CBOT, Colobot’s programming language, which is similar to the C or Java programming languages in its syntax.

"energize education through open source,open source educational software,open source instructional software,free educational software,free instructional software,open source educational technology,open source instructional technology,free educational technology,free instructional technology,christopher whitttum,christopher d. whittum
Colobot’s Switchboard

Upon initial launch, the user is prompted to create an user account and character. The next screen presents the user with a switchboard interface that is graphically enhanced to make it appear similar to a control panel for a highly technical piece of equipment. Here users can configure Colobot and choose what kind of scenario they want to play out. The screenshot on the left shows this screen. There is a series of tutorials to help new users get accustomed to Colobot and the CBOT language, so this is what the author chose to do while experimenting with Colobot. The goals of each tutorial vary so the user can get a very clear idea of the missions that lay ahead.

"energize education through open source,open source educational software,open source instructional software,free educational software,free instructional software,open source educational technology,open source instructional technology,free educational technology,free instructional technology,christopher whitttum,christopher d. whittum
IMy CBOT script.

Once the game has begun, the user finds him or herself in the role of the astronaut. A button in the upper left corner allows for users to toggle between being the astronaut and being one of the bots. To command a bot, the user must open the Program editor (shown in the screenshot at right). Here the user instructs the bot on what to do. Commands include movement, rotation, location scanning and object manipulation, among other things. Looking at the simple script that the author created, you can see that the bot has been instructed to turn ninety degrees left (to turn right, -90 would be used) and to fire its flame cannon at the spider. Clicking the Execute/stop button will verify that the code will work. Click on the OK button and the program is executed (see the screenshot below).

"energize education through open source,open source educational software,open source instructional software,free educational software,free instructional software,open source educational technology,open source instructional technology,free educational technology,free instructional technology,christopher whitttum,christopher d. whittum,colobot
Take that, spider!

One of the great components of this software is the help feature integrated into the Program editor. The help provided includes both general assistance relating to the CBOT language as well as assistance writing a program for the given training scenario. In the first instructional scenario, users are even provided with the complete program to complete the mission. The author called upon this integrated help repeatedly while learning to use Colobot and found it to be very helpful. The screenshot below shows a typical help session.

"energize education through open source,open source educational software,open source instructional software,free educational software,free instructional software,open source educational technology,open source instructional technology,free educational technology,free instructional technology,christopher whitttum,christopher d. whittum,colobot,stem,programming,compputer programming,computer programming tutorials
All the help you’ll need…

In closing, I just want to say that this is an engaging and imaginative way to teach young people how write computer programs. This application is greatly enhanced by slick, colorful graphics and fun, realistic sound effects. When users learn to write complete programs (as opposed to doing things one step at a time as the author did) that’s when things really become visually appealing. It’s fun and fascinating to watch a bot complete a task and automatically go on to the next one like a, you guessed it, robot. Colobot is available on Linux and Microsoft Windows platforms.

"energize education through open source,open source educational software,open source instructional software,free educational software,free instructional software,open source educational technology,open source instructional technology,free educational technology,free instructional technology,christopher whitttum,christopher d. whittum,colobot
Fireworks to celebrate a completed mission.

Resources

The International Colobot Community

References

Colobot [software]. (n.d.). GNU General Public License.