Introduzindo Programação de Computadores e PBL com Python e

Propaganda
INTRODUZINDO PROGRAMAÇÃO DE COMPUTADORES E PBL
COM PYTHON E APP INVENTOR
João Pedro Pereira de Cerqueira Cardoso – [email protected]
Lucas Conceição Morais – [email protected]
Carlos Alberto Rodrigues – [email protected]
Roberto Almeida Bittencourt – [email protected]
Universidade Estadual de Feira de Santana, DEXA
Avenida Transnordestina, S/N , Novo Horizonte
44-036-900 – Feira de Santana – BA
Resumo: A transição do ensino médio para a educação superior é repleta de expectativas e
ansiedade para os recém-chegados. Experiências de recepção de estudantes calouros são
uma alternativa comum para reduzir problemas nesta transição, assim como para facilitar a
inserção dos recém-chegados ao mundo universitário. No curso de Engenharia de
Computação da Universidade Estadual de Feira de Santana, as primeiras dificuldades estão
normalmente ligadas à aprendizagem de programação de computadores e à adaptação à
metodologia de aprendizagem baseada em problemas (PBL). Este trabalho relata duas
oficinas de aprendizagem de programação e PBL oferecidas para estudantes deste curso
durante uma Semana de Integração de Engenharia de Computação. Nestas oficinas,
utilizamos a linguagem de programação Python e a ferramenta App Inventor para facilitar o
processo de aprendizagem. As principais lições aprendidas foram: o valor do aprendizado
por meio de problemas, a necessidade de propor bons problemas, o feedback rápido
oferecido pelas ferramentas utilizadas e os benefícios de uma linguagem casual e
descontraída. As oficinas foram bem recebidas pelos estudantes e pretendemos aperfeiçoá-las
e continuar oferecendo-as nas próximas semanas de integração do curso.
Palavras-chave: aprendizagem, programação, ambientes lúdicos, Greenfoot, App Inventor.
1.
INTRODUÇÃO
A transição do ensino médio para o ensino superior pode ser um desafio para muitos
estudantes, especialmente ao sair de um ambiente escolar baseado em aulas expositivas onde
costumam se comportar passivamente. Chegando à universidade, muitas vezes os estudantes
precisam se comportar mais ativamente, às vezes lidando com metodologias inteiramente
novas para eles. Muitas vezes, isto leva a desestímulo, o que, por sua vez, leva a um aumento
nos índices de evasão e reprovação no início dos cursos de graduação.
Dentre os problemas enfrentados pelos calouros de Engenharia de Computação na
Universidade Estadual de Feira de Santana (UEFS), estão a grande quantidade de conteúdos e
habilidades que os estudantes devem aprender nos primeiros períodos de curso. Nos dois
primeiros semestres, o aluno deve passar por matérias como Algoritmos e Programação,
Programação Orientada a Objetos, Estruturas de Dados, além de disciplinas outras de
matemática e física. O curso utiliza ainda a metodologia de aprendizagem baseada em
problemas (PBL) (BARROWS & TAMBLYN, 1980) nas disciplinas de programação do
primeiro e segundo semestres, o que ocorre na forma de componentes curriculares especiais
chamados de módulos integradores (BITTENCOURT & FIGUEIREDO, 2003).
Experiências de recepção de estudantes calouros são uma alternativa usual para
reduzir problemas nesta transição, assim como para facilitar a inserção dos recém-chegados
ao mundo universitário. Em nosso caso, os próprios estudantes do curso de Engenharia de
Computação da Universidade Estadual de Feira de Santana (UEFS) realizam, com o apoio do
colegiado do curso e sua coordenação, uma semana de integração para os calouros do curso
na primeira semana de aula. A Semana de Integração de Engenharia de Computação
(SIECOMP) é realizada para facilitar a inserção dos calouros no meio universitário e ocorre
há quase dez anos. São ofertadas algumas palestras com temas relevantes e necessários para o
início de suas jornadas. Por exemplo, discutem-se temas como Maratona de Programação,
Empresa Junior, Diretório Acadêmico, Intercâmbio Estudantil, dentre outros. Além disso, são
oferecidos minicursos e oficinas em temas de interesse dos calouros, como escrita de
relatórios técnicos em LaTeX, iniciação científica, e oficinas de programação e PBL. As duas
últimas são tema deste artigo.
Qual seria o diferencial desta semana de integração para outros eventos de
recebimento de calouros em nosso país? Acreditamos que os focos principais desta semana
são a aprendizagem de programação e a aprendizagem da metodologia PBL. Além disso, vale
ressaltar que esta semana é organizada exclusivamente por alunos veteranos do curso. Este
artigo relata a experiência da última semana de integração realizada em março de 2015,
detendo-se especificamente sobre duas oficinas: uma oficina de aprendizagem de
programação com a linguagem Python, e outra oficina de aprendizagem da metodologia PBL
facilitada pelo uso do ambiente lúdico App Inventor.
Este artigo é organizado da seguinte maneira. A Seção 2 revisa fundamentos teóricos,
seguida pela apresentação da metodologia do trabalho na Seção 3. A Seção 4 descreve os
resultados das oficinas, sendo complementada por lições aprendidas descritas na Seção 5. O
artigo é encerrado com as conclusões e sugestões de trabalhos futuros na seção 6.
2.
FUNDAMENTAÇÃO TEÓRICA
Dificuldades na aprendizagem de conceitos e habilidades de programação são tema
recorrente de pesquisa em educação em computação. Uma survey revisa várias experiências
na área, realçando as dificuldades causadas por um modelo excessivamente formal de ensino
(PEARS et al., 2007). Um outro trabalho revisa algumas das causas para as dificuldades de
aprendizagem de programação, que variam de questões cognitivas de cada estudante, a
questões mais sociais relacionadas a motivação e atitude (ROBINS, 2010).
A questão da motivação é fundamental, pois reprovações em disciplinas introdutórias
de programação trazem atraso para os alunos nos cursos e desestímulo para a conclusão dos
cursos. Estas reprovações também podem ser causadas pelo choque que a maioria dos alunos
enfrentam na transição do ensino médio para o ensino superior. Sabe-se que conceitos e
habilidades requeridos para programar tem poucos paralelos com suas experiências prévias na
educação básica (BITTENCOURT et al., 2013).
Alguma das metodologias alternativas utilizadas na aprendizagem de programação, e
que tentam reduzir os índices de evasão e de reprovação nas disciplinas de programação
utilizam linguagens mais simples como Python (GRANDELL et al., 2006) ou ferramentas
lúdicas para aprendizagem de iniciantes, como Scratch, Greenfoot e Alice (UTTING et al.,
2010).
Um destes trabalhos relata um curso de introdução à ciência da computação utilizando
a ferramenta App Inventor para iniciantes sem experiência prévia com programação
(WOLBER, 2011). O autor relata que o curso tem sido bem-sucedido por oferecer aos
estudantes experiências reais, além de ajudá-los na conquista de trabalho e atividades
acadêmicas extracurriculares.
Um outro trabalho relata um curso de computação de nível superior para dispositivos
móveis utilizando App Inventor, que demonstrou potencial para trazer estudantes de outras
áreas para cursos de ciências da computação (ABELSON et al., 2012). O curso é um tutorial
com três sessões, dividido da seguinte forma: 1) Introdução aos princípios de Ciência da
Computação; 2) Demonstração do App Inventor; 3) Painel Virtual.
Exemplos do uso de Python em cursos introdutórios de programação começam a
surgir na literatura. Um caso de utilização de Python para alunos do ensino médio foi a oferta
de um curso de programação baseado em jogos com Python (MARQUES et al., 2011). Os
autores concluem que o curso serviu como um fator motivador para o aumento do interesse
dos alunos pela área de computação.
Alguns autores constatam que Python é uma boa linguagem para introduzir
programação para iniciantes por sua simplicidade, sintaxe limpa, poder de expressão, reforço
de estrutura, entre outros fatores (CEDER & YERGLER, 2003; GRANDELL et al., 2006).
3.
METODOLOGIA
Nesta seção, descrevemos os objetivos do trabalho, as ferramentas utilizadas, o
planejamento das oficinas e os procedimentos de coleta e análise de dados.
3.1 Objetivos gerais e específicos
O objetivo geral deste trabalho é permitir que os estudantes calouros tenham uma
integração suave com a vida universitária em um curso de Engenharia de Computação,
reduzindo dificuldades iniciais com programação de computadores e com a metodologia de
aprendizagem baseada em problemas (PBL) utilizada neste curso.
Além do objetivo geral, as oficinas tem os seguintes objetivos específicos:
• Permitir, aos estudantes calouros de engenharia de computação, a aquisição precoce de
conceitos e habilidades de programação de computadores através de atividades realizadas
em ambientes de desenvolvimento de software lúdicos e adequados a iniciantes;
• Reduzir a evasão nas disciplinas de programação do curso de Engenharia de Computação
da Universidade Estadual de Feira de Santana;
• Oferecer uma introdução à aprendizagem baseada em problemas (PBL) com o uso da
própria metodologia, permitindo melhor adequação das atividades dos estudantes em
componentes curriculares baseados em PBL.
3.2 Ferramentas utilizadas
Python1 é uma linguagem de programação de scripts de alto nível desenvolvida
inicialmente por Guido van Rossum com o objetivo de ter uma sintaxe simples e, ao mesmo
tempo, permitir elevada produtividade. Com a adoção por uma comunidade de
1
http://www.python.org/
desenvolvedores mais ampla, Python tem crescido e se destacado no cenário mundial. Várias
universidades em todo o mundo utilizam hoje a linguagem Python como primeira linguagem
de programação, nos cursos de introdução à programação para calouros. Algumas
características importantes contribuem para esta adoção pelas universidades como primeira
linguagem: é uma linguagem multiparadigma; possui uma sintaxe pequena e limpa; é tipada
dinamicamente, o que reduz sua notação; possui uma semântica expressiva através de seus
tipos de dados básicos; provê feedback imediato por ser interpretada; reforça o design
estrutural através de um modo de escrever programas indentado e estruturado; e é uma
linguagem de código aberto (GRANDELL et al., 2006). Para facilitar ainda mais a introdução
à programação, Python possui algumas bibliotecas voltadas para o desenvolvimento de jogos,
como pyGame e pyglet.
App Inventor2 é uma ferramenta web desenvolvida pelo Google, e hoje mantida pelo
Massachusetts Institute of Technology (MIT). O objetivo dessa ferramenta é facilitar o
desenvolvimento de aplicações móveis para o ambiente Android. O ambiente do App
Inventor é dividido em duas seções: App Inventor Designer e App Inventor Blocks Editor. A
seção Blocks Editor utiliza blocos que lembram brinquedo Lego, que podem ser encaixados,
permitindo a criação de scripts de programação. Já a seção Designer permite projetar
interfaces gráficas para dispositivos Android através de manipulação direta de widgets com o
mouse, onde se pode definir, por exemplo, botões e caixas de texto, além de escolher cores e
adicionar imagens. As aplicações podem ser executadas e testadas num emulador e também
podem ser instaladas diretamente em dispositivos móveis Android. Esta funcionalidade torna
o App Inventor atrativo para usuários de smartphones, o que é realidade comum entre
estudantes de cursos universitários, em especial da área de tecnologia de informação.
3.3 Planejamento das Oficinas
As oficinas de Python e App Inventor ocorreram na primeira semana do semestre
letivo de 2015.1, durante a Semana de Integração de Engenharia de Computação (SIECOMP),
com os alunos ingressantes no período 2015.1 do curso de Engenharia de Computação da
Universidade Estadual de Feira de Santana (UEFS). Os participantes foram 22 alunos
calouros que vieram à SIECOMP, dentre os 40 alunos matriculados.
A oficina de Python, descrita na Tabela 1, objetivou introduzir elementos de
programação com a linguagem Python, de modo que os estudantes tivessem um primeiro
contato com programação antes de cursarem a disciplina de Algoritmos e Programação. Dois
estudantes do curso de Engenharia de Computação, com experiência prévia em programação,
conduziram a oficina através de tutoriais com apresentação de slides e exercícios práticos com
a linguagem Python em um laboratório de computação.
2
http://appinventor.mit.edu/
Tabela 1. Visão geral da oficina de Python
Objetivos
Metodologia
Conteúdo
Tutores
Local
Participantes
Período
Carga horaria
Turmas
Oficina de Programação com Python
Entender conceitos básicos de programação e aplicá-los na solução de problemas simples
com a utilização da linguagem Python.
Apresentações de conceitos através de um tutorial com slides e exercícios práticos no final.
Scripts em Python. Características básicas da linguagem. Entrada, saída, variáveis,
expressões aritméticas e lógicas, estruturas condicionais, estruturas de repetição, funções.
Dois estudantes de Engenharia de Computação com experiência em programação.
Laboratório de Programação, Campus da UEFS.
22 estudantes calouros de Engenharia da Computação do período 2015.1.
2 a 6 de março de 2015.
6 horas, divididas em três aulas de duas horas, em dias diferentes.
Turma única com todos os participantes.
A oficina de App Inventor, descrita na Tabela 2, objetivou introduzir a metodologia
PBL pela prática, através de uma atividade de programação com a ferramenta App Inventor.
Para tanto, a própria metodologia PBL foi usada como estratégia de aprendizagem. Os alunos
foram divididos em quatro turmas, cada uma desenvolvendo uma solução para um problema
simples de um sistema de informação. Os tutores desta oficina foram quatro alunos do curso
de Engenharia de Computação com experiência prévia em uma ou duas disciplinas de
programação.
Tabela 2. Visão geral da oficina de App Inventor
Objetivos
Metodologia
Conteúdo
Tutores
Local
Participantes
Período
Carga horaria
Turmas
Oficina de Programação com AppInventor
Compreender e aplicar a metodologia PBL na prática, através de uma atividade de
programação com a ferramenta App Inventor.
Utilizamos a metodologia Problem-Based Learning (PBL).
Explicação do funcionamento da metodologia e desenvolvimento de um sistema simples
para android utilizando o App Inventor.
Quatro estudantes de Engenharia de Computação que já cursaram a disciplina de
Introdução à Programação.
Salas tutoriais, Campus da UEFS.
22 estudantes calouros de Engenharia da Computação do período 2015.1.
2 a 6 de março de 2015.
6 horas, divididas em três aulas de duas horas, em dias diferentes.
Quatro turmas com 5 ou 6 alunos cada.
A oficina de Python foi dividida em três aulas de duas horas, conforme a Tabela 3. Na
primeira aula, os alunos se familiarizam com a linguagem e com scripts Python, resolvendo
problemas aritméticos simples. Na segunda aula, aprenderam sobre estruturas de seleção e
repetição. Finalmente, na terceira aula, utilizaram listas e funções para manipular tipos
primitivos.
Tabela 3. Planejamento da Oficina de Python
Aula
Conteúdo
Atividades
1
Porque utilizar Python. Variáveis, strings,
comentários, operações matemáticas,
Entrada e saída.
Calculadora. Problemas com porcentagem,
Problemas com multiplicação.
2
Condicionais (if, else, elif), loops (while,
for). Exemplos simples de condicionais e
loops.
Problemas com condicionais. Exercícios com
Loops.
3
Listas (adicionar, remover, buscar) e
funções (def).
Problemas com listas, utilizando também o conceito
de funções.
A oficina de App Inventor ocorreu num período de três dias, dois deles para a
discussão e resolução do problema e o último para a apresentação das soluções encontradas
pelos estudantes, conforme o planejamento na Tabela 4. O problema PBL proposto foi um
aplicativo para o sistema Android que pudesse guiar os estudantes pela universidade,
mostrando os principais locais da instituição que eles achassem importantes, especialmente
para os alunos do primeiro semestre.
Tabela 4. Planejamento da Oficina de App Inventor
Aula
Objetivo Geral
Conteúdo
1
Explicar a metodologia PBL e apresentar o
problema.
Metodologia, organização e funcionamento de uma
sessão PBL. Discussão de requisitos do problema.
2
Discutir as soluções possíveis para o
problema a partir do estudo realizado.
Funcionamento do App Inventor: interface e scripts.
Estrutura da apresentação final.
3
Apresentar os produtos e discutir o
feedback dos tutores.
Feedback dos tutores sobre os problemas e as
apresentações
3.4 Procedimentos de coleta e análise de dados
Nas oficinas de Python e de App Inventor, os dados foram coletados através de
observações durante as oficinas e entrevistas realizadas após o final de cada oficina. Os dados
foram analisados qualitativamente de maneira livre para este relato de experiência.
4.
RESULTADOS
A oficina de Python contou com uma boa participação de alunos calouros para uma
atividade opcional (22 participantes em uma turma de 40 matriculados). Cada aluno usou um
computador individualmente. O tutor usou um computador com acesso a um projetor
multimídia para as apresentações de slides e de exemplos no interpretador Python. A oficina
teve sua carga horária dividida em três dias, devido aos outros minicursos e palestras que
estavam acontecendo durante a SIECOMP. Por esta divisão, o tempo acabou sendo muito
curto para desenvolver algumas das atividades propostas.
No primeiro dia, os alunos tiveram dificuldade em compreender a linguagem, e ainda
estavam se ambientando com o IDE e também com o sistema operacional Ubuntu, usado nas
máquinas do laboratório. Após cada explicação, o tutor pediu para que os alunos realizassem
exercícios simples com a linguagem. Alguns dos participantes tiveram bastante dificuldade,
mas os monitores auxiliaram para que todos conseguissem realizar esse pequenos desafios.
Os alunos foram bastante participativos nas oficinas, sempre questionando o tutor em
suas explicações, o que tornou a oficina dinâmica, especialmente a partir do segundo dia de
oficina. No primeiro dia, os alunos ainda estavam se ambientando e ainda não tinham criado
vínculos entre si, procurando mais o tutor ou os monitores para orientá-los em caso de
dúvidas.
Os exercícios foram de muita importância para o desenrolar da oficina, pois a mera
explicação dos conceitos não dava certeza de compreensão. Com os exercícios, foram
percebidas as dificuldades e dúvidas que os alunos tinham, o que funcionou como feedback
para o tutor explicar melhor conceitos que eventualmente não estivessem claros.
O fator tempo foi crucial nesta oficina. Foram planejados exercícios que exercitassem
tanto a lógica de programação quanto a sintaxe da própria linguagem. Assim, algumas
atividades eram mais simples, apenas para fixar a sintaxe, enquanto outras mais complexas
permitiam o desenvolvimento da lógica de programação. Por isso, a segunda aula não
terminou conforme planejado, deslocando alguns conceitos para a terceira aula. Isto levou a
não serem trabalhados os conceitos de funções.
Em suma, os alunos conseguiram entender os conceitos básicos da linguagem, apesar
do curto tempo de oficina e puderam ter uma experiência inicial com uma linguagem de
programação.
Na oficina de App Inventor, o objetivo principal foi apresentar a metodologia PBL
pela prática, com a utilização do App Inventor apenas como veículo de expressão de ideias.
Um dos elementos importantes dessa oficina foi o problema proposto. Foi escolhido
um problema relativamente aberto, para dar oportunidade aos estudantes de implementar a
solução de maneira livre. Além disso, o problema deveria ser próximo da realidade dos
alunos, para potencializar o aproveitamento de conhecimentos prévios. O problema proposto
foi desenvolver um software para Android para ajudar os estudantes ingressantes do curso de
Engenharia de Computação a conhecer a universidade onde estudavam.
Na primeira sessão, a metodologia PBL foi explicada e foi apresentado o problema.
Percebeu-se que os alunos mais desinibidos tentavam impor suas ideias, e os outros aceitavam
sem questionar. Os tutores, de acordo com os preceitos de PBL, orientavam para que todos os
alunos dessem suas opiniões sobre o desenvolvimento da aplicação. Os alunos não tinham
tido contato anterior com a ferramenta, logo não sabiam das limitações e do que realmente
poderia ser feito com ela.
No segundo dia de oficina, os alunos pareciam mais à vontade, e já decidiram entre si
sobre as funções de coordenação e secretariado da sessão tutorial. Algumas das ideias que
surgiram ao longo da primeira sessão da oficina estavam, em alguns casos, fora da realidade,
embora isso não tenha afetado a produtividade dos alunos. No segundo dia, eles já tinham
testado a ferramenta e criado parte da solução. Com isso, levaram algumas dúvidas para a
sessão, como se esperava para uma segunda sessão tutorial PBL. Neste dia, os alunos estavam
bastante tensos com a ideia da apresentação da solução e foram tranquilizados por seus tutores
e orientados sobre a organização desejada para as apresentações.
No terceiro dia de oficina, o dia da apresentação, os alunos demonstraram suas
soluções através de slides. Os tutores avaliaram as soluções e, ao final das apresentações,
deram feedback de cada produto individualmente, realçando pontos positivos e negativos.
Dos quatro produtos dos grupos tutoriais, um deles foi escolhido como o melhor e foi
premiado simbolicamente.
Sobre as oficinas, os participantes deram feedback, através de entrevistas. Um dos
participantes, quando perguntado sobre a impressão que tinha sobre PBL após a oficina,
respondeu: “Bem, eu acho que a impressão que se passa quando se faz o PBL é que é uma
metodologia que faz do aluno ir além daquela coisa só de aprendizagem aluno-professor,
direcionado para sua aprendizagem e o seu autodidatismo. Acho que ajuda a lidar com
pessoas, que é uma questão que você vai ter que enfrentar no mercado de trabalho, que
qualquer um vai ter que enfrentar. Então, isso já te prepara para enfrentar essa questão de lidar
com o outro, de saber se comportar, de saber dar sua opinião, sugerir propostas para resolver
um problema. Então, isso é bastante útil no PBL”.
5.
LIÇÕES APRENDIDAS
Podemos resumir as principais lições aprendidas com as oficinas realizadas:
aprendizado por meio de problemas, utilização de uma linguagem mais casual e descontraída,
feedback rápido das ferramentas e necessidade de elaboração de bons problemas. Estas lições
são detalhadas a seguir.
Aprender por meio de problemas foi uma das lições mais importantes. Ao utilizar
desafios e problemas para incentivar e facilitar o aprendizado de programação, os alunos se
sentiam motivados e desafiados para tentar resolver os problemas propostos. Por isso, havia,
em ambas as oficinas, uma participação maior do alunos através de questionamentos
frequentes em sala.
Utilização de uma linguagem mais casual e descontraída foi importante para criar
um ambiente propício à interação. Como os tutores e monitores tinham quase a mesma faixa
etária dos participantes, a comunicação ficou muito mais fluida, os alunos compreendiam e se
divertiam com a oficina. Ficou patente que os alunos se sentiam muito à vontade para
questionar e para chamar os tutores em caso de dúvidas, especialmente em comparação a
aulas com professores.
Feedback rápido oferecido pelo interpretador Python e pela ferramenta App Inventor
foi visto como muito positivo pelos participantes, pois eles podiam programar e ver
imediatamente as mudanças aplicadas nos seus códigos-fonte.
A necessidade de elaborar bons problemas ficou clara no problema da oficina de
App Inventor. Sendo voltado para a realidade que os estudantes estavam vivendo, a solução
oferecida seria avaliada por eles próprios. O fato de o problema ser relativamente aberto deu
liberdade de ação e de discussão para os estudantes fazerem escolhas e tomarem decisões.
Um dos problemas citados nas entrevistas realizadas após a oficina de App Inventor,
foi o tempo curto para desenvolvimento do produto. Os alunos reclamaram do pouco tempo
para desenvolver o código, já que eles estavam participando do evento, e só tinham tempo à
noite para programar. Ainda não encontramos uma solução adequada para este problema,
dada a grande demanda de atividades da SIECOMP, mas consideramos os resultados
positivos, apesar do problema mencionado. Por outro lado, a oficina de Python teve tempo
suficiente para explicar alguns conceitos. Entendemos ser necessário planejar melhor as
atividades para esta oficina, de modo a não sobrecarregar cognitivamente os alunos.
Para oficinas futuras, pretendemos aprimorar a oficina de Python, utilizando alguns
jogos simples para fixar alguns conceitos. Pretendemos ainda analisar, ao final do semestre, se
a evasão dos alunos e a quantidade de aprovações foram reduzidas, especialmente em relação
aos participantes.
6.
CONCLUSÃO
Este trabalho apresentou um relato de experiência de duas oficinas de aprendizagem
com auxilio de ambientes lúdicos: Uma voltada para um o primeiro contato de ingressantes de
um curso de Engenharia de Computação com programação, e outra voltada para a
familiarização dos estudantes calouros com a metodologia de ensino-aprendizagem PBL.
Acreditamos que os elementos principais que levaram ao sucesso desta experiência
foram: i) utilizar ferramentas voltadas para iniciantes, como Python e App Inventor, pois
facilitam a participação ativa dos estudantes no processo de aprendizagem, e ii) utilizar
problemas que os alunos tenham interesse incentiva a sua criatividade e motivação para
resolvê-los.
Pretendemos continuar a oferecer as oficinas aos ingressantes do curso de Engenharia
de Computação nos próximos períodos. Pretendemos também fazer uma análise mais
minuciosa dos dados, além de aperfeiçoar também as atividades a serem desenvolvidas nas
oficinas, buscando oferecer atividades de aprendizagem cada vez mais práticas e motivadoras.
Agradecimentos
Agradecemos à Universidade Estadual de Feira de Santana (UEFS) e à Fundação de
Amparo à Pesquisa do Estado da Bahia (FAPESB) pelo apoio financeiro na forma de bolsas
de iniciação científica.
7.
REFERÊNCIAS BIBLIOGRÁFICAS
ABELSON, H.; MORELLI, R.; TURBAK, F. TEACHING CS0 WITH MOBILE APPS USING APP
INVENTOR. Journal of Computing Sciences in Colleges, v. 27, n. 6, p. 16–18, 2012.
BARROWS, H. S.; TAMBLYN, R. M. Problem based-learning: An approach to medical
education. [s.l.] Springer Publishing Company, 1980. v. 1
BITTENCOURT, R. A.; RODRIGUES, C. A.; CRUZ, D. S. S. Uma Experiência Integrada de
Programação Orientada a Objetos, Estruturas de Dados e Projeto de Sistemas com PBL. Anais
do XXXIII Congresso da Sociedade Brasileira de Computação. Anais...Maceió: SBC, 2013
BITTENCOURT, R.; FIGUEIREDO, O. O Currículo do Curso de Engenharia de Computação da
UEFS: Flexibilização e Integração Curricular. Anais do XXIII Congresso da Sociedade Brasileira
de Computação. Anais...Campinas, São Paulo: SBC, 2003
CEDER, V.; YERGLER, N. Teaching Programming with Python and PyGame Python in our
Introduction to Computer classPyCon 2003 - Python Conference. Anais...2003
GRANDELL, L. et al. Why Complicate Things? Introducing Programming in High School using
Python. ACE ’06 Proceedings of the 8th Australasian Conference on Computing Education.
Anais...2006
MARQUES, D. L. et al. Atraindo Alunos do Ensino Médio para a Computação: Uma Experiência
Prática de Introdução a Programação utilizando Jogos e Python. Anais do XXII Simpósio
Brasileiro de Informática na Educação. Anais...2011
PEARS, A. et al. A Survey of Literature on the Teaching of Introductory ProgrammingWorking
Group Reports on ITiCSE on Innovation and Technology in Computer Science Education. Anais...:
ITiCSE-WGR ’07.New York, NY, USA: ACM, 2007
ROBINS, A. Learning edge momentum: A new account of outcomes in CS1. Computer Science
Education, v. 20, n. 1, p. 37–71, 2010.
UTTING, I. et al. Alice, Greenfoot, and Scratch -- A Discussion. Trans. Comput. Educ., v. 10, n. 4,
p. 17:1–17:11, nov. 2010.
WOLBER, D. App Inventor and Real-world MotivationProceedings of the 42o ACM Technical
Symposium on Computer Science Education. Anais...: SIGCSE ’11.New York, NY, USA: ACM,
2011
INTRODUCING COMPUTER PROGRAMMING AND PBL WITH
PYTHON AND APP INVENTOR
Abstract: Transition from high school to higher education is full of expectations and anxiety
for the newcomers. Freshmen welcome events are a usual alternative to reduce problems in
this transition as well as to facilitate the integration of newcomers to academia. In the
Computer Engineering undergraduate program at the State University of Feira de Santana,
the initial difficulties are usually related to learning computer programming and adapting to
the problem-based learning (PBL) approach adopted in this program. This work reports two
workshops of introductory programming and PBL to students of this program. The workshops
happened during our integration week in March 2015. We used the Python programming
language and the App Inventor tool to facilitate the learning process. Learned lessons
included: the value of learning through problems, the need to design good problems, rapid
feedback offered by the tools we used, and the benefits of a relaxed casual environment. The
workshops were well received by students, and we intend to improve and continue to offer
them in the coming weeks integration course.
Key-words: learning, programming, playful environments, Greenfoot, App Inventor.
Download