Toolbox (software)

Last updated
Logo ToolboX SVG.svg
Developer(s) Francisco Vico at University of Málaga
Initial release2016
Written in GNU Octave
Operating system Ubuntu, Stretch, Raspbian, Lubuntu, Guadalinex
Type Educational software
License GNU General Public License v3
Website ToolboX official site

ToolboX is an integrated development environment designed to introduce computer programming in academic subjects with originally no competences in this matter. [1] [2] Its design is based on the premise that, when solving a problem, a student performs a sequence of computations (i.e., proceeds in an algorithmic way), that can be expressed in a computer language, similarly to how it is done on a notebook or blackboard.


Besides the environment and the academic contents, ToolboX compiles students' usage data and process it by means of big data algorithms based on artificial intelligence (just in the Andalusian region, a million students have access to this tool, after being integrated in the Guadalinex and Guadalinfo repositories). [3] These techniques perform knowledge acquisition about the students community, that can be used afterwards to improve teaching and resource planning. As examples of this knowledge, gifted students, ADHD and dyslexia can be prediagnosed. [4]


ToolboX is a didactic resource that teachers can use at the classroom or in the computer room. When the program is launched, it shows a simple development environment, made of a command window, a text editor to write the program, and an optional graphic window. After choosing a problem list, the student must solve each of them by writing a program. It also provides help commands (to be executed in the command window) and other commands for debugging and running the program. When the solution computed by the program is correct, it shows the next problem, until the whole list is completed.

ToolboX splash.png
Example of math problem in ToolboX.png
Task examples in ToolboX: coding example (top), showing the command and graphic windows to the left, and the program editor to the right; and mathematics (bottom), just with the command and editor windows.

The programming language used is GNU Octave, for being a scientific programming language, widely used in education, science and engineering.

Problem definition

