CLuster And RepAir tool for introductory programming assignments
Switch branches/tags
Nothing to show
Clone or download
Latest commit 3a929db Feb 28, 2018

README

CLuster And RepAir tool for introductory programming assignments


About
=====
This is an implementation of the clustering and repair tool for introductory
programming assignments, described in the following paper:
  http://arxiv.org/abs/1603.03165


Requires
========
- C compiler (tested with gcc 4.9.2)
- Cython (tested with v0.23.4)
    $ sudo aptitude install cython (Debian)
    # dnf install Cython (Fedora)
- lpsolve 5.5 (development files and library)
    $ sudo aptitude install lp-solve liblpsolve55-dev (Debian)
    # dnf install lpsolve-devel (Fedora)
- pip
    $ sudo aptitude install python-pip (Debian)
    # dnf install python-pip (Fedora)
- pip module pycparser zss
    $ pip install --user pycparser zss



Installation
============
- Run 'make install' in this directory; or
- See docker installation below


Docker installation
===================
1) Build the image with: 'docker build --rm=true -t clara .'
2) Run the container with:
     'docker run -ti -h clara --name clara clara /bin/bash'


Running
=======
- 'make' from above installs a binary file called 'clara'
- Run 'clara help' or see examples below


Debian note
===========
- On Debian system the following is required before running the tool:
    'export LD_LIBRARY_PATH=/usr/lib/lp_solve/'


Examples
========
- Matching example:
  'clara match examples/ex1.py examples/ex2.py --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --verbose 1'
- Repair example:
  'clara repair examples/ex1.py examples/ex3.py --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --verbose 1'