0% found this document useful (0 votes)
2 views

Teaching_and_Learning_How_to_Programam_with_Algorithmi

The document discusses Algorithmi, a programming learning tool designed to simplify the process of learning programming through an automatic algorithm evaluation module. It highlights how Algorithmi allows students to create, execute, and evaluate algorithms using a simplified language based on Portugol, while providing feedback on their solutions. The paper also presents the effectiveness of Algorithmi in an educational setting, showcasing its impact on student learning and engagement.

Uploaded by

pauloagsantos
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Teaching_and_Learning_How_to_Programam_with_Algorithmi

The document discusses Algorithmi, a programming learning tool designed to simplify the process of learning programming through an automatic algorithm evaluation module. It highlights how Algorithmi allows students to create, execute, and evaluate algorithms using a simplified language based on Portugol, while providing feedback on their solutions. The paper also presents the effectiveness of Algorithmi in an educational setting, showcasing its impact on student learning and engagement.

Uploaded by

pauloagsantos
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Teaching and Learning How to Programam with

Algorithmi
António Manso Célio Gonçalo Marques Paulo Santo
Ci2, Instituto Politécnico de Tomar Techn&Art, Instituto Politécnico de Unidade Departamental de Tecnologias
Tomar, Portugal Tomar de Informação e Comunicação
[email protected] CAPP, Universidade de Lisboa Instituto Politécnico de Tomar
LabTE, Universidade de Coimbra Tomar, Portugal
Tomar, Portugal [email protected]
[email protected]

Learning to program is a difficult task, therefore the teaching to address this problem, Algorithmi was equipped with the
of programming has been the subject of intense research resulting ability to evaluate the algorithms and help students to develop
in new methods and tools. Algorithmi is one of those tools and its them.
main purpose is to help students learn programming by
simplifying the programming language. This paper presents the The following sections describe Algorithmi’s learning
automatic algorithm evaluation module and the components that environment and the modules enabling the creation and
enable this evaluation. This module was created to help teachers evaluation of algorithms.
evaluate algorithms and to give feedback to students on the quality
of the solutions proposed. The results on the use of the system are II. ALGORITHMI
presented in class. Algorithmi is a programming learning system based on
Portugol language [5]. This system allows to manipulate
Keywords— Algorithmi, Algorithms, Evaluation, Portugol, homogeneous data structures and add functions. These two
Programming languages, Learning to program features allow to expand its usage to different content of
I. INTRODUCTION course units and to develop more complex algorithms.
Algorithmi consists of three models that interact together: The
The first steps in programming learning are the hardest algorithmic language that allows algorithm specification; the
because students must learn a new language and a new way of editor that allows its encoding and execution, and the
communicating with the computer. Traditional programming information system that supports learning.
languages are formal languages with a rigid syntax. They use
words from the English language lexicon and messages have The algorithmic language is based on markers (tokens)
a different structure from natural languages. These languages that are replaced by words of a natural language. The editor
were designed for software development by experienced Fig. 1 allows to shape the language and execute it in an
professionals with in-depth knowledge of logics and environment that can be configured for the student's native
mathematics. They are excellent for app development but are language. The language provides the necessary instructions
not appropriate for teaching programming. Programming to teach the key concepts of algorithmics such as single and
environments are designed to promote the productivity of composite data reporting, computational calculus, instruction
experienced programmers and therefore are complex and execution control and user-defined functions.
difficult to use for those who are making their first steps in this
field.
Teaching the basics of programming languages and
environments designed for industry has proved difficult,
particularly when the target audience is younger. To simplify
the learning of programming, several teaching-oriented
systems have been developed including Portugol IDE[5],
SICAS [6] Flowgorithm [7] and Scratch. It is in this group that
Algorithmi IDE [9] belongs. It is a further development of
Portugol IDE that combines the best features of the remaining
programs to encode and execute algorithms. In addition to
this, Algorithmi provides a new feature that helps students to
develop the algorithm and evaluate its quality. This is the
focus of this paper.
Fig. 1- Algorithmi’s programming environment
Kelleher et al [8] identify three ways to simplify the
learning of programming: 1) simplify programming Fig. 1 shows the environment that enables the student to
mechanisms, 2) learning support and 3) motivation to learn to learn to program in Portuguese. In this editor, the student can
program. draw the flowchart or write the algorithm in text form. The
Constructivist theories have shown that learning instruction syntax is the same in both editing modes.
effectiveness largely depends on the opportunity given to
students to solve practical problems. The high number of
students attending introductory programming courses makes
it difficult to provide individual guidance and support. In order

