0% found this document useful (0 votes)
12 views6 pages

Algorithmi Software System To Support The Learning of Programming

Algorithmi is a software system developed to enhance the learning of programming by providing an algorithmic language that can be translated into traditional programming languages, along with an editor that minimizes errors and a database of exercises. It aims to address the challenges students face in learning programming, particularly in Portuguese-speaking contexts, and is set to be implemented in introductory programming courses at the Polytechnic Institute of Tomar. The system has been positively received by faculty and students, indicating its potential effectiveness in reducing dropout rates in programming courses.

Uploaded by

pauloagsantos
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views6 pages

Algorithmi Software System To Support The Learning of Programming

Algorithmi is a software system developed to enhance the learning of programming by providing an algorithmic language that can be translated into traditional programming languages, along with an editor that minimizes errors and a database of exercises. It aims to address the challenges students face in learning programming, particularly in Portuguese-speaking contexts, and is set to be implemented in introductory programming courses at the Polytechnic Institute of Tomar. The system has been positively received by faculty and students, indicating its potential effectiveness in reducing dropout rates in programming courses.

Uploaded by

pauloagsantos
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Algorithmi: software system to support the learning

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

Algorithmi consists of three models that interact together:


The algorithmic language which allows algorithm
specification; the editor which allows its encoding and
execution, and the information system that supports learning. TABLE 2 - ARITHMETIC, RELATIONAL AND LOGIC OPERATORS

III. ALGORITHMIC LANGUAGE Symbol Portugol Description


The algorithmic language is a further development of
SET = Atribuition
Portugol whose main feature is to allow students to write
algorithms in their mother tongue. Traditionally,
SUM + Sum
programming learning is done through languages with
English lexicon and a rigid syntax in order to build a safe and
sound software. However, these languages are not SUB - Subtraction
appropriate for teaching the basic concepts of programming.
MULT * Multiplication
The difficulties felt by students with poor English when
using traditional programming languages led us to rewrite DIV / Division
the execution core of Portugol to support different languages
other than Portuguese. This feature allows to include other MOD % Rest of Division
languages, even those that do not use western alphabet such
as Arabian, Chinese or Greek. POWER ^ Power
Algorithmic language is the formal language used to
write algorithms. It is based on symbols translated into the EQUAL == Equality
mother tongue of students. This feature allows an algorithm
written in Portuguese to be visualised and executed for DIFFERENT != Difference
example in French, Greek, Arabian or Russian. This
translation and execution (described further in the text) is GREATHER_THAN > Bigger than
done by the editor.
GREATHER_OR_EQUAL >= Bigger or equal
A. Data types
Table 1 presents simple data types of the algorithmic LESS_THAN < Less than
language used in Portugol. The void type was introduced to
allow the definition of procedures that do not calculate LESS_OR_EQUAL <= Less or equal
values. Integer and real types allow to represent numeric
data, the logic type represents true and false values and the NOT ! Not
text type allows the representation of a set of characters. In
the process of simplifying language, we have eliminated the AND && And
character type as it can be represented by the text type.
OR || Or
B. Computational expressions
For data manipulation arithmetic, logic and relational
operators have been implemented. Table 2 shows the
operators and its encoding in Portugol. Operator symbols are
parametrizable, which allows to change the way how
computational expressions are displayed.
Besides operators in Table 2, the calculation functions
defined are those that traditionally belong to programming
languages. The terms used in these functions can be
parametrized in the mother tongue of students.

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ȑȜȠȢ ȀȪȡȚȠʌȡȩȖȡĮȝȝĮ

FUNCTION função Defines a function IV. ALGORITHM EDITOR


RETURN retornar Returns one value from a An algorithmic language can be encoded and executed
function directly in text form, however, this is an impractical way of
editing algorithms and ineffective for teaching and learning.
For teaching and learning we have developed an editor to
• COMMENTS - Allows to define a comment that helps explore algorithmic language with a simple and attractive
understand the algorithm. The instruction allows to only graphic interface. The editor allows the algorithm to be
comment the lines, which means that there are no edited in text format in the mother tongue of the student or
comments during instructions. using flowcharts. Accumulated experience with the Portugol
language to teach programming in the several degree
• BEGIN – Defines the start of the main program Serves as programmes offered at IPT shows that flowcharts are most
the entry for algorithm execution. suitable to learn basic programming and advanced text
• END – Defines the end of a block: function, decision or editing.
cycle.
A. Flowchart Editor
• DEFINE – Allows to define a variable of a given type
which is initialized with a value. The instruction can also The flowchart editor was designed to minimise student
be used to define data vectors. Vectors can be errors when editing an algorithm. Every algorithm starts
multidimensional and there is no limit to the number of with an execution line and can be replaced by instructions
dimensions. that generate new execution lines. When students eliminate
instructions flow lines are updated. Figure 1 shows the menu

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.

Fig. 4 – Visualization of instruction errors.

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.

Fig. 2 – Instruction insertion

Every instruction allows to write comments which can


later be visualized in the algorithm (figure 3) through context
information.
Fig. 5 – Algorithm execution

Fig. 3 - Visualisation of algorithm comments.

Every instruction has a wizard that helps the student to


write the instructions correctly. The flow line only accepts
instructions if they are syntactically correct, thereby ensuring
that the algorithm will always be compilable. Fig. 6 – Algorithm debugging
When the student eliminates an instruction such as, for
example, the definition of a variable, the algorithm becomes Algorithms may also be debugged through step-by-step
incorrect and he/she perceives it because the colour of the execution. Figure 6 shows an algorithm that fills up the 2x3
instruction changes and context information appears on the matrix through a function that receives a vector as a
display (figure 4). parameter.

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.

Fig. 8 – Exercise correction

Fig. 7 - Programming Exercises

Every exercise has an introduction that may include a


picture and a series of inputs and outputs that make it
correctable (figure 8). The system compares the inputs
produced by the student’s algorithm with expected inputs,
informs the student of the mistakes made and assigns a score
to it. Algorithm assessment compares text and numeric
values in the output in order to detect format and round-off Fig. 9 – Visualization of a solved exercise.
errors, and real values. Format (figure 8) and round-off
errors receive small penalties while absence of text or values B. Plagiarism and authentication
have larger penalties. The presence of unexpected values
and text is also subject to penalties. One major problem of teaching programming is
plagiarism in exercise-solving. It is very easy to make digital
The fact that exercises are self-correctable allows copies and use them as our own. Plagiarism has the negative
students to assess their learning progress. On the other hand, effect in algorithm learning as students are tempted to obtain
it allows the instructors to make more exercises available and the necessary score to pass the course instead of learning
provide support to students in need. Once an exercise is algorithmic techniques that can only be acquired with
solved, students submit it through the system, receive a score practice.
and earn points in their personal account. Thus students
receive a reward for their effort and the motivation for There is a range of tools that allow the instructors to
solving additional exercises. detect plagiarism and take punitive measures with basis on
that information. Punitive measures do not make the
For each exercise the system translates the algorithm into learning process more effective and, therefore, Algorithmi
traditional programming languages (figure 9) such as C, uses a different approach.
C++, Java, Python and others.
Students can access algorithms developed by others,
The translation of algorithms into a high-level study and modify them but cannot copy and use them as their
programming language that can be compiled and executed in

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.

You might also like