8000 Python-software-engineering/docs at master · gjbex/Python-software-engineering · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Quality of software matters, whether you share it with others or not. Software should be easy to install, easy to use, and well documented. This training will cover those aspects from the perspective of the Python ecosystem. However, it is also important that software is easy to maintain, so coding style matters, API-level documentation should be available, as well as a battery of tests to ensure the software's integrity. Of course, good design is at least as important.

Learning outcomes

When you complete this training you will

  • know some best practices for writing quality code;
  • catch errors at development time by using type annotations in your code;
  • know how to handle errors;
  • know how to systematically test your code;
  • know how to document your code;
  • be able to use objected-oriented programming to improve the reuse of your code;
  • be able to use functional programming concepts to improve your coding style;
  • aware that you can use design patterns to avoid reinventing the wheel.

Schedule

Total duration: 4 hours.

Subject Duration
introduction and motivation 5 min.
coding best practices 15 min.
exception handling 10 min.
type hints 10 min.
documenting code 10 min.
unit testing 50 min.
coffee break 10 min.
object-oriented programming 80 min.
functional programming 20 min.
design patterns discussion 20 min.
wrap up 10 min.

Training materials

Slides are 3D40 available in the GitHub repository, as well as example code and hands-on material.

Target audience

This training is for you if you want robust software that is easy to understand and maintain.

Prerequisites

You will need experience programming in Python. This is not a training that starts from scratch.

If you plan to do Python programming in a Linux or HPC environment you should be familiar with these as well.

Level

  • Introductory: 30 %
  • Intermediate: 40 %
  • Advanced: 30 %

Trainer(s)

0