By Scientists for scientists

Software Engineering for Scientists & Engineers

Enthought Academy

Software Engineering for Scientists & Engineers

Track Managerial Track, Tool Maker Track

In this short course on the critical art of writing maintainable software, learn best practices for making quality software that can be used, referenced, and kept in working order.

Course Hours20 hours

Course Overview

Software Engineering for Scientists and Engineers is a short course on the art of writing maintainable software.

Unfortunately, software that is not written with maintenance in mind can be a source of pain for years or decades.

This course will teach you best practices, recommend good habits, and get you thinking about how to make quality software that can be used, referenced, and kept in working order long after the original author(s) have moved on.


This course requires basic proficiency with Python and the scientific Python stack. Some practical experience with standard Python, NumPy (ndarrays), and Pandas (DataFrames) are essential to working with the code and concepts presented in this course. All the examples and exercises use Python code and Python tools, even though many of the principles are useful for all languages.

If you have taken Enthought’s Python Foundations for Scientists and Engineers, you have the requisite background knowledge for this course.


Why Software Engineering?Introduction, General Applicability
Readable CodePEP-8, Linting, Naming, Comments
Documenting CodeDocstrings, Publishing Documentation
RefactoringFunctions, __main__(), Classes, API
Monitoring Execution – Command Line, Logging, Auditing
Profiling & Debugging –
When to Optimize, cProfile, pdb
Unit Testingunittest, Test Suites, Edge Cases
Source Control – Git, GitHub, Issues, Pull Requests
Effective Code ReviewsMentoring New Coders, Leveraging Experience
Development ModelsAgile, Waterfall



Enthought instructors have advanced degrees in scientific fields such as physics, engineering, computer science, and mathematics, and all have extensive experience through research and consulting in applying Python to solve complex problems across a range of industries, allowing them to bring their real world experience to the classroom every day.


black, click, flake8, logging, pdb, profile, sphinx, unittest


Download the syllabus for this course here.

Interested in corporate training?

For more information, contact the Enthought Academy team.

[ninja_form id=25]

Our Scientific Python Experts

Enthought Academy instructors are scientists and engineers themselves and have deep knowledge and understanding of the strategies and technologies covered in each track, and extensive practical experience applying Python to solve complex challenges across a range of science-based industries.

Sorry, we couldn't find any posts. Please try a different search.

Let us know how we can help!

Need help selecting the right certificate program? We'll be happy to help!