Learn the core principles of software engineering to develop scientific software that is robust and reproducible. This class targets quantitative scientists in any discipline who have programming skills (any language) and want to use software to further their research. We cover version control, testing, benchmarking, data structures, algorithms, and pipelines. Instructor approval is required for CS majors and CS minors. Recommended prerequisites: ASEN 1320 or CSCI 1200 or CSCI 1300 or CSCI 2275 or ECEN 1310 or INFO 1201 and knowledge of a programming language, preferably Python. Degree credit not granted for this course and CSCI 6118.