Skip to main content

A Package to use the Measure of Incremental Development on sequences of student snapshots of code

Project description

Measure of Incremental Development

The Measure of Incremental Development (MID) is a metric that evaluates a student's adherence to incremental development given snapshots of the student's code at compilation. Currently, it has been developed and trained on student data from a Python-based, introductory computer science course.

Usage

First, install the Python package in the appropriate directory with pip using:
pip install measure_incremental_development

Second, import the calculateMID function in the Python file you would like to perform the calculation:
from measure_incremental_development.compute import calculate_mid

Third, make the appropriate call to the calculate_mid function (make sure the input data is formatted correctly):
mid_statistic = calculate_mid(snapshots)

Note: the input data snapshots should be formatted as described below

Input Data Format

The calculate_mid function will take as input a list of strings, where each element is a string that is the exact text of the student code (including whitespace).

An example of an appropriate input:

from measure_incremental_development.compute import calculate_mid

snap1 = """def hello(name):
    print(name)"""

snap2 = """def hello(name):
    welcome_string = "Hello " + name"""

snap3 = """def hello(name):
    welcome_string = "Hello " + name
    return welcome_string"""

snapshots = [snap1, snap2, snap3]

mid_statistic = calculate_mid(snapshots)

Interpretting Output

The metric will output any value greater than or equal to 0. A lower score indicates a greater level of incremental development. Below are the categories of the scores:

  • MID of [0 - 2]: Likely incremental
  • MID of [2 - 2.5]: Somewhat incremental
  • MID of [2.5-3]: Somewhat non-incremental
  • MID of [3+]: Likely non-incremental

Github Repository

The full code to calculate the Measure of Incremental Development (MID) can be found on this Github repository.

Additional Information and Citation

This metric was presented in a research paper presented at the 2023 SIGCSE Technical Symposium. You can find additional information about the motivation, development, and evaluation of the metric in the research paper. Use the citation below to access the paper.

Additionally, please use the following citation (in ACM Reference Format) if using this metric for a publication:

Anshul Shah, Michael Granado, Mrinal Sharma, John Driscoll, Leo Porter, William G. Griswold, and Adalbert Gerald Soosai Raj. 2023. Understanding and Measuring Incremental Development in CS1. In Proceedings of the 54th ACM Technical Symposium on Computing Science Education V. 1 (SIGCSE 2023), March 15–18, 2023, Toronto, ON, Canada. ACM, New York, NY, USA, 7 pages. https://doi.org/10.1145/3545945.3569880

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

measure_incremental_development-1.0.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file measure_incremental_development-1.0.1.tar.gz.

File metadata

File hashes

Hashes for measure_incremental_development-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c40547ea3f1221598d5307e8271fee02779a27d593c393af688616bfad3cf0f6
MD5 39770f20e9a293dfee93341535726af9
BLAKE2b-256 783bb9b469b8280c189eb4d5da2d821e38a0e0881da172e6000b5218267f90bb

See more details on using hashes here.

File details

Details for the file measure_incremental_development-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for measure_incremental_development-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 20730a550c0a9d594eb3590917bfc6ce1770339262d920c9cd2e7dc9f849b6cf
MD5 77bb4247d714e385cc105ecfabdf3d5a
BLAKE2b-256 bd79397736cd1aa8ad4d33d3e92b43e4039f0a77c863209d9b17ec6d75692510

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page