Software Development Lifecycle
|
Software engineering takes a wider view of software development beyond programming (or coding).
Software you produce has inherent value.
Always assume your code will be read and used by others (including a future version of yourself).
Additionally, aim to make your software reusable by others.
Reproducibility is a cornerstone of science, so ensure your software-generated results are reproducible.
Following a process makes development predictable, can save time, and helps ensure each stage of development is given sufficient consideration before proceeding to the next.
Ensuring requirements are sufficiently captured is critical to the success of any project.
|
An Introduction to Python
|
|
Functions and Classes
|
|
Programming Paradigms
|
A Paradigm describes a way of structuring reasoning about code.
Different programming languages are suited to different paradigms.
Different paradigms are suited to solving different classes of problems.
Pure functions are functions with deterministic behaviour and no side effects.
Classes allow us to organise data into distinct concepts.
|
Best Practices in Writing Code
|
Source code is designed for humans, not machines.
Source code is read much more often than it is written.
Always assume that someone else will read your code at a later date, including yourself.
Good indentation greatly enhances code readability.
Name things like variables, functions, and modules to indicate purpose.
Good comments describe the reasons behind coding approaches as well as complex behaviour.
Community coding conventions help you create more readable software projects that are easier to contribute to.
Maintainable code is easier to understand, modify, extend, and fix.
Assume any piece of code you write will be reused.
Technical debt is incurred when quick solutions are prioritised over good solutions, but is paid off in the cost of maintaining the code.
Change the way you write code to make maintainability a key goal.
|
Survey
|
|
{:auto_ids}
key word 1
: explanation 1
key word 2
: explanation 2