23 research outputs found

    Individual characteristics of successful coding challengers

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Annual Report, 2014-2015

    Get PDF
    corecore