Software Engineering for Applied Mathematical Sciences ​


20 January - 31 January​


​Target audience 

The course is suitable for postgraduate students, staff and professionals who have actively programmed on a scientific project and have a current project they are seeking to improve. It is assumed that course participants are familiar with general quantitative scientific practice and at least one programming language, and routinely use those skills in their daily work. No particular scientific field or programming language is required. 


Participants will understand software engineering perspectives and apply these to their project work. They should leave with improvements to the project they bring, as well as with a plan for future development. 

Expected outcomes 

Participants will acquire the skills to: 

  • Think about the overall architecture of scientific programming workflows, and make design choices that improve scientific output reproduce-ability, maintainability, and flexibility 
  • Apply foundational software engineering principles for requirements elicitation, software architecture design and quality assurance 
  • Use various software engineering tools--e.g. version control, automated testing--to improve their productivity, work quality, and ability to collaborate 
  • Evaluate the benefits and costs of re-using existing libraries, and make their code usable by other scientists 
  • Evaluate the data component of a scientific project, and make informed choices about input and output products and formats for that work 
  • Think about parallelization and how a scientific project might best leverage high performance computing resources
  • Use the Amazon Web Services Cloud environment for high performance computing work;
During the Hack-A-Thon portion of the workshop, participants will apply these skills to the project they bring to the event.​

Course format 

The course is divided into five topics, with a day devoted to each. Each day begins with an interactive discussion with the faculty, followed by a structured practical exercise to emphasize the concepts covered in that discussion. Then participants receive a series tasks associated with the topic to apply to their personal projects, with feedback from faculty provided on the results.

During the second week, participants will use their answers to these tasks to guide their work developing their project. While this time is generally free form, there are regularly scheduled interactions with the presenters and the week concludes with participants demonstrating their work and presenting their planned future work.​ 


Carl Pearson is a Research Fellow at the London School of Hygiene & Tropical Medicine (UK). Tom Hladish is a Research Scientist at the University of Florida in the Department of Biology and the Emerging Pathogens Institute (USA). Arlin Stoltzfus is computational evolutionary biologist and bioinformatician at the Institute for Bioscience and Biotechnology Research (IBBR) and Office of Data and Informatics, Material Measurement Laboratory, National Institute of Standards and Technology (USA).

All of the presenters have extensive experience in developing software for scientific research and communication. Carl and Tom have been working with participants in the SEAMS workshops for several years, and Arlin regularly leads local hack-a-thons.

The teaching assistants for the workshop are active junior scientists and past SEAMS workshop participants.