10,223 research outputs found

    A Perspective Of Automated Programming Error Feedback Approaches In Problem Solving Exercises

    Get PDF
    Programming tools are meant for student to practice programming. Automated programming error feedback will be provided for students to self-construct the knowledge through their own experience. This paper has clustered current approaches in providing automated error programming feedback to the students during problem solving exercises. These include additional syntax error messages, solution template mismatches, test data comparison, assisted agent report and collaborative comment feedback. The study is conducted based on published papers for last two decades. The trends are analyzed to get the overview of latest research contributions towards eliminating programming difficulties among students. The result shows that future direction of automated programming error feedback approaches may combine agent and collaborative feedback approaches towards more interactive, dynamic, end-user oriented and specific goal oriented. Such future direction may help other researchers fill in the gap on new ways of assisting learners to better understand feedback messages provided by automated assessment tool

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Exploring Automated Code Evaluation Systems and Resources for Code Analysis: A Comprehensive Survey

    Full text link
    The automated code evaluation system (AES) is mainly designed to reliably assess user-submitted code. Due to their extensive range of applications and the accumulation of valuable resources, AESs are becoming increasingly popular. Research on the application of AES and their real-world resource exploration for diverse coding tasks is still lacking. In this study, we conducted a comprehensive survey on AESs and their resources. This survey explores the application areas of AESs, available resources, and resource utilization for coding tasks. AESs are categorized into programming contests, programming learning and education, recruitment, online compilers, and additional modules, depending on their application. We explore the available datasets and other resources of these systems for research, analysis, and coding tasks. Moreover, we provide an overview of machine learning-driven coding tasks, such as bug detection, code review, comprehension, refactoring, search, representation, and repair. These tasks are performed using real-life datasets. In addition, we briefly discuss the Aizu Online Judge platform as a real example of an AES from the perspectives of system design (hardware and software), operation (competition and education), and research. This is due to the scalability of the AOJ platform (programming education, competitions, and practice), open internal features (hardware and software), attention from the research community, open source data (e.g., solution codes and submission documents), and transparency. We also analyze the overall performance of this system and the perceived challenges over the years

    Computer-based assessment system for e-learning applied to programming education

    Get PDF
    Tese de mestrado integrado. Engenharia Informática e Computação. Faculdade de Engenharia. Universidade do Porto. 201

    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
    corecore