• Nenhum resultado encontrado

2. REVISÃO DA LITERATURA

2.2. Programação de computadores

Segundo dados apresentados pelos autores Balanskat e Engelhardt (2015) sinaliza-se que em outubro de 2014, foi lançada oficialmente pelo Vice Presidente da Comissão Europeia a iniciativa all you need is {C<3DE}3, um site para alunos, professores e adultos que queiram experimentar a programação pela primeira vez, descobrindo as suas próprias oportunidades e habilidades em programação. Assim o ano de 2014 foi considerado o ano de “coding in school”, neste contexto surgiu a iniciativa lançada por toda a Europa, o CodeWeek4 evento o qual recebeu muita atenção dos media.

Um ano depois, a programação nas escolas aumentou, e nesse ano o Ex. Presidente dos Estados Unidos de América (USA), Barack Obama, sinalizou a

importância da programação afirmando que todos deveriam aprender a programar desde cedo. Esta mensagem chamou a atenção de iniciativas lideradas pelas organizações que incentivam a programação como a Code.org5 e a Hora do Código6 fazendo com que em alguns países, como por exemplo na Austrália e no Reino Unido, a programação tornou- se parte obrigatória do currículo nacional.

Cabo Verde também enquadrou nesta iniciativa internacional de “Hour of Code7” promovendo a programação e sua difusão, mostrando que qualquer pessoa pode aprender os fundamentos básicos da área da programação. As atividades de

3 http://www.allyouneediscode.eu/ 4 https://codeweek.eu/

5 https://code.org/

6 https://hourofcode.com/br/learn 7 https://hourofcode.com/pt/pt

programação decorreram a nível nacional e consistiu na realização de um desafio pelos alunos sob a coordenação de monitores. Durante “Uma Hora de Código”

crianças/jovens de 12 a 17 anos, programaram, em simultâneo em laboratórios informáticos já instalados em todo o País (47 WebLabs), iniciativa que também teve ampla difusão dos media em Cabo Verde (NOSI, 2018).

Mas o que é a programação de computadores? Para Jenkins (2001):

“Programming is traditional taught in higher education by means of a series of lectures. These lectures cover the basic concepts of programming (variables, loops, conditionals, and so on) in some convenient order based on assumed complexity and also on the particular programming paradigm being taught. These concepts are illustrated using the syntax of a particular language and more details of the language are added gradually as the students become more proficient. The student learn more from lectures, from reading textbooks, and from completing various exercises. Some or all of the exercises form the basics of summative assessment.” (p.41).

Segundo o mesmo autor, a programação de computadores requer alguns conhecimentos (destacou como essenciais: resolução de problemas e a lógica matemática) como apresentados na figura 8:

Figura 8: Conhecimentos requeridos para programação (retirado de Jenkins, 2001, p.87)

No ano seguinte, 2002, o mesmo autor aprofundando o tema em outros estudos acrescenta que:

"Programming" is a complicated business. An experienced programmer draws on many skills and much experience. Some of the skills required bear little obvious relevance to the process of producing program code. Some of the required skills are obvious; problem solving ability and some idea of the mathematics underlying the process are essential. But there are more. A programmer must be able to use the computer effectively, must be able to create the program in a file, compile it, and find the output.” (para.7).

Adquirir e desenvolver conhecimentos de programação é um processo altamente complexo como já afirmavam Rogalski e Samurçay (1990, citado por Robins, Rountree & Rountree, 2003).

“It involves a variety of cognitive activities, and mental representations related to program design, program understanding, modifying, debugging (and documenting). Even at the level of computer literacy, it requires construction of conceptual knowledge, and the structuring of basic operations (such as loops, conditional statements, etc.) into schemas and plans.” (p.12)

Para Lane (2004) a programação de computadores envolve conhecer para além de uma linguagem de programação específica, conhecimentos acerca do processo de resolução de problemas, da conceção/desenho do programa, habilidades de edição e depuração de programas acrescentando também o nível inegável de criatividade que é necessário para se tornar num bom programador.

Nesta mesma linha de pensamento Gomes, Henriques e Mendes (2008),

sinalizam que adquirir competências necessárias para programar envolve para além do conhecimento do domínio da programação em si, uma base sólida de conhecimentos matemáticos bem como uma boa capacidade de resolução de problemas. Chamam atenção ainda que assistir às aulas e estudar através de um livro não é o suficiente para

aprender a programação, uma vez que o ato de programar exige um intenso trabalho extra-aulas.

Outros autores como Ambrósio, Almeida, Macedo, Santos e Franco (2011) sinalizam que programar é visto como uma forma de resolução de problemas que pode ser decomposta em quatro fases: entender o problema, definir/planear uma solução, implementar o plano/solução, e verificar se resultado final atingido está adequado ao problema proposto inicialmente. Refletindo nestas quatro fases, antecipa-se a

diversidade de competências e de conhecimentos envolvidos. Para Resnick (2013):

“The ability to code allows you to “write” new types of things – interactive stories, games, animations, and simulations. And, as with traditional writing, there are powerful reasons for everyone to learn to code. Recently, there has been a surge of interest in learning to code, focusing especially on career opportunities. It is easy to understand why: the number of jobs for programmers and computer scientists is growing rapidly, with demand far outpacing supply” (p.1).

Ala-Mutka (2014) na mesma linha de opinião, e deste modo defende ainda que é importante que ao ensinar os conceitos básicos de programação, em seguida, é

necessário orientar os estudantes com estratégias concretas e eficazes para o desenvolvimento de todo o processo de programação. Acrescenta ainda que:

“Learning programming contains several activities, e.g., learning the language features, program design, and program comprehension. Typical approach in textbooks and programming courses is to start with declarative knowledge about a particular language. However, studies show that it is important to bring also other aspects to the first programming courses.” (p.3). Balanskat e Engelhardt (2015) definem a programação de computadores como:

Computer programming is the process of developing and implementing various sets of instructions to enable a computer to perform a certain task, solve problems, and provide human interactivity. These instructions (source codes which are written in a programming language) are considered computer programs and help the computer to operate smoothly (p.7).

O ensino de programação de computadores tem por objetivo capacitar os estudantes a desenvolverem programas e sistemas computacionais que objetivam a resolução de problemas. Seguidamente apresenta-se em mais detalhes algumas das dificuldades recorrentemente sinalizadas na literatura associadas a esta aprendizagem e posteriormente algumas propostas de minimizá-las.