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
andassert
- 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