Getting Organized: Using software engineering best practices to improve research computational processes
Getting Organized: Using software engineering best practices to improve research computational processes
This talk discusses how common practices in software engineering like object oriented programming (OOP) and test-driven development (TDD) can be used in a research computing project. In particular this talk will advocate for the ways that practices like OOP and TDD (while not the only programming paradigms) can be used to guide computer programming software development work to contribute to the stability and resilience of a research project codebase, thereby encouraging a wider range of project experimentation.
At the UW-Madison Libraries, Steve Meyer and Becky Standard have been working on project to investigate how machine learning computational techniques can be applied to library collections data. Our goal is to develop new ways to define and interact with the topical spaces represented by catalog records using the subject taxonomy widely used by U.S. academic libraries. Using this project with topical clustering at its core as an example case, Steve will discuss how he is using experience with software engineering practices to guide research and development work.
- Writing a code library for encapsulating project assumptions, constraints
- Incorporating a project’s own library within a presentation layer, in our case a web application
- How these best practices help manage a polyglot computational environment where our project makes use of:
- Ruby programming language for our core codebase and the web application framework and text indexing
- Apache Solr indexing software
- Web Standards stack within our web app: HTML/CSS/JS/SVG, including use of the d3.js visualization framework
- Python scripts for experimentation
- Node.js and Typescript/JavaScript scripts for experimentation
Slides
See also
Project Website: experiments applying machine learning techniques to library subject heading data.