-
Teaching: 0 min
Exercises: 0 minQuestions- What is a software development process?
- Why is a development process important?
- What are the different development stages?
Objectives- Explain some of the common issues found in academic software development
- Summarise the benefits of following a process of developing software
- Define the fundamental stages in software development
- Express how different process stages are connected
- Summarise the differences between the waterfall and agile models of software development
-
Code structures PageTeaching: 15 min
Exercises: 15 minQuestions- What are the key parts of Python we’ll need to know for the rest of the material?
Objectives- An introduction to Python, or a reminder of key features if you’ve used it before.
-
Functions & Classes PageTeaching: 15 min
Exercises: 15 minQuestions- How can we structure our data and code to help us keep track of larger programmes?
Objectives- Use functions to structure code which performs a particular task.
- Use classes to encapsulate structured data.
-
Programming paradigms PageTeaching: 15 min
Exercises: 20 minQuestions- How does the structure of a problem affect the structure of our code?
Objectives- Briefly describe the major paradigms we can use to classify programming languages.
- Decompose the flow of data within a program into a sequence of data transformations
- Use classes to encapsulate data within a more complex program
-
Best practices in writing code PageTeaching: 0 min
Exercises: 0 minQuestions- How do I write code to ensure that others, including myself, will be able to continue to understand it?
- What can I do to ensure my code can be used, modified and extended in the future?
Objectives- Explain the benefits of writing readable code.
- Describe the importance of clear code indentation, formatting, and naming.
- List examples of things that should and should not be code commented.
- Explain why conforming to defined coding conventions is beneficial.
- Explain benefits of writing maintainable code.
- Describe what is meant by technical debt.
- Understand approaches for writing maintainable code.
- Describe questions that can be used as a checklist for whether code is maintainable.