A project-based course on software development for (engineering) research

06/13/2019
by   Kyle E Niemeyer, et al.
0

This paper describes the motivation and design of a 10-week graduate course that teaches practices for developing research software; although offered by an engineering program, the content applies broadly to any field of scientific research where software may be developed. Topics taught in the course include local and remote version control, licensing and copyright, structuring Python modules, testing and test coverage, continuous integration, packaging and distribution, open science, software citation, and reproducibility basics, among others. Lectures are supplemented by in-class activities and discussions, and all course material is shared openly via GitHub. Coursework is heavily based on a single, term-long project where students individually develop a software package targeted at their own research topic; all contributions must be submitted as pull requests and reviewed/merged by other students. The course was initially offered in Spring 2018 with 17 students enrolled, and will be taught again in Spring 2019.

READ FULL TEXT
research
02/02/2021

Supporting Real Demands in Software Engineering with a Four Steps Project-Based Learning Approach

Project-based learning (PBL) is a student-centered and learn-by-doing ap...
research
02/19/2021

CoronaZ: another distributed systems project

This brief paper describes CoronaZ, a project for the Distributed System...
research
04/10/2018

Scrum2Kanban: Integrating Kanban and Scrum in a University Software Engineering Capstone Course

Using university capstone courses to teach agile software development me...
research
04/06/2022

Co-constructing Shared Values and Ethical Practice for the Next Generation: Lessons Learned from a Curriculum on Information Ethics

We present the motivation, design, outline, and lessons learned from an ...
research
05/16/2022

Benefits and Drawbacks of a Graduate Course: An Experience Teaching Systematic Literature Review

Graduate courses can provide specialized knowledge for Ph.D. and Master'...
research
12/16/2019

Engineers Code: reusable open learning modules for engineering computations

Undergraduate programs in science and engineering include at least one c...
research
09/07/2022

The Science Gateway Community Institute's Consulting Services Program: Lessons for Research Software Engineering Organizations

The Science Gateways Community Institute (SGCI) is an NSF Software Infra...

Please sign up or login with your details

Forgot password? Click here to reset