Software Downloads

github page: Various public projects, including an undergraduate introductory image processing textbook in the form of Jupyterlab notebooks.
Strategies for Introducing Parallelism with Python: Steven Bogaerts of DePauw University and I developed a session for the SuperComputing 2013 HPC Educators Program. In this session we describe and demonstrate an educational module on parallelism and its implementation using Python's standard multiprocessing module. We cover such key concepts as speedup, divide & conquer, communication, and concurrency. We consider how these concepts may be taught in the context of CS1 and CS2, and we provide extensive hands-on demonstrations of parallelized integration, Monte Carlo simulations, recursive sorting schemes, and distributed computing. This work was developed as part of an NSF-TCPP Core Curriculum Initiative Early Adopter Award.
DistributedPython: Much distributed computing software is in the end, under many layers, a simple "ssh somewhere doSomething". This code shows that fact in as few layers as practicable. Uses Python's multiprocessing and subprocess modules to maintain a job queue and manage jobs on remote hosts. At the top level, you generate a list of command lines and simply request they be executed in parallel. Works in Python 2.6 and 3.
condor-py-scripting: Garrett Koller '14 deployed the Condor distributed computing platform on the CS department's lab machines, with a client-light network-based install. He also developed a Python module to wrap the bash-based submission scripts and intuitively control interaction with the Condor master (see poster, Condor at W&L website).
Matlab Photo Quadrat Selection Tool: Interactively select and save a quadrat within an image. Quadrat selection is a common manual process in archaeology, biology, geology, and other fields whereby some projectively distorted square in a field-acquired image is normalized to allow for further quantifying actions. For example, this tool was developed for coral surveillance efforts, where benthic abundance estimates were found based on the segmentation of a collection of projectively normalized quadrat images. See screenshot.
Matlab File Exchange Page: I have begun releasing more utility code to the community, after having found FileExchange to be so useful in my own searches for particular functionalities in Matlab. So far, the files I have added include inverse transform sampling, 3D volume visualization, and data exploration utilities.
xl2prism.py: A utility in Python to help in the analysis of ELISA results in biology and medical research. The Excel file output of an ELISA program is organized by the plate descriptions and values in a grid, whereas usually the statistical software to analyze these results requires data in column form. This program accepts the Excel file output of ELISA and generates a new file containing an additional sheet with the data organized for easy copying. An Excel macro might be the easiest way to do this, but I didn't want to learn that language. Link to a potentially related discussion.