Git Product home page Git Product logo

c-pack-ipas's Introduction

C-Pack-IPAs

C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments

C-Pack-IPAs is a benchmark of student programs developed during an introductory programming course in the C programming language. These programs were collected over three distinct practical classes at Instituto Superior Técnico for 25 different IPAs. The set of submissions was split into three groups: semantically correct, semantically incorrect, and syntactically incorrect submissions. The students' submissions that satisfied the set of input-output test cases for each IPA were considered semantically correct. The submissions that failed at least one input-output test but successfully compiled were considered semantically incorrect implementations. Lastly, the students' submissions that did not successfully compile were considered syntactically incorrect implementations.

C-Pack-IPAs only contains students' submissions that gave their permission to use their programs for academic purposes. Each student's identification was anonymized for privacy reasons, and all the comments were removed from their programs. A unique identifier was assigned to each student. These identifiers are consistent among different IPAs and different years of the programming course. For example, if the identifier 'stu_3' appears in more than one programming exercise, it corresponds to the same student. If some students take the course more than once, they are always assigned to the same anonymized identifier.

IPAs

The set of IPAs corresponds to three different lab classes of the introductory programming course to the C programming language at Instituto Superior Técnico. Each lab class focuses on a different topic of the C programming language. The textual description of each programming assignment can be found in IPAs_description, and the input/output tests used to evaluate semantically the set of students' submissions in tests. Moreover, there is also a reference implementation for each IPA in reference_implementations that can be used by program repair frameworks that only accept a single reference implementation to repair incorrect programs.

Compilation

Each student's submission (e.g. p1.c) was compiled using the following gcc command:

gcc -Wall -Wextra -Werror -ansi -pedantic -lm p1.c

References

Pedro Orvalho, Mikoláš Janota, and Vasco Manquinho. C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments. 2022. https://arxiv.org/pdf/2206.08768.pdf

Acks

We would like to thank all the students who gave permission to use their programs for our research. Secondly, we would like to thank Instituto Superior Técnico.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.