CMPUT 301 - Introduction to Software Engineering

As an introduction to software engineering, you will learn about building software effectively. You will apply good practices, effective design techniques, and development tools within a team project to create an application with a graphical user interface.

The focus is largely practical, with broad coverage in topics such as: object-oriented design, user interfaces, unit testing, design patterns, and refactoring.

Communication skills, team dynamics, working with a "customer," and creativity are also important factors in the course project. The knowledge, skills, and experience you gain will be invaluable in your future software development projects.


  • Understand software processes and use revision control
  • Be able to create and understand Unified Modeling Language (UML) diagrams
  • Be able to meet software requirements
  • Know how to use design patterns and frameworks and follow design guidelines
  • Be familiar with unit testing and refactoring

Course Work

  • Quizzes
  • Team project
  • Project presentation
  • Assignment
  • Midterm
  • Final Exam