Web development is an ideal platform for young learners to enter into the world of computer programming. In this article, I’m going to show why this is true and how easily you can get students into programming as well as helping them to develop essential skills, such as proofreading and problem-solving.
First of all, (X)HTML, the language used to create Web pages, is easy to learn and uses syntax and mechanics found in true programming languages. Like programming languages, (X)HTML utilizes elements and these elements use attributes to better define them. Arguably, this is where the fun begins. As learners become familiar with elements and their attributes, they will certainly want to experiment with them. Changing an attribute’s values can affect such things as physical appearance or placement on the Web page. Young programmers will quickly familiarize themselves with the practice of tweaking elements’ attributes and, undoubtedly, will be very anxious to learn about more elements, even if it requires doing so on their own time.
A very strong argument for introducing learners to (X)HTML is that working with it can cultivate two highly desired abilities -proofreading and debugging skills. These skills are essential in the programming world and proofreading is valued well beyond the world of programming. When a Web page or one of its elements does not look right, there’s only one way to fix it and that’s to find its reference in the code and alter it as needed. This means combing through lines of code sometimes, looking for one thing in particular. Towards this end, problem-solving skills are also developed. If changing the attribute of one element fails to get the desired result, sometimes a developer will have to experiment to find something that works.
Text editors such as Microsoft Notepad or BBedit for Mac are fine for creating Web pages. However, as your burgeoning Web developers’ skills grow, they may feel constrained by the limitations of such tools. Open source Web development suites/HTML editors such as Bluefish or BlueGriffon, can provide them with a more rewarding environment in which to work. Both are WYSIWYG and include tools that will make Web development easier. Better still, with the W3C’s (World Wide Web Consortium) Tidy installed, code can be validated to identify mistakes and to ensure that it meets W3C standards. The W3C also offers a CSS validation service. These tools make it much easier to debug. Tidy can also be used to “tidy up” code so that it’s easier to read. This is a useful habit for budding developers to get into for just this reason.
The final argument for using (X)HTML as a platform for launching the careers of young developers is the cost. Unlike some commercial programming languages, (X)HTML is free. Not only is (X)HTML free, but so are the open source tools mentioned above, Bluefish, BlueGriffon and Tidy. If, like so many schools and districts, your school or district’s budget is tight, then this is a logical course to pursue. Not that expenses matter to the kids. They’ll just sit down and, after a little instruction, start coding.
I’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.
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.
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.
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.
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.
It’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 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.
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?
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.
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.
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.
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.
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.
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.
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
I usually write about open source technology, but now I’m going to address something that is arguably the future of open source, Linux users groups for school-age children. In this case, the users group is the CSE Asian Penguins, a Linux users group for middle school students at the Community School of Excellence in St. Paul, Minnesota. CSE is a Hmong charter school and the Asian Penguins may well be the only Linux users group based in a Hmong charter school. So, who are the CSE Asian Penguins and what do they do?
First of all, the Asian Penguins are sixth, seventh and eighth grade boys and girls who attend CSE. To quote from their Web site “our membership includes Hmong, Karenni, and other types of students.” The common ground upon which they meet is that of Linux and other open source software. They utilize Linux for schoolwork, entertainment and communication. Their name, Asian Penguins, comes from the fact that most of these students’ families came from Asia and that a penguin is the Linux mascot.
So what does this group of like-minded open source enthusiasts do? One of their primary goals is to become extremely familiar with the Linux operating system. They learn to use Linux for school, productivity and life in general. Better still, these young academicians use this knowledge to educate peers and teachers alike. But these scholars take their knowledge of open source beyond the confines of their school and reach out to the surrounding community by bringing computers running Linux to needy families and organizations in the community. Their most recent endeavor, Operation Upgrade, provided CSE with two computer carts, containing 60 refurbished laptops running the latest version of Ubuntu Linux.
So, why do I refer to a users group like the CSE Asian Penguins as the future of open source? These young men and women are learning the ins and outs of Linux at the perfect age. Their interest will no doubt result in the broadening of their computer frontiers into other areas of open source technology. These students will become the software developers and hardware engineers of tomorrow’s open source products. Because they will be well-versed in the use of open source technology, they will be able to readily collaborate with colleagues in other nations in which open source has already been adopted. They will play a great role in the evolution of open source.
If you’d like to know more about the Asian Penguins or would like to find out how you can help, visit their Web site listed below under Resources.
All information was retrieved from https://sites.google.com/a/csemn.org/asian-penguins/home.
One of the great benefits of mailing lists is that you have the opportunity to learn about new things. In this case, the new thing that I have learned about via the schoolforge-discuss mailing list is FisicicaLab, an open source educational application developed to solve physics problems. FisicaLab handles all of the mathematics related to physics, giving the user the ability to focus purely on physics. So, without further adieu, let’s take a closer look at this thought-provoking piece of software.
The graphical interface is similar to that of GIMP, incorporating multiple windows. Unlike GIMP, FisicaLab utilizes only two windows initially. The main window is called the Chalkboard and the other window is entitled Modules and Elements. The Modules and Elements tool enables users to add items to the Chalkboard and to modify those items. Buttons at the top of the Modules and Elements window allow users to toggle between different types of elements. (See the screenshot for a typical session). Additional windows open as needed.
FisicaLab allows users to manipulate virtual objects such a blocks, pulleys and forces. These can be handled and allowed to interact in a variety of ways, including, but not limited to, relative motion, collision and explosion. Other factors that can be adjusted include friction and force, among others. FisicaLab gets a high level of expandability via additional modules which users can install. These modules include, but are not limited to, kinematics of particles, dynamics of particles and calorimetry, ideal gas and expansion.
This brief article is written merely to inform and cannot do this wonderful application justice. If you teach physics, FisicaLab is designed with both instruction and learning in mind.
FisicaLab is available for Linux, Microsoft Windows and Apple MacOS.
GNU FisicaLab Home Page
GNU FisicaLab Manual. (n.d.). GNU General Public License. Retrieved from http://www.gnu.org/software/fisicalab/manual/en/fisicalab/index.html#SEC_Contents.
All images are from the GNU FisicaLab Web site.