Professional Documents
Culture Documents
1. Introdução
Introdução à programação é uma disciplina que constitui a grade curricular de diversos
cursos das áreas de exatas, humanas e biológicas. Muitos são os nomes atribuídos a ela,
como Introdução à Programação, Introdução à Ciência da Computação, Introdução à
Programação de Computadores, Lógica de Programação, Algoritmos, entre outras. Neste
artigo será utilizado o nome Introdução à Programação (IP).
A disciplina de IP tem como principal objetivo fazer com que o aluno saiba
desenvolver algoritmos, que, segundo Forbellone e Eberspächer [2005], pode ser definido
como uma sequência de passos ordenados que visam atingir um objetivo específico. As
disciplinas de IP adotam linguagens de programação como C, C++, Java, Python, VBA,
entre outras, para treinar a aplicar os conceitos passados em sala de aula.
Porém, os alunos sentem uma grande dificuldade em entender estes conceitos,
levando a reprovações ou trancamentos na disciplina e até desistência do curso [Santos e
Costa 2006]. Poucos trabalhos acadêmicos quantificam esses percentuais, tanto em
termos temporais quanto relativos a outras disciplinas cursadas pelos alunos. Gestores,
professores e desenvolvedores de ferramentas educacionais possuem poucos parâmetros
para guiar suas ações no sentido de melhorar a qualidade do ensino de programação. Os
alunos também ficam sem base para comparar seu desempenho com os demais.
Esta pesquisa foi realizada com o principal objetivo de investigar o percentual de
reprovações na Universidade de São Paulo (USP) com o intuito de se obter dados para
embasar pesquisas subsequentes e se obter um melhor entendimento da realidade atual.
A USP oferece a disciplina para 25 cursos de graduação diferentes em diferentes campi
no estado de São Paulo. Foram levantados dados de 5 anos e, no total, foram consideradas
19.859 matrículas individuais de alunos. As questões de pesquisa que este estudo
investigou estão listadas na Tabela 1.
Tabela 1: Questões de pesquisa
Questões de Pesquisa
QP1 Qual o percentual de reprovações / trancamentos das disciplinas de
introdução à programação da USP?
QP2 Qual é a evolução temporal deste percentual?
QP3 Como se mostra tal percentual analisando-se isoladamente as diversas
disciplinas de introdução à programação da USP?
QP4 Como se compara este percentual com outra disciplina do mesmo semestre?
QP5 Quantos vezes o aluno frequenta a disciplina de introdução à programação
antes de obter aprovação?
2. Revisão da Literatura
Entender e aplicar os conceitos estudados nas disciplinas de introdução à programação é
fundamental para que o aluno consiga se desenvolver em programações de sistemas mais
avançados. Helminen e Malmi [2010] afirmam que a programação é uma competência
essencial nos cursos de Ciência da Computação. Porém, normalmente os estudantes
apresentam uma grande dificuldade em assimilar os conteúdos abordados, ocasionando
em reprovação ou desistência. Corney e colegas [2010] afirmam que em média 30% dos
alunos da disciplina de IP da Universidade de Queensland Tecnology não conseguiram
ser aprovados.
É muito comum ouvirmos os estudantes comentarem da dificuldade que possuem
na disciplina de IP. Piteira e Costa [2013] afirmam que a programação pode ser um
processo doloroso para os programadores iniciantes, pois eles precisam ter conhecimento
declarativo e procedural, memorização, compreensão, resolução de problemas, abstração
e capacidade de raciocínio lógico, entre outros. Os professores desta disciplina, segundo
Jantan e Aljunid [2012], afirmam que a maior dificuldade encontrada pelos alunos é a
compreensão de estruturas de programação.
Os alunos apresentam muitas dificuldades para entender a lógica de programação,
que requer uma prática intensiva para ser desenvolvida. Nas turmas geralmente existe
uma quantidade muito grande de alunos, o que impossibilita o professor de acompanhar
individualmente cada um. Além disso, Araújo (2007) afirma que “é muito comum, nas
etapas iniciais de uma disciplina de programação, deparar-se com uma dificuldade em
conseguir identificar o problema a ser resolvido e isso, seguramente, impede o
desenvolvimento do raciocínio e, consequentemente, o aprendizado da programação”.
Uma pesquisa feita por Campos [2010] em quatro instituições de ensino superior
(IES) do Distrito Federal (DF) constatou que mais de 60% dos alunos eram reprovados
na disciplina de IP a cada semestre. Com dados de uma pesquisa realizada por Bennedsen
e Caspersen [2007], com a participação de 63 instituições de diversos países, obtiveram
um índice de 67% de aprovações.
A dificuldade na disciplina de IP pode estar entre os motivos que fazem com que
os cursos da área de computação estejam entre os maiores no índice de evasões. Uma
pesquisa realizada por Silva Filho e colegas [2007] mostra que a média de evasão nos
cursos superiores no Brasil, entre os anos 2000 e 2005, era de 22% e, os cursos da área
de computação estavam entre os maiores, chegando à 36%.
3. Metodologia
Neste estudo, foi feito um levantamento, que segundo [Creswell 2010] apresenta uma
descrição quantitativa dos dados de uma determinada população. A população do presente
estudo são os alunos das disciplinas de IP da Universidade de São Paulo de 2010 a 2014.
A primeira etapa para obter os dados para análise, foi escolher as disciplinas que
iriam compor o estudo. As disciplinas foram selecionadas por meio de uma pesquisa no
sistema acadêmico da universidade, chamado de Sistema Jupiter1, com as seguintes
palavras chaves: “programação”, “algoritmos” e “computação”. A Tabela 2 apresentada
a relação da quantidade apresentada pelo sistema e a quantidade escolhida para a análise.
Tabela 2: Totais de disciplinas apresentadas pelo Sistema Jupiter para cada
palavra de busca utilizada
Palavra de Busca Total de Total de
Disciplinas Disciplinas
Apresentadas Escolhidas
Programação 66 12
Algoritmos 29 0
Computação 112 19
Total 207 31
Para cada disciplina apresentada, foi feita uma seleção manual, onde o plano de
ensino de cada uma foi obtido e seu programa resumido e completo analisados. Os
critérios de inclusão e exclusão estão listados na Tabela 3.
1
Disponível no site: https://uspdigital.usp.br/jupiterweb/jupDisciplinaBusca?tipo=D&codmnu=4526
Tabela 3: Critérios de inclusão e exclusão das disciplinas apresentadas pelo
Sistema Jupiter da USP.
Critérios de Inclusão Critérios de Exclusão
Ter no seu programa pelo menos 4 dos
seguintes assuntos:
Conceitos de linguagens de
programação, por exemplo: tipos de
variáveis
Tratar de uma comparação de
Estruturas de programação:
paradigmas de programação como
seleção e repetição
CI1 programação funcional, procedural,
Variáveis estruturadas ou tipos de CE1
orientada à objetos, entre outras. Sendo
dados compostos: vetores e matrizes
feita programação para ver o
Modularização de programas: funcionamento de cada uma.
funções e/ou procedimentos
Utilização de alguma linguagem
de programação
4. Resultados
O banco de dados utilizado na pesquisa possui para cada disciplina as seguintes
informações: cursos que a contém na grade curricular, históricos dos alunos que se
matricularam nela no período de 2010 e 2014 e os dados referentes às turmas abertas,
contendo ano, semestre, professor ministrante, identificador do aluno, frequência, nota e
situação, entre outras informações.
Nos cinco anos analisados, ocorreram 20.948 matrículas em todas disciplinas
juntas, das quais consideramos 19.853. As 1.095 matrículas desconsideradas são as que
correspondem à situação “Não cadastrado”, não tendo como identificar se nesta matrícula
o aluno foi ou não aprovado. Em primeira análise, verificamos que dessas 19.853
matrículas, 70,69% resultaram em aprovação, 26,70% em reprovação por nota e/ou
frequência e 2,61 em trancamentos. Na USP, em uma escala de 0 a 10, a média de
aprovação direta é de 5,0 e para fazer a recuperação é de 3,0. Nesta análise foram
considerados todos alunos aprovados, antes e depois da recuperação. Os dados desta
análise estão representados na Figura 1A.
Percentuais referentes às disciplinas de Dispersão temporal de 2010 a 2014 nas disciplinas de Introdução à
Introdução à Programação da USP Programação da USP
cursadas entre 2010 e 2014 80% 74.39%
69.89% 69.44% 70.38% 69.45%
29.31%
60%
40% 30.56%
30.11% 29.62% 30.55%
25.61%
20%
70.69% 0%
2010 2011 2012 2013 2014
% Aprovações % Reprovações e Trancamentos
Aprovados Reprovados e Trancados
(A) (B)
Relação de Aprovações e Reprovações/Trancamentos nas disciplinas de
Introdução à Programação ministradas na USP de 2010 à 2014
100.00%
90.00%
80.00%
70.00%
60.00%
50.00%
40.00%
30.00%
20.00%
10.00%
0.00%
5952010
IBM1006
LOB1023
SSC0800
MAC0115
MAC0110
5910257
SSC0801
SSC0501
5950257
ZAB1008
SSC0502
SSC0101
MAC0119
MAC0113
MAC2166
SSC0102
BMM0580
BIO0454
SSC0301
SSC0600
SSC0601
ZAB0264
SCC0121
SCC0172
SCC0120
SME0230
ACH2001
SME0330
Reprovações/Trancamentos Aprovações
Quantidade de vezes que o aluno cursa a disciplina para obter
aprovação
100.00%
80.00% 73.31%
60.00%
40.00%
19.60%
20.00%
4.49% 1.81% 0.43% 0.36%
0.00%
1 2 3 4 5 >5
Figura 3. Percentual de vezes que alunos teve que cursar a disciplina de IP antes
de obter aprovação
Pegando apenas alunos dos cursos de computação da USP (Ciência da
Computação no IME e no ICMC, Sistemas de Informação na EACH e no ICMC e
Engenharia de Computação na POLI e no ICMC) obtivemos os percentuais apresentados
na Figura 4. Desconsideramos as disciplinas exclusivamente de laboratório.
Resultados das disciplinas de Introdução à Programação na USP dos cursos
de Computação de 2010 a 2014
100% 89.21%
76.45%
80%
62.74%
60%
37.26%
40%
23.55%
20% 10.79%
0%
Sistemas de Informação Ciência da Computação Engenharia de Computação
% Aprovações % Reprovações e Trancamentos
96.72% 98.14%
100% 84.96% 84.96% 85.52%
76.67% 78.79%
80%
60%
40% 23.33% 21.21%
15.04% 15.04% 14.48%
20% 3.28% 1.86%
0%
MAC2166 ‐ MAT2453 ‐ 4320195 ‐ Física MAT2457 ‐ PCC2121 ‐ PNV2100 ‐ PQI2110 ‐
Introdução à Cálculo Geral e Álgebra Linear I Geometria Introdução à Química
Programação Diferencial e Experimental Gráfica para Engenharia Tecnológica
Integral I para Engenharia Engenharia Geral
I
Aprovados Reprovados
6. Conclusão
Os resultados apresentados pelas análises dos bancos de dados disponibilizados pela USP
corroboraram com os resultados de outros estudos [Bennedsen e Caspersen 2007].
Considerando todas as disciplinas de IP lecionadas na USP, o percentual médio de
reprovações / trancamentos é de 29,31% e, no decorrer dos cinco anos, este percentual
manteve-se praticamente constante.
Analisando-se as disciplinas individualmente, este percentual mostrou-se bastante
variado, indo de 62,18% a 5,91% de reprovações. Outro dado que foi levantado é que
mais de 25% dos alunos que foram aprovados no período de 2010 a 2014 tiveram que
cursar 2 ou mais vezes a disciplina de IP e que, essa disciplina é uma das que mais reprova
entre as do primeiro semestre dos cursos de computação.
Sugestão de trabalho futuro é fazer uma análise separada para cursos de graduação
em computação e graduação em outras áreas. Os resultados analisando-se apenas os
cursos da área de computação poderiam trazer alguma novidade relevante para futuras
pesquisas e também como informações para auxiliar coordenadores, professores e alunos.
Outra sugestão é a investigação dos motivos que levam a existir uma variação tão elevada
de reprovações entre as disciplinas de IP, buscando descobrir se é a metodologia aplicada
ou o nível de cobrança ou se alguma ferramenta de ensino aprendizagem é utilizada.
Podem ser feitas também análises das notas obtidas nas disciplinas em comparação com
a nota de corte para entrar nos cursos.
Agradecimentos
Gostaria de agradecer à Edmeia Ferreira Martins, Chefe Administrativo do Serviço de
Apoio à Gestão Acadêmica, por ter providenciado que nosso pedido de dados fosse
autorizado. Ao Daniel G. Konno, do Serviço de Apoio à Gestão dos Sistemas de
Informação, pela organização e formatação dos dados utilizados. À Virginia Carrara pelo
desenvolvimento da parte estatística do artigo.
Referências
Araújo, E. (2007). Algoritmos: Fundamento e Prática. 3ª ed. ampl. e atual. Florianópolis:
VisualBooks.
Barone, P. (2012). Diretrizes Curriculares Nacionais para os cursos de graduação em
Computação. Disponível no site: http://portal.mec.gov.br/index.php?
option=com_docman&task=doc_download&gid= 8128&Itemid= , em 04/04/2015.
Bennedsen, J. e Caspersen, M. (2007). Failure Rates in Introductory Programming. The
SIGCSE Bulletin, Vol.39. N.2. June.
Campos, R. (2010). Metodologia ERM2C: Para melhoria do processo de ensino-
aprendizagem de lógica de programação. XXX Congresso da Sociedade Brasileira de
Computação – CSBC. XVIII Workshop sobre Educação em Computação – WEI. Belo
Horizonte – MG.
Corney, M., Teague, D., Thomas, R. (2010). Engaging students in programming. Em:
ACE '10 Proceedings of the Twelfth Australasian Conference on Computing
Education - Volume 103, pp. 63-72. Australia.
Creswell, J. (2010). Projeto de Pesquisa: métodos qualitativos, quantitativos e misto. 3ª.
edição. Porto Alegre : Artmed.
Forbellone, A. e Eberspächer, H. (2005). Lógica de Programação : a construção de
algoritmos e estruturas de dados. 3. ed. São Paulo : Pearson Prentice Hall.
Helminen, J. e Malmi, L. (2010). Jype - a program visualization and programming
exercise tool for python. Em: SOFTVIS '10 Proceedings of the 5th international
symposium on Software visualization. pp.153-162. USA.
Jantan, S., Aljunid, S. (2012). An experimental evaluation of scaffolded educational
games design for programming. Em: ICOS 2012 - IEEE Conference on Open Systems.
Paula, L., Piva Junior, D. e Freitas, R. (2009). A Leitura e a Abstração do Problema no
Processo de Formação do Raciocínio Lógico-Abstrato em Alunos. XVII Workshop
sobre Educação em Computação – XXIX Congresso da Sociedade Brasileira de
Computação. Bento Gonçalves – RS.
Piteira, M., Costa, C.: Learning computer programming: Study of di_culties in learning
programming (2013). Em: ISDOC'13 - Proceedings of the 2013 International
Conference on Information Systems and Design of Communication. pp. 75-80. USA
Santos, R. e Costa, H. (2006). Análise de Metodologias e Ambientes de Ensino para
Algoritmos, Estruturas de Dados e Programação aos Iniciantes em Computação e
Informática. In: INFOCOMP, Volume 5, nº.1, ISSN 1807-4545.
Silva Filho, R., Montejunas, P., Hipólito, O. e Lobo, M. (2007). A Evasão no ensino
superior brasileiro. Caderno de Pesquisa, v. 37, n. 132, p. 641-659, set/dez. 2007.
Disponível em: http://www.scielo.br/pdf/cp/v37n132/a0737132.pdf