5 research outputs found

    How teachers would help students to improve their code

    Get PDF

    Application of Constructive Modeling and Process Mining Approaches to the Study of Source Code Development in Software Engineering Courses

    Get PDF
    We present an approach of constructing a source code history for a modern code review. Practically, it is supposed to be used in programming training, especially within initial stages. The developed constructor uses constructive-synthesizing modeling tools to classify a source code history by fine-grained changes and to construct an event log file aimed to provide information on students’ coding process. Current research applies Process Mining techniques to the software engineering domain to identify software engineering skills. By better understanding of the way students design programs, we will help novices learn programming. This research provides an innovative method of using code and development process review in teaching programming skills and is aimed to encourage using code review and monitoring coding practice in educational purposes. The standard method of evaluation takes into consideration only a final result, which doesn’t meet modern requirements of teaching programming

    STRUMENTI PER LA SICUREZZA DEL CODICE: ANALISI STATICA

    Get PDF
    Con la diffusione dei moderni software e applicazioni è insorta anche la necessità di migliorarne la qualità e la sicurezza, poiché divenuti versatili e diffusisi al punto tale che per distinguersi tra tutti i potenziali concorrenti e rispondere alle esigenze del mercato, l’industria del software ha dovuto concentrare l’attenzione su questi parametri non più trascurabili. Si è deciso perciò di introdurre l’utilizzo dell’analisi del codice, suddivisa in analisi statica (eseguita post-compilazione e pre-esecuzione del software per scoprire criticità non individuabili in compilazione) e analisi dinamica (in fase d’esecuzione del software per osservare e gestire tutti i possibili comportamenti del software una volta eseguito), per assolvere a queste importanti esigenze. Il seguente elaborato si pone l’obiettivo di fornire al lettore una panoramica dell’analisi del codice, concentrandosi nello specifico su cosa sia l’analisi statica del codice e di far comprendere con l’ausilio di esempi concreti l’importanza dell’utilizzo di strumenti di analisi statica al fine di migliorare l’esperienza di scrittura di un software oltre che la sicurezza e la qualità del codice stesso

    The Example Guru: Suggesting Examples to Novice Programmers in an Artifact-Based Context

    Get PDF
    Programmers in artifact-based contexts could likely benefit from skills that they do not realize exist. We define artifact-based contexts as contexts where programmers have a goal project, like an application or game, which they must figure out how to accomplish and can change along the way. Artifact-based contexts do not have quantifiable goal states, like the solution to a puzzle or the resolution of a bug in task-based contexts. Currently, programmers in artifact-based contexts have to seek out information, but may be unaware of useful information or choose not to seek out new skills. This is especially problematic for young novice programmers in blocks programming environments. Blocks programming environments often lack even minimal in-context support, such as auto-complete or in-context documentation. Novices programming independently in these blocks-based programming environments often plateau in the programming skills and API methods they use. This work aims to encourage novices in artifact-based programming contexts to explore new API methods and skills. One way to support novices may be with examples, as examples are effective for learning and highly available. In order to better understand how to use examples for supporting novice programmers, I first ran two studies exploring novices\u27 use and focus on example code. I used those results to design a system called the Example Guru. The Example Guru suggests example snippets to novice programmers that contain previously unused API methods or code concepts. Finally, I present an approach for semi-automatically generating content for this type of suggestion system. This approach reduces the amount of expert effort required to create suggestions. This work contains three contributions: 1) a better understanding of difficulties novices have using example code, 2) a system that encourages exploration and use of new programming skills, and 3) an approach for generating content for a suggestion system with less expert effort

    Automated Feedback for Learning Code Refactoring

    Get PDF
    corecore