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.
Software Engineering for Scientists and Engineers is a short course on the art of writing maintainable software.
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 Code – PEP-8, Linting, Naming, Comments
Documenting Code – Docstrings, Publishing Documentation
Refactoring– Functions, __main__(), Classes, API
Profiling & Debugging – When to Optimize, cProfile, pdb
Monitoring Execution – Command Line, Logging, Auditing
Unit Testing – unittest, Test Suites, Edge Cases
Source Control – Git, GitHub, Issues, Pull Requests
Effective Code Reviews – Mentoring New Coders, Leveraging Experience
Development Models –Agile, 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 this course?
For more information, contact the Enthought Academy team.
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.
Let us know how we can help!
Need help selecting the right certificate program? We'll be happy to help!