Skip to content

Latest commit

 

History

History

topics

Topics

We expect to cover the following topics during the semester. Each topic has its own directory, which also contains any supplementary files or other resources.

  1. Introduction
    1. Reliability Defined
    2. The Linux Ecosystem
    3. Languages and Tools
    4. Docker
  2. Dynamic Analysis
    1. Functional Testing
    2. Unit Testing
    3. Choosing Test Values
    4. Code Coverage
    5. Fuzz Testing
    6. Integration Testing
  3. Static Analysis
    1. Code Complexity
    2. Linters and Formatters
    3. Data Types
  4. Design Techniques
    1. Dependency Injection
    2. Interfaces
    3. Pure Functions
    4. Reproducibility
    5. Single Responsibility Principle
    6. The Factory Pattern
  5. Development Methodologies
    1. Behavior-driven Development
    2. Code Review
    3. Design by Contract
    4. Test-driven Development
    5. Technical Debt
  6. Software in the Wild
    1. Analytics
    2. Logging
    3. Monitoring
    4. Bug Reporting and Triage