Skip to content

Summary of whole week

In this week, we:

  • [ ] practiced designing a project
  • [ ] practiced a formal git branching workflow
  • [ ] practiced a formal GitHub workflow
  • [ ] practiced doing code reviews
  • [ ] can describe facets of a good code review
  • [ ] practiced pair programming
  • [ ] can describe facets of good pair programming
  • [ ] practiced TDD
  • [ ] can describe a TDD cycle
  • [ ] practiced using a formal testing framework
  • [ ] responded to CI scripts
  • [ ] can describe some facets of good function design
  • [ ] can describe some facets of good class design
  • [ ] can describe some misconceptions in optimization
  • [ ] can describe in general terms with Amdahl's Law is
  • [ ] can describe what big-O is
  • [ ] can describe what a run-time profile is

Program ...

  • A program shall be or have content/components that is:

    • Correct
    • Efficient
    • Reusable
    • Changeable
  • Software development is both series of steps:

    1. Requirements
    2. Analysis and design
    3. Development
    4. Test
    5. Development and maintenance
  • ... and iteration of these
Did we miss anything on the list?

Tools

  • Tools 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
Did we miss anything on the list?