978-1-7281-3182-5/19/$31.00 ©2019 IEEE


Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:32 UTC from IEEE Xplore. Restrictions apply.
outputs. Problem description may contain images or formulas
for in-depth understanding and links to additional information.
A precise definition of the problem is crucial to understand
what are the user requested data (input) and the console-
provided data (output). Fig. 4 b) shows a possible solution of
the problem in the form of flowchart.
a) b)
Fig. 2 Algorithm conversion to: a) C language; b) Chinese

The algorithm produced by the student can be translated to


more common programming languages: C, C++, C#, java,
python, among others (Fig. 2 a) and pseudocodes in natural
languages: Portuguese, Spanish, French, English, Chinese and
others (Fig. 2 b). The system is also prepared to develop new
translation modules.
The algorithm can be executed in the programming
environment and the student receives a range of information
about its execution such as the amount of memory used, time
of execution, or the instructions and calculations executed
(Fig. 3 a), or the algorithm can be converted to JavaScript
which together with HTML and CSS allow execution in a
browser (Fig. 3 b). b)
a)
Fig. 4 Programming exercise: a) Problem Statement; b) Problem-solving
flowchart

The system provides various types of problems that allow


to teach how to build algorithms, encourage programming
practice and evaluate learning success.
A. Demonstration exercises
Demonstration exercises serve to illustrate the concepts
students are to acquire. In addition to the statement, students
are provided with the algorithm Fig. 4 b) that they can run to
b)
a)
check its operation.

Fig. 3 Algorithm execution: a) System console; b) Browser window.

III. PROGRAMMING EXERCISES


Programming exercises are the cornerstone of the
programming learning process. Solving a problem correctly
and efficiently is a difficult task, but it is deeply rewarding
when it is successfully completed. Usually students are
provided with a problem statement and try to find a solution.
Solution verification and validation is not easy especially for
beginners. This evaluation can be performed by a teacher or
an automatic system such as Mooshak [10] or URI online
Judge[11].
Evaluation by a teacher in the context of class is the most Fig. 5 Step by step execution of an algorithm
appropriate as it provides detailed feedback on the solution or
the mistakes that are being made. The use of automatic Step by step execution Fig. 5 allows the student to control
evaluators allows to assess the validity of the solution outside algorithm execution, visualize the effect of instructions in the
the classroom environment, however these systems are predefined variables and console interaction. Algorithm
usually not incorporated into learning environments and the execution animation is controlled by the student and can also
information they provide in case of mistake is often not be done automatically. Execution produces a history of
sufficiently clear. executed instructions and the instructions affecting the
memory Fig. 6.
The tutor module used in Algorithmi is designed to
address this limitation by providing the student with exercises
that can be corrected automatically by the system. When a
mistake occurs, the system provides a description of the
mistakes made and tools that can be used for correction.
Exercises in Fig. 4 a) include an identifying title, a clear and
detailed description of the objective and a range of inputs and

Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:32 UTC from IEEE Xplore. Restrictions apply.
the exercises and lets the student know whether the resolution
is correct or not and, if not, he/she will point out the mistakes.
In addition to information required for their resolution, the
programming exercises also have a set of data on their
evaluation. This data includes the score points awarded to the
exercise defined by the teacher according to the effort and the
degree of knowledge required for its resolution. Also included
are the creation dates for the exercises and the submission
deadline. By default, the system uses all the score points set
out for the exercise if it is evaluated before the deadline and
uses only half of the points if it is evaluated after that date. The
setting of these dates encourages students to solve exercises
Fig. 6 Data storage history within the agreed deadlines.
In these exercises’ students have the opportunity to Automatic correction of exercises Fig. 8 compares
practice with algorithms in order to learn a new algorithmic students’ algorithm outputs with the expected outputs for each
technique and are free to check the effect of instructions and individual input. For each input, students visualise the output
consolidate knowledge through experimentation. of their algorithm, the expected output, a report on the
differences found and a score. The comparison between the
B. Consolidation exercises inputs and the outputs is done by dividing the text into words
Consolidation exercises are problems with a statement and and numbers, which are to be treated differently. The
an algorithm that does not solve the problem entirely. The evaluator starts by eliminating the input value of the
given algorithm can have mixed up instructions Fig. 7 a) be comparison and only evaluates the result produced by the
incomplete Fig. 7 b) or contain wrong instructions. algorithm.
In either case, students are asked to change the algorithm Numbers are compared according to their value, rather
in order to solve the problem. These exercises serve to test than according to their text representation. This differentiation
their knowledge in a simple way and represent the first effort is crucial for the proper functioning of the system because, in
to learn programming. computing, the values represented in real variables are always
an approximation of the mathematical value and therefore text
C. Training Exercises comparison does not work. The same problem can be solved
In training exercises, students are only provided with the by different algorithms that can use different computational
problem statement Fig. 4 a) and they have to develop the expressions. For example, the square of a number can be
algorithm from scratch. Students must interpret the statement, calculated by the multiplication operator or by the power
see the references accompanying the statement, study the function. The computational result is different while being
inputs and outputs and build an algorithm that converts the mathematically equivalent. As the vast majority of the
inputs into the desired outputs. exercises used to learn programming are numerical
calculation exercises, numbers are of increased importance.
Words are what remains of the algorithm output after
removing inputs, numbers and whitespace characters: space,
tab, and line feed. Words are compared without regard to
accents or capitalisation.
The score of a sample execution, i.e. input-output, is the
weighted average (in percentage) of correct numbers and
words. The score of an exercise is the sum of all scores
obtained in all samples. Product use prevents students from
b)
cheating and from building an algorithm that can print a
a) sample based on written instructions.
Fig. 7 Consolidation exercises: a) Sort instructions; b) Incomplete
algorithm

