Algorithmi Software System To Support The Learning of Programming
Algorithmi Software System To Support The Learning of Programming
of programming
Célio Gonçalo Marques
António Manso Paulo Santos
Department of Information and
Department of Information and Department of Information and
Communication Technologies
Communication Technologies Communication Technologies
Polytechnic Institute of Tomar
Polytechnic Institute of Tomar Polytechnic Institute of Tomar
Tomar, Portugal
Tomar, Portugal Tomar, Portugal
[email protected]
[email protected] [email protected]
Learning programming is a hard frustrating process for Algorithmi, and various Brazilian Portuguese platforms such
students with greatest difficulties. Programming involves as VisualAlg [9], Portugol Studio [10] or G-Portugol [11].
thinking abstractly, which requires motivation and commitment. All of them, however, make use of a textual programming
For this reason, traditional teaching approaches are being language.
replaced by more attractive technological solutions such as Logo
and Scratch. Although learning how to program with these tools When using Portugol IDE [8] to teach algorithmics it was
is extremely fun and easy, they are very different from the observed that in a textual programming language, even in
commercial programming languages students will come across in Portuguese, students have had some trouble with encoding
the working world. This led to the creation of Algorithmi, a the algorithm.
system designed to support the learning of algorithmics
composed by an algorithmic language that can be translated into Thus we analysed new tools used to teach algorithms that
traditional programming languages, an algorithm editor that represented a shift in the classical paradigm for writing
minimises mistakes and corrects algorithms; and an information algorithms resorting to a textual language such as Logo,
system with a database of exercises which can be fed-in by the Scratch, Code.org and Portugol IDE.
instructor. Algorithmi is being developed since 2016 and its
usability was tested by faculty members and students. The A. Logo
enthusiasm was unanimous and, in the 2018/2019 academic Logo [12] was one of the first programming languages
year, Algorithmi will start to be taught in all introductory
designed to teach algorithms to children. The language has a
programming courses offered at IPT, and consequently its
assessment in learning context.
set of controls that allow to move a turtle in an interactive
way. The limited set of Logo controls allows to rapidly
Keywords — Algorithmi, Learning, Information System, learn the language and move forward to learning and
Programming. experimenting with algorithms. Although Logo still uses a
textual language to implement the algorithms, it is equipped
with a visual execution module.
I. INTRODUCTION
Introductory programming courses have a high drop-out B. Scratch
rate, which hinders progression and programme completion
Scratch [13] is a tool to program games, animations and
[1] [2] [3] [4]. As programming is a basic skill required in
interactive stories developed by Lifelong Kindergarten
several areas of computer engineering, failure hampers the
Group at the MIT Media lab. Although it was originally
learning of other related content. Learning how to program is
designed for 8-16 year olds, it is now used by students of all
not an easy task; it requires the combination of personal and
ages. Programming is graphic and makes use of blocks that
cognitive skills that students must develop. Personal skills
fit together to build an algorithm, that is why there is no need
include proactivity, persistence, confidence and
to learn a programming language to learn algorithms.
responsibility. Cognitive skills include analogy, logical
reasoning and abstract thought required to solve computer
problems. However, these skills are not enough. Students C. Code.org
must be able to hierarchize them and use them Code.org [14] is a Web portal designed by Google,
simultaneously [5]. Microsoft, Facebook and Twitter with the aim of sharing
content, courses and classes for algorithm learning. Like
This problem is cross-cutting to all countries, institutions Scratch, Code Studio uses a block-based programming
and teaching levels [6]. To overcome this problem, a wide language in which students are confronted with challenges
range of tools from integrated development environments to involving fictional worlds such as Star Wars or Minecraft.
learning micro-worlds have been created [6]. Although they
are an important contribution to teaching and learning of
D. Portugol IDE
programming, none of these tools has proved effective [7],
which led to the development of Algorithmi in order to Besides allowing the construction of algorithms in textual
reduce the failure rate of IPT students in programming language, Portugol IDE [8], was already equipped with a
courses. module for the creation of flowcharts. Flowcharts have
interesting learning features such as a very limited set of
instructions and simple syntax. However, total freedom
II. ENVIRONMENTS DEVELOPED TO SUPPORT TEACHING AND
between blocks was allowed, enabling the creation of wrong
LEARNING OF PROGRAMMING
flowcharts or flowcharts which, while functionally correct,
There are several platforms that share the same objectives could not be translated into structured programming
of Algorithmi such as Portugol IDE [8], the predecessor of languages.
978-1-5386-6505-3/18/$31.00
Authorized licensed use limited to: b-on: Instituto Politecnico ©2018
de Tomar. Downloaded on April IEEE
07,2025 at 06:47:45 UTC from IEEE Xplore. Restrictions apply.
Although these programming environments are easy to TABLE 1 – DATA TYPES
learn, the problems involved are outside the scope of
programming and transition to traditional programming Symbol Portugol Description
languages is not immediate. There was therefore the need to
create a system that would meet algorithms and computation VOID vazio used in functions that return
learning needs and facilitate the transition to traditional nothing (void)
programming languages. Algorithmi.
INTEGER inteiro integral numbers
Algorithmi is a programming learning system that arose
from the need to further develop Portugol language including
new features such as manipulation of homogeneous data REAL real Real numbers
structures and function introduction. These two features
allow to expand its usage to different content of TEXT texto Set of characters
programming courses/modules and to develop more complex
algorithms. LOGIC lógico logic values
Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:45 UTC from IEEE Xplore. Restrictions apply.
• READ – Allows to read variables from the console. The
instruction syntax allows to read a pre-defined variable or
C. Instructions to read and define the variable simultaneously.
Table 3 shows the instructions defined in the language. • EXECUTE – Executes calculations with computational
expressions. These expressions can have functions
TABLE 3 – CONTROL STRUCTURES defined by the user. It also serves to execute procedures.
• WRITE – Writes to the console the result of a
Symbol Portugol Description computational expression.
COMMENTS // Coments • IF ELSE – Executes flow diversion through a decision.
• WHILE – Executes an initial-condition controlled cycle.
BEGIN inicio Start of main program
• DO – Executes a final-condition controlled cycle.
END fim End of block
• ITERATE – Iterates a numeric set in which start, end and
DEFINE definir Defines stored variables pace are defined.
• JUMP – Changes a cycle flow by interrupting it or
READ ler Reads the value of a variable continuing it to the condition.
from the console
• FUNCTION – Defines a function. Functions may be
EXECUTE executar Executes calculations or iterative or recursive.
functions • RETURN – Returns from a function.
WRITE escrever Writes information on the Table 4 shows the “Hello World” program in algorithmic
console language and its translation to Portuguese and Greek.
IF ELSE se senão Executes decisions TABLE 4 – “HELLO WORLD” PROGRAM IN ALGORITHMIC LANGUAGE,
PORTUGOL AND GREEK.
WHILE enquanto Executes a set of instructions
with initial control BEGIN MAIN_PROGRAM_NAME
WRITE "Hello World"
DO faz Executes a set of instructions END MAIN_PROGRAM_NAME
with final control
inicio ProgramaPrincipal
ITERATE iterar Executes a set of instructions a escrever "Hello World"
pre-determined number of fim ProgramaPrincipal
times
ĮȡȤȓȗȠȣȞ ȀȪȡȚȠʌȡȩȖȡĮȝȝĮ
ȖȡȐijȦ "Hello World"
JUMP saltar Interrupts or continues a cycle IJȑȜȠȢ ȀȪȡȚȠʌȡȩȖȡĮȝȝĮ
Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:45 UTC from IEEE Xplore. Restrictions apply.
that allows the user to replace a flow line (green arrow) by an
instruction.
B. Algorithm Executor
Fig. 1 – Instruction insertion When the algorithm is finished it may rapidly be
executed to check if it is correct (Figure 5). The execution of
Figure 2 shows the variable setting wizard. The example the algorithm allows the user to visualise algorithm inputs
shows the setting of a 2x3 integer matrix. The instructions and outputs and provides some information about their
inserted by students can be written in their mother tongue execution: time, instructions and calculations. This
(green area) or through wizards that help them create the information is important to learn the complexity of
instructions (red area). algorithms and the computational effort required to execute
them.
Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:45 UTC from IEEE Xplore. Restrictions apply.
In this mode, it is possible to graphically display the the respective programming environments shifts the focus of
variables stored for every function and the values that are the programming language to the complex task of creating
being altered by the instructions. It is also possible to see the algorithms.
instructions that are being executed and the history of already
executed instructions. It is also possible to see the functions
and parameters graphically.
V. INFORMATION SYSTEM
Algorithmi is a learning environment that makes use of
an information system to help students to learn programming
and instructors to assess learning outcomes.
The system consists of a server that provides services to
the algorithm editor, and programming exercises for students
as well as information on learning progression.
A. Programming exercises
Algorithmi is comprised of a database containing
problems (figure 7) that guide student in their learning of a
wide range of algorithms (Table 4) from simple to
multidimensional array algorithms with recursive functions.
Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:45 UTC from IEEE Xplore. Restrictions apply.
own. This is achieved through an authentication system in BIBLIOGRAPHIC REFERENCES:
which students’ identity is verified. [1] M. Butler e M. Morgan, “Learning challenges faced by novice
programming students studying high level and low feedback
Authenticated users have access to editor features that are concepts”, ASCILATE 2007 Singapore, 2007, pp. 99-107.
inaccessible to anonymous users. These features also [2] T. Jenkins, “On the difficulty of learning to program”,
become invisible when the algorithm has not been created by Proceedings of the 3rd Annual Conference of the LTSN Centre
the authenticated user. Thus it is possible to visualize for Information and Computer Science, 2002, pp. 27-29.
algorithms produced by third-parties but it is not possible to [3] E. Lahtinen, K. A. Mutka e H. M. Jarvinen, “A Study of the
submit them to the information system. difficulties of novice programmers”, Proceedings of the 10th
Annual SIGCSE Conference on Innovation and Technology in
Computer ITiCSE’05, 2005, pp. 14-18.
VI. CONCLUSION [4] A. Yadin, Reducing the dropout rate in an introductory programming
This paper presents Algorithmi, an information system course. ACM Inroads, 2(4), 2011, pp. 71-76.
developed at the Instituto Politécnico de Tomar. Algorithmi [5] K. Sloane e M. C. Linn, “Instructional Conditions in Pascal
consists of three modules that articulate to provide an Programming Classes”, In R. E. Mayer (Ed.), Teaching and Learning
Computer Programming: Multiple Research Perspective. Hillsdale,
innovative algorithm learning environment. Algorithmic NJ: Lawrence Erlbaum Associates, 1988, pp. 207-235.
token-based language is amorphous. The editor allows to [6] A. J. Gomes, “Dificuldades de aprendizagem de programação de
shape the language and execute it in a configurable computadores: Contributos para a sua compreensão e resolução”,
environment for the mother tongue of the student; the Tese de Doutoramento, Combra: Universidade de Coimbra, 2010.
information system provides the editor with educational [7] J. Hidalgo-Céspedes, G. Marín-Raventós e V. Lara-Villagrán,
content managing student learning. "Learning principles in program visualizations: A systematic
literature review", Frontiers in Education Conference (FIE) 2016
In addition to the technical features already cited, IEEE, 2016, pp. 1-9.
gamification strategies are also used to increase intrinsic [8] A. Manso, C. Marques e P. Dias, “Portugol IDE v3.x: A new
motivation of students through a point system associated to environment to teach and learn computer programming”, In M. C.
the personal account of each student. Gil, E. T. Caro, M. E. Auer e M. P. B. Merino (Cords.), IEEE
EDUCON 2010 Conference - The Future of Global Learning in
The language extension for the manipulation of complex Engineering Education. Madrid: UPM - Servicio de Publicaciones -
EUI – UPM, pp. 1007-1010.
data and the definition of functions that enable Algorithmi to
be used to teach and learn advanced algorithm and data [9] A. C. Nicolodi, “VisualG”, Accessed 23 October 2017 at
http://visualg3.com.br/
structure concepts.
[10] A. Raabe et al., “Portugal Studio”, Accessed 14 May 2018 at
This system arose from the need to reverse failure rates in http://lite.acad.univali.br/portugol/
introductory programming courses and had the collaboration [11] T. Silva, “G-Portugal”, Accessed 8 November 2017 at
of the students participating in the assessment of the system https://sourceforge.net/projects/gpt.berlios/
usability who validated implemented features and suggested [12] H. Abelson, N. Goodman, e L. Rudolph, "LOGO Manual",
Massachusetts: Artificial Intelligence Lab, Massachusetts Institute of
new ones. More advanced-level students also had the Technology, 1974.
opportunity to program some modules of the system. [13] MIT Media Lab, “Scratch”, Accessed 17 November 2017 at
Algorithmi is at the development stage and its features and https://scratch.mit.edu/
usability have been tested during the 2016/2017 2017/2018 [14] Code.org, “Code Studio”, Accessed 17 February 2018
athttps://code.org
academic years. Many corrections have been introduced [15] A. Manso, L. Oliveira, e C. G. C. Marques, “ Ensino da Programação
based on recommendations and detected errors. The através da Linguagem Algorítmica e Fluxográfica”, In C. V.
assessment of the system in terms of learning outcomes for Carvalho, R. Silveira & M. Caeiro (Coord.), TICAI 2009. TIC's para
the CTeSP programme of Information Systems Technologies a Aprendizagem da Engenharia. IEEE, Sociedade de Educação:
and Programming and the bachelor’s degree in Computer Capítulos Espanhol e Português. Porto: Edições Politema, 2011, pp.
Engineering offered at the IPT is planned for the 2018/2019 105-110.
academic year.
Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:45 UTC from IEEE Xplore. Restrictions apply.