CMSE 802 serves graduate students, especially PhD students, who are not primarily trained as software engineers but who must build software to complete meaningful research.

This course should feel like a dissertation writing seminar, but for research software:

The central commitment is that students leave the course with software that genuinely advances their research, not just with completed assignments.

New PhD Students, Masters Students and Advanced Undergraduate students that end up taking this course should work with the instructor to make sure they have an approriate, real world, software project that will help them meet the learning goals for the course. Ideally this project will be picked out BEFORE the first day of class.

Core Identity

This is a scientific software writing course with computational modeling as the conceptual lens.

In this course, we use Analytical, Physical, and Data-Driven as a practical component convention for discussing models. Many projects can be described as a mixture of these components, while some projects will not fit this framing cleanly at every stage.

The software mantra is:

Safe, Portable, Reproducible, Robust, and Literate

These values should be visible in all course artifacts: team exercises, individual project repositories, reflections, and final deliverables.

Expectations

Students are expected to attend class every day OR notify the instructor when they can not attend and make up any work in class. Class works better if you are there but the instructor understands that graduate students are busy. Please do not be lazy.

How to Use This Guide

Most students should start with the Syllabus, Weekly Routine, and Course Milestone Roadmap. The remaining pages are intended to be used as references when questions arise about communication, teamwork, project organization, technical practices, or course expectations.

Major In-Class Project Sequence

Most of the semester will center on four major in-class assignments. Each assignment is designed for approximately four class periods (about two weeks) and is organized around a dedicated repository.

  1. Modeling Intro Project
  2. Analytical Modeling Project
  3. Physical Modeling Project
  4. Data-Driven Modeling Project

Each project page gives a short overview and links to the repository where day-to-day work will happen.

Review and Reference Sections

This guide is organized to reduce duplication. Concepts are generally explained in one place and referenced elsewhere. If you find something that is unclear, outdated, inconsistent, or missing, please let the instructional team know or submit an issue through the course repository.

A Note About Professional Judgment

This guide contains many examples, recommendations, and expectations. Not every situation you encounter during the semester will have a perfectly detailed set of instructions.

When requirements are unclear, students are encouraged to use professional judgment, discuss options with their team, document important decisions, and focus on the goals of the project rather than searching for technical loopholes in the instructions.

Reasonable decisions made in good faith are generally viewed more favorably than passive waiting or excessive dependence on instructor direction.

Bottom Line

The goal of this course is not simply to complete assignments. The goal is to build a successful project while developing professional skills in communication, teamwork, project management, and technical practice.

Use this guide as a resource when you need it and contribute improvements when you find opportunities to make it better.