D. Evaluation Exercises
The evaluation exercises are identical to training exercises,
but inputs and outputs are omitted in the statement.
In these exercises students must identify the inputs and
outputs from the problem statement and develop the algorithm
to solve it. These types of exercises are similar to the problems
students will find in a real-world context.
IV. EXERCISE EVALUATION
An important part of the learning system is the algorithm
evaluator. This evaluation module helps the teacher to score

Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:32 UTC from IEEE Xplore. Restrictions apply.
Fig. 10 Resolution of a worksheet.

VI. USE OF ALGORITHMI IN EDUCATIONAL SETTINGS;


The learning support system was developed and tested
during the academic year 2018-19 in the foundation
programme (CTeSP) in Information Systems Technologies
and Programming taught in the school of technology of the
Instituto Politécnico de Tomar. The pedagogical experience
took place in the course “Programming” that had 24 students
Fig. 8 - Automatic correction of the exercise
enrolled and aimed to provide the basic skills of algorithmics
and computer programming.
V. WORKING ENVIRONMENT
Algorithmi was designed to help students and teachers in “Programming” provides the basics of computing, control
the programming learning process. The information system structures and modularization. Each module contains a set of
allows to provide all the necessary educational material and exercises that allow students to learn and consolidate
collect and process the information resulting from the knowledge and skills and the evaluation module has been
evaluation of programming exercises. adjusted throughout the course.

The exercises are made available to students through The students were provided with a total of 500
worksheets Fig. 9 a), which contain several exercises Fig. 9 programming exercises divided by 17 worksheets and 3
b). Students have access to worksheets through a repository assessment tests in which mistakes were corrected
Fig. 10. In the application students can solve the exercises, automatically by Algorithmi. In each worksheet, teachers
evaluate and score them and store them on their desktop. analysed automatic correction, made a critical judgement of
the results and adjusted the evaluation parameters.

