Course Code: programmingexcellence
Duration: 7 hours
Prerequisites:
  • Basic programming experience
Overview:

This course is intended for

  • Beginner or intermediate programmers and developers

Format of the course

  •     Part lecture, part discussion, hands-on practice

Course Outline:

Introduction to excellent programming

  • Designing software that is maintainable
  • Designing software that is reliable
  • Designing software that is efficient
  • Designing software that is usable

Design patterns

Anti-patterns

The software life cycle

  • Conventional development model
  • Agile development
    • Iterative software development
  • Choosing the right language for the job
    • Functional languages
    • Procedural languages
    • Declarative languages
    • Imperative languages
    • Object oriented programming
    • Programming frameworks
      • Model View Controller (MVC)

Maintainability

  • consistency
  • cohesion
  • simplicity
  • dependencies
    • Inversion of control (IoC)
  • commenting

Reliability

Testing your software as you create it

Efficiency

  • Refactoring

Usability

  • How will the end user use the software?
  • How will international users use your software?
  • Internationalizing your software

Building and releasing software

Summary and conclusion