• Principles of Software Engineering

    • Teaching: 0 min
      Exercises: 0 min
      Questions
      • 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
    • page icon
      Code structures Page
      Teaching: 15 min
      Exercises: 15 min
      Questions
      • 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.
      Not available unless: You belong to any group
    • page icon
      Functions & Classes Page
      Teaching: 15 min
      Exercises: 15 min
      Questions
      • 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.
      Not available unless: You belong to any group
    • page icon
      Programming paradigms Page
      Teaching: 15 min
      Exercises: 20 min
      Questions
      • 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
      Not available unless: You belong to any group
    • page icon
      Best practices in writing code Page
      Teaching: 0 min
      Exercises: 0 min
      Questions
      • 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.
      Not available unless: You belong to any group
  • Foundation in Software Engineering

  • Acknowledgements

  • Pre-Course Confidence Check

  • Final Surveys