Histogram of scores
4
3
2
1
0
<10 10 11 12 13 14 15 16 17 18 19 20
Fig. 11 Histogram of scores
a) b)
Fig. 9 Algorithmi Repository: a) Worksheets b) Programming Exercise The final score was awarded based on the algorithm
repository submitted by the students. Fig. 11 gives the class’s
Student desktops have the information concerning the histogram of scores showing that only two students failed, and
solved exercises and their score. In order to stimulate the average pass score was 15, with two students having
competition among students, the information system provides obtained 20.
a ranking of the points earned by the students.
At the end of the course, a student survey has been
administered to students in order to assess their satisfaction on
the system.
Considering that the students had very little knowledge of
programming Fig. 12 and taking into account the amount of

Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:32 UTC from IEEE Xplore. Restrictions apply.
assessed exercises and scores obtained, the use of Algorithmi by students will also be added such as text-based algorithm
can be considered a success. programming and improvement of some of the existing
features.
In the future we also intend to extend the system,
particularly the algorithm repository and statistics on the
evaluation results. We believe that the resolution of
programming problems in an individual manner with the
support of a tutor to assess the learning progress contributes to
consolidate knowledge and promote learning success.

BIBLIOGRAPHIC REFERENCES

Fig. 12 Students’ initial knowledge of programming [1] J. Bennedsen e M. E. Caspersen, «Failure Rates in
Introductory Programming», SIGCSE Bull, vol. 39, n. 2, pp.
The vast majority of students considered that the 32–36, Jun. 2007.
autoCorrect system helped them solve the exercises Fig. 13. [2] J. Bennedsen e M. Caspersen, «Failure rates in
This aid allowed the students solve the exercises introductory programming: 12 years later», ACM Inroads,
autonomously since the automatic system corrects the vol. 10, pp. 30–36, Abr. 2019.
mistakes and makes sure that they are aware of the correction.
[3] K. B. Bruce, «Five big open questions in computing
education», ACM Inroads, vol. 9, n. 4, pp. 77–80, Jan. 2018.
[4] C. Watson e F. W. B. Li, «Failure Rates in
Introductory Programming Revisited», em Proceedings of the
2014 Conference on Innovation & Technology in Computer
Science Education, New York, NY, USA, 2014, pp. 39–44.
[5] A. Manso, C. G. Marques, e P. Dias, «Portugol IDE
v3.x: A new environment to teach and learn computer
programming», 2010 IEEE Educ. Eng. Conf. EDUCON 2010,
pp. 1007–1010, 2010.
Fig. 13 AutoCorrect
[6] A. Gomes, C. Areias, J. Henriques, e A. J. Mendes,
«Aprendizagem de programação de computadores:
With respect to correction accuracy, most participants dificuldades e ferramentas de suporte», Rev. Port. Pedagog.,
view the system as fair, but they are not unanimous. pp. 161–179, Jul. 2008.
Algorithm AutoCorrect parameters have been adjusted [7] D. D. Cook, «Flowgorithm: Principles for Teaching
throughout the course to collect a more positive feedback from Introductory Programming Using Flowcharts», em Proc.
students. American Society of Engineering Education Pacific
Southwest Conf.(ASEE/PSW), 2015, pp. 158–167.
[8] C. Kelleher e R. Pausch, «Lowering the Barriers to
Programming: A Taxonomy of Programming Environments
and Languages for Novice Programmers», ACM Comput
Surv, vol. 37, n. 2, pp. 83–137, Jun. 2005.
[9] A. Manso, C. G. Marques, e P. Santos, «Algorithmi:
software system to support the learning of programming», em
2018 International Symposium on Computers in Education
(SIIE), 2018, pp. 1–6.
Fig. 14 Evaluator accuracy [10] J. P. Leal e F. Silva, «Mooshak: a Web-based multi-
site programming contest system», Softw. Pract. Exp., vol. 33,
VII. CONCLUSIONS n. 6, pp. 567–581, 2003.
This paper presents Algorithmi, a software system
designed to support the learning of programming. The system [11] J. L. Bez, N. A. Tonin, e P. R. Rodegheri, «URI
was designed to help teachers in the task of evaluating Online Judge Academic: A tool for algorithms and
algorithms and to provide students with a tutor who assists in programming classes», em 2014 9th International Conference
autonomous learning. on Computer Science Education, 2014, pp. 149–152.

The previous sections described how programming


exercises are built and assessed and how the results are made
available to teachers and students. We are very pleased with
the results of student surveys on the system, but it will be
necessary to assess the impact of the system on learning
through a quasi-experimental study. New features requested

Authorized licensed use limited to: b-on: Instituto Politecnico de Tomar. Downloaded on April 07,2025 at 06:47:32 UTC from IEEE Xplore. Restrictions apply.

You might also like