23 research outputs found
Individual characteristics of successful coding challengers
Assessing a software engineer's problem-solving ability to algorithmic programming tasks has been an essential part of technical interviews at some of the most successful technology companies for several years now. Despite the adoption of coding challenges among these companies, we do not know what influences the performance of different software engineers in solving such coding challenges. We conducted an exploratory study with software engineering students to find hypothesis on what individual characteristics make a good coding challenge solver. Our findings show that the better coding challengers have also better exam grades and more programming experience. Furthermore, conscientious as well as sad software engineers performed worse in our study
EasyCoding - methodology to support programming learning
Mestrado de dupla diplomação com o Centro Federal de Educação Tecnológica de Minas Gerais – CEFET-MGThe increase in failure rate in the first programming curricular units, in engineering
courses, and the school dropout growth by students shows the importance of further
study on the real reasons for these episodes.
When considering that this situation is amplified, in large part, by the lack of motivation
and the lack of student autonomy to study programming outside the classroom
context, this work proposes a methodology based on activity guides, using innovative and
attractive web platforms. The proposed methodology aims to facilitate the planning of
teachers’ activities and to increase students’ autonomy and motivation.
For the execution of this study, we evaluated the proposed methodology with programming
professors and students at the Polytechnic Institute of Bragança and the Federal
Center for Technological Education of Minas Gerais.
In addition, we developed a system for automatic generation of activity guides which
aimed assisting teachers in the creation of exercises with innovative web platforms to
motivate students to study programming beyond the classroom.
The obtained results allow us to demonstrate the importance of using innovative teaching
methodologies, inside and outside the classroom, to encourage students to practice
more programming exercises. Thus, as contributions, the proposed methodology can help
combat school dropout in higher education in engineering courses, once it can help to
keep the students motivated during the first programming subjects.O aumento na taxa de insucesso nas primeiras unidades curriculares de programação, nos
cursos de engenharia, e o crescimento do abandono escolar por parte dos alunos mostra a
importância de um estudo mais aprofundado sobre os reais motivos desses episódios.
Ao considerar que essa situação é ampliada, em grande parte, pela falta de motivação
e falta de autonomia do aluno para estudar programação fora do contexto da sala de
aula, este trabalho propõe uma metodologia baseada em guiões de atividades, utilizando
plataformas web inovadoras e atrativas. A metodologia proposta visa facilitar o planejamento
das atividades dos professores e aumentar a autonomia e a motivação dos alunos.
Para a execução deste estudo, avaliamos a metodologia proposta com professores e
alunos de programação do Instituto Politécnico de Bragança e do Centro Federal de
Educação Tecnológica de Minas Gerais.
Além disso, desenvolvemos um sistema para geração automática de guias de atividades,
com o objetivo de auxiliar os professores na criação de exercícios com plataformas web
inovadoras, para motivar os alunos a estudar programação além da sala de aula.
Os resultados obtidos nos permitem demonstrar a importância do uso de metodologias
inovadoras de ensino, dentro e fora da sala de aula, para incentivar os alunos a praticar
mais exercícios de programação. Assim, como contribuição, a metodologia proposta pode
ajudar a combater o abandono escolar no ensino superior nos cursos de engenharia, uma
vez que pode ajudar a manter os alunos motivados durante as primeiras disciplinas de
programação
Learning to code in class with MOOCs: Process, factors and outcomes
Problem: Python became the most popular programming language in recent years, beating
Java, the programming language still widely used as the main programming language in many
undergraduate degrees on computer science related areas. Students from those degrees often
do not get Python in their syllabus, but the job market is demanding it increasingly.
Objective: To assess if learning a new programming language by following a MOOC is feasible
in a fully dedicated mode and allows achieving a learning outcome comparable to the
traditional in-class learning process.
Proposal: Students from undergraduate degrees lacking Python skills followed a dedicated and
intensive learning process on that language based on an in-class MOOC. The latter is suitable
for students with some background in programming, as is the case, allowing a faster learning
pace. Participants’ subjective perception of the corresponding workload was monitored.
Validation: A programming contest, using an automatic judge, was used as a validation for this
proposal. Two groups of students participated: those from three degrees lacking Python, which
followed the proposed MOOC (experimental group), and those from the degree that includes
Python programming, which had a traditional in-class learning process (control group).
Conclusions: The experiment results were analysed and it was inferred that the proposed
in-class MOOC learning approach is as effective as the traditional learning approach. Furthermore,
it was identified that the students’ average grades obtained in the previous programming
courses taken as part of their degree’s syllabus and the number of MOOC modules finished in
the context of this experiment directly influence the number of points obtained in the contest.Problema: Nos últimos anos, Python tornou-se a linguagem de programação mais popular,
ultrapassando o Java, que continua a sermuito usada como principal linguagem de programação
em muitas licenciaturas relacionadas com informática. Estas licenciaturas acabam muitas vezes
por não oferecer esta competência aos estudantes, no entanto o mercado de trabalho procura-a
cada vez mais.
Objectivo: Avaliar a possibilidade de aprender uma nova linguagem de programação através de
um MOOC num regime de total dedicação. E por fim, perceber se este permite obter resultados
comparáveis ao ensino tradicional.
Proposta: Os estudantes com falta de conhecimentos de Python realizaram um processo de
aprendizagem intensivo desta linguagem através de um MOOC em sala de aula. Este último
é adequado a estudantes com alguns conhecimentos de programação, permitindo assim um
ritmo mais rápido de aprendizagem. A perceção subjetiva dos participantes sobre a respetiva
carga de trabalho foi monitorizada.
Validação: Realização de um concurso de programação recorrendo a um juiz automático. Dois
grupos de estudantes participaram neste concurso: estudantes das 3 licenciaturas sem conhecimentos
de Python, que realizaram o MOOC (grupo experimental), e os estudantes da licenciatura
que inclui Python e que teve uma aprendizagem tradicional (grupo de controlo).
Conclusões: Os resultados deste experimento foram analisados e inferiu-se que a aprendizagem
de um MOOC em sala de aula é tão eficaz quanto o ensino tradicional. Para além disso,
foi também verificado que a média de notas dos estudantes obtida nas unidades curriculares
de programação que já frequentaram no seu curso e o número de módulos feitos no MOOC no
contexto desta experiência influenciam diretamente os pontos obtidos no concurso de programação