ToolboX is based on the notion of problegram to represent problems of a wide range of academic subjects. The definition includes information like the statement, tips or wiki help, its (alpha)numeric solution, proposed programs (in different languages), and a take-home-message after the task is solved. The relations of problems (or modules) are just lists with the names of the files in JSON format.

 {  "class": "wordproblem",  "statement": "Determine $$ \left(\frac{2}{3}\right)^2$$",  "solution":  "4/9",  "tip"    : ["Raise numerator and denominator to the same power."],  "keyword": ["mathematics", "rationals"],  "wiki"   : ["\poweroffraction"],  "hint" : {    "js"    : "",    "octave": ""  },  "program" : {    "js"    : "  numerator   = pow(2, 2);  denominator = pow(3, 2);  solution = numerator / denominator;  },    "octave": "  numerator   = 2^2  denominator = 3^2  solution = numerator / denominator"  },  "takehomemessage": "The power of a fraction derives from the product of fractions.",  "author": "ToolboX",  "URL"   : "",  "CC"    : "BY-NC-SA 3.0"  }


ToolboX can be installed in the Andalusian public centers from the Guadalinex repository, [5] as well as in the Andalusian network of rural centers Guadalinfo. [6] The program can also be installed out of these networks, in two different ways:

With a deb file

On a computer with a Debian-based Linux distribution (like Ubuntu, Stretch, Raspbian, Lubuntu), ToolboX can be installed from a deb file following these steps:

Ubuntu version history#Ubuntu 16.04 LTS (Xenial Xerus)

$ wget -N --quiet $ sudo apt-get update $ sudo dpkg -i toolbox_latest.deb   dpkg: dependency problems prevent ...    [other messages] $ sudo apt-get -f install   [other messages]   Setting up [dependency]   ... 

Ubuntu version history#Ubuntu 18.04 LTS (Bionic Beaver)

$ wget -N --quiet $ sudo apt-get update $ sudo gdebi toolbox_latest.deb   ... 

With an ISO file

The ISO file must be first downloaded, and then install UNetbootin. Next, a pen drive (+4GB) is plugged in, UNetbootin is run, and the ISO file is burnt as a live version with persistent storage (this process will erase the pen drive, which must be copied beforehand, if needed):

  1. select the downloaded ISO file
  2. specify the size of the persistent storage (optional), for example 1000MB
  3. select the unit where the pen drive is plugged.

When the copy process completes, the system is restarted from the live version on the pen drive, which is selected as the booting method (this might demand interrupting the restart at the beginning by pressing a special key, like ESC, F2 or F9 on the PC, or Alt key on a Mac) to access the BIOS and select the preferred booting method. Once the system has booted from the live version, the main menu can be accessed from the upper-left corner, and ToolboX can be found in the Programming category.

User instructions

After running ToolboX, the screen is divided into three areas: a system console, a text editor, and a graphic window. By typing the 'task' or 'help' commands in the console, information is obtained on the task modules and the list of available commands. Once a task is loaded with command 'task', 'tip' and 'wiki' might provide additional information. Each task is solved by typing a program on the text editor, and running it with the 'go' command in the console.


In version 0.0, it was oriented to the Spanish educational system and included problem lists for all pre-university subjects. It was distributed in a USB flash drive provided to the students, which instructors can apply for online. [7] This drive contains a live Linux distro, the interpreter of the GNU Octave programming language, and the ToolboX and necessary software. [8]

ToolboX is currently distributed under GNU GPLv3 license. Its first version includes a repository of tasks for several subjects of pre-college education (mathematics, physics and chemistry). [9] [10] The source code is available in a public repository.

See also

Related Research Articles


Gnumeric is a spreadsheet program that is part of the GNOME Free Software Desktop Project. Gnumeric version 1.0 was released on 31 December 2001. Gnumeric is distributed as free software under the GNU GPL license; it is intended to replace proprietary spreadsheet programs like Microsoft Excel. Gnumeric was created and developed by Miguel de Icaza, but he has since moved on to other projects. The maintainer as of 2002 was Jody Goldberg.

MATLAB is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.

GNU Octave

GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language. Since it is part of the GNU Project, it is free software under the terms of the GNU General Public License.


Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling, simulation of explicit and implicit dynamical systems and symbolic manipulations.

APT (software) Free software package management system

Advanced Package Tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian, Ubuntu, and related Linux distributions. APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from precompiled files or by compiling source code.

Gambas Integrated development environment for the BASIC dialect Gambas

Gambas is the name of an object-oriented dialect of the BASIC programming language, as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for Gambas Almost Means Basic. Gambas is also the word for prawns in the Spanish, French, and Portuguese languages, from which the project's logos are derived.

In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of the account is not the determining factor; on Unix-like systems, for example, the user with a user identifier (UID) of zero is the superuser, regardless of the name of that account; and in systems which implement a role based security model, any user with the role of superuser can carry out all actions of the superuser account. The principle of least privilege recommends that most users and applications run under an ordinary account to perform their work, as a superuser account is capable of making unrestricted, potentially adverse, system-wide changes.

Live CD

A live CD is a complete bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loading from a hard disk drive. A Live CD allows users to run an operating system for any purpose without installing it or making any changes to the computer's configuration. Live CDs can run on a computer without secondary storage, such as a hard disk drive, or with a corrupted hard disk drive or file system, allowing data recovery.

Synaptic (software) Gtk GUI front end for APT package manager

Synaptic is a GTK-based graphical user interface for the APT package manager used by the Debian Linux distribution and its derivatives. Synaptic is usually used on systems based on deb packages but can also be used on systems based on RPM packages. It can be used to install, remove and upgrade software packages and to add repositories.

Ubuntu Linux distribution based on Debian

Ubuntu is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: Desktop, Server, and Core for Internet of things devices and robots. All the editions can run on the computer alone, or in a virtual machine. Ubuntu is a popular operating system for cloud computing, with support for OpenStack. Ubuntu's default desktop has been GNOME, since version 17.10.

sudo Command on Unix systems to temporarily assume root privileges

sudo is a program for Unix-like computer operating systems that allows users to run programs with the security privileges of another user, by default the superuser. It originally stood for "superuser do" as the older versions of sudo were designed to run commands only as the superuser. However, the later versions added support for running commands not only as the superuser but also as other (restricted) users, and thus it is also commonly expanded as "substitute user do". Although the latter case reflects its current functionality more accurately, sudo is still often called "superuser do" since it is so often used for administrative tasks.

Puppy Linux Lightweight Linux distribution

Puppy Linux is an operating system and family of light-weight Linux distributions that focus on ease of use and minimal memory footprint. The entire system can be run from random-access memory with current versions generally taking up about 600 MB (64-bit), 300 MB (32-bit), allowing the boot medium to be removed after the operating system has started. Applications such as AbiWord, Gnumeric and MPlayer are included, along with a choice of lightweight web browsers and a utility for downloading other packages. The distribution was originally developed by Barry Kauler and other members of the community, until Kauler retired in 2013. The tool Woof can build a Puppy Linux distribution from the binary packages of other Linux distributions.

ClamTk Computer antivirus software for Linux

ClamTk is a free software graphical interface for the ClamAV command line antivirus software program, for Linux desktop users. It provides both on-demand and scheduled scanning. The project was started by Dave Mauroni in February 2004 and remains under development.

Linux Mint Desktop-focused Ubuntu-based Linux distribution

Linux Mint is a community-driven Linux distribution based on Ubuntu, bundled with a variety of free and open-source applications. It can provide full out-of-the-box multimedia support for those who choose to include proprietary software such as multimedia codecs.

The Environment Modules system is a tool to help users manage their Unix or Linux shell environment, by allowing groups of related environment-variable settings to be made or removed dynamically.

Subscript and superscript

A subscript or superscript is a character that is set slightly below or above the normal line of type, respectively. It is usually smaller than the rest of the text. Subscripts appear at or below the baseline, while superscripts are above. Subscripts and superscripts are perhaps most often used in formulas, mathematical expressions, and specifications of chemical compounds and isotopes, but have many other uses as well.

SuperX is a Linux-based computer operating system originally developed in India. SuperX uses a tweaked version of KDE and is aimed towards beginners and casual users. SuperX features a new launcher made in QML that allows users to get a grid view of all icons of the installed applications in the system, the new launcher is called "SuperX App Launcher".

Windows Subsystem for Linux Compatibility layer for running Linux binary executables natively on Windows

Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables natively on Windows 10 and Windows Server 2019.

Zstandard Lossless compression algorithm

Zstandard is a lossless data compression algorithm developed by Yann Collet at Facebook. Zstd is the reference implementation in C. Version 1 of this implementation was released as free software on 31 August 2016.


  1. Vico, Francisco (2017). "ToolboX: Una estrategia transversal para la enseñanza de la programación en entornos educativos". ReVisión. 10 (2): 53–68. ISSN   1989-1199.
  2. Vico, Francisco (14 September 2016). Proyecto ToolboX. Workshop Educación en Informática sub-18 (ei<18). V Congreso Español de Informática. Salamanca. p. 2. Retrieved 10 September 2016.
  3. Vico, Francisco (June 28, 2018). "Inteligencia Artificial para analizar el progreso de los estudiantes con ToolboX". Educación 3.0.
  4. Castillo, Ignacio (July 22, 2018). ""Programar será tan importante como saber leer o escribir"". La opinión de Málaga.
  5. Castillo, Ignacio (July 15, 2018). ""Los profesores son la clave del éxito del proceso de transformación digital"". La opinión de Málaga.
  6. Maldonado, Encarna (March 20, 2017). "Don Alejandro y la pandilla del Minecraft". Málaga hoy.
  7. Maldonado, Encarna (September 12, 2016). "El padre de Alba te enseña a programar". Málaga hoy.
  8. Vico, Francisco. "Proyecto ToolboX". Archived from the original on December 1, 2017. Retrieved September 10, 2016.
  9. Maldonado, Encarna (September 12, 2016). "El padre de Alba te enseña a programar". Málaga hoy.
  10. Maldonado, Encarna (September 24, 2017). "La 'caja de la programación' aterriza en los colegios". Málaga hoy.