Skip to content

Learning outcomes

Monday

Today we:

  • ☑ can give a reason of the benefits of following a software development procedure
  • ☑ can choose the better ones from the different software development models
  • ☑ can give a reason for the benefits of the different tools for the SDLC
  • ☑ have practiced starting a projects using Git/GitHub
  • ☑ have practiced making project analysis

Parts to be covered!

  • ☑ Source/version control
    • Git
    • We have a starting point!
    • GitHub as remote backup
  • ☑ Planning
    • ☑ Analysis
    • Design
  • ☐ Testing
    • Different levels
    • We don't do this today!
  • ☐ Collaboration
    • GitHub
  • ☑ Sharing
    • ☑ open science
    • ☐ citation
    • ☑ licensing
  • ☐ Documentation

Tuesday

  • can make a simple class diagram
  • can do pair programming for simple assignments
  • understand why pair programming is important
  • describe features of good pair programming
  • describe some benefits of TDD
  • can describe a TDD cycle

Parts to be covered!

  • ☑ Source/version control
    • Git
    • We have a starting point!
    • GitHub as remote backup
  • ☑ Planning
    • ☑ Analysis
    • ☑Design
  • ☑ Testing
    • Different levels
  • ☐ Collaboration
    • GitHub
  • ☑ Sharing
    • ☑ open science
    • ☐ citation
    • ☑ licensing
  • ☐ Documentation
    • ☑ in-code documentation

Wednesday

Today we:

  • can work in a simple, formal GitHub workflow
  • can do a simple code review
  • can move basic tests into a formal testing framework
  • understand the benefits of using a formal testing framework

Parts to be covered!

  • ☑ Source/version control
    • Git
    • We have a starting point!
    • GitHub as remote backup
    • branches
  • ☑ Planning
    • ☑ Analysis
    • ☑Design
  • ☑ Testing
    • Different levels
  • ☑ Collaboration
    • GitHub
    • pull requests
  • ☑ Sharing
    • ☑ open science
    • ☐ citation
    • ☑ licensing
  • ☐ Documentation
    • ☑ in-code documentation

Thursday

Today we:

  • have practiced to use good class names
  • have practiced to use classes for increased type safety
  • can tell the difference between composition and aggregation
  • have practiced to use composition for a 'has-a' relationship
  • can describe what design by contract is
  • have practiced to give good names to algorithms
  • can describe when to use if and assert
  • can name some misconceptions on optimisation
  • can describe Amdahl's law
  • can describe what big-O is
  • have practiced to determine the big-O complexity of a function
  • can describe what a run-time speed profile is
  • have practiced to get a run-time speed profile

Friday

Today we:

  • can give a reason for refactoring of design
  • can give a reason for refactoring code
  • can give a reason of the benefits of doing modular coding
  • can give the benefits of Design Patterns
  • can identify common mistakes making our software work for others
  • can find more information in how to package you software
  • can identify the needs for different kinds of documentation
  • can find resources for making good documentation.

Parts to be covered!

  • ☑ Source/version control
    • Git
    • We have a starting point!
    • GitHub as remote backup
    • branches
  • ☑ Planning
    • ☑ Analysis
    • ☑ Design
  • ☑ Testing
    • Different levels
  • ☑ Collaboration
    • GitHub
    • pull requests
  • ☑ Sharing
    • ☑ open science
    • ☑ citation
    • ☑ licensing
    • ☑ deployment
  • ☑ Documentation
    • ☑ in-code documentation
    • ☑ How-to/ Tutorials