When students begin to learn how to program computers, the greatest difficulty does not consist in learning a programming language, even considering the various programming paradigms to which it may belong, but rather in the way of conceiving a solution algorithm for a given problem. In this paper methods for learning how to build better programs with iterative and recursive techniques are proposed. Instead of using the traditional and sequential method, following theoretical exposition and creation of algorithms, practical demonstration in a specific framework to write a program in a programming language, program execution and tests, a new approach is introduced where a set of tools, such as Python programming language, Runestone Interactive documents and Online Python tutor, is used to allow the production of enriched documents with text, images, videos, code implementation and execution windows, with the option of step by step running, showing the used data structures and their values evolution, all together in an - Interactive Electronic Document (IED). Students have the opportunity to learn and experience programming concepts in a single document, interactively, increasing learning achievement and level of satisfaction.

1.
P. E.
Silveira
,
Economia & Empresa
21
,
21
51
(
2016
).
2.
D.
Knuth
,
The Art of Computer Programming: Fundamental Algorithms
,
1
(
Addison-Wesley
,
Boston
,
1968
).
3.
E.
Dijkstra
,
A Discipline of Programming
(
Prentice-Hall
,
Englewood Cliffs
,
1976
).
4.
D.
Greis
,
The Science of Programming
(
Springer Verlag
,
New York
,
1981
).
5.
M.
Petkovšek
,
H.
Wilf
and
D.
Zeilberger
,
A=B
(
A K Peters Ltd.
,
Wellesley, MA
,
1996
).
6.
J.
Arsac
, “Teaching programming”, in
The role of Programming in Teaching Informatics, IFIP Working Conference
,
Paris
,
7–9 May, 1984
, edited by edited by
M.
Griffiths
and
E.D.
Tagg
(
North-Holland
,
Amsterdam
,
1985
), pp.
3
6
.
7.
J.
Arsac
,
Préceptes pour Programmer
(
Dunod
,
Paris
,
1991
).
8.
P.
Guo
, “Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education”, in
Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE’13)
, edited by
ACM
(
ACM
,
New York
,
2013
), pp.
579
584
.
9.
P.
Guo
, “Building Tools to Help Students Learn to Program”, in
Communications of the ACM
, December 2017, Vol.
60
No.
12
, edited by
ACM
(
ACM
,
New York
,
2017
), pp.
8
9
.
10.
B.
Miller
and
D.
Ranum
, “
Runestone interactive: tools for creating interactive course materials
”, in
Proceedings of the first ACM conference on Learning @ Scale Conference
, edited by
ACM
(
ACM
,
New York
,
2014
), pp.
213
214
.
11.
R.
Neves
,
M. C.
Neves
and
V.
Teodoro
,
Computers & Geosciences
56
,
119
126
(
2013
).
12.
R.
Neves
,
Revista Lusófona de Educação
35
,
171
189
(
2017
).
13.
S.
Cooper
and
B.
Leeuwen
(Editors),
Alan Turing: His Work and Impact
(
Elsevier Science
,
Amsterdam
,
2013
).
14.
A.
Turing
,
Proc. London. Math. Soc.
42
(
2
),
230
265
(
1937
);
A.
Turing
,
Proc. London. Math. Soc.
43
,
544
546
(
1937
).
15.
S.
Cass
, “The 2017 Top Programming Languages Python jumps to No. 1, and Swift enters the Top Ten”, in
IEEE Spectrum
, 18th July 2017, edited by
IEEE Spectrum
(
IEEE Spectrum
,
New York
,
2017
).
This content is only available via PDF.
You do not currently have access to this content.