Key Learning Outcomes

  1. To be able to define problems in real life by identifying functional and non-functional requirements the software is to satisfy.
  2. To be able to design and analyze software at component, subsystem, and software architecture level.
  3. To be able to develop software by coding, verifying, doing unit testing and debugging.
  4. To be able to maintain software due to working environment changes, new user demands and the emergence of software errors that occur during the execution.
  5. To have knowledge in the area of software requirements analysis, process planning, output specification, resource planning, risk management and quality planning.
  6. To be able to identify, evaluate, measure and manage changes in software development by applying software engineering processes and release software versions systematically.
  7. To be able to use various tools and methods to carry out the software requirements, design, development, testing and maintenance.
  8. To have knowledge of basic quality metrics, software life cycle, software quality, quality model, and be able to use them to develop, verify and test software.
  9. To have knowledge in other disciplines that have common boundaries with software engineering such as computer engineering, management, mathematics, ergonomics and systems engineering.
  10. To be able to grasp software engineering culture and ethics and have the basic information of applying them to the software engineering for the good of society.
  11. To be able to use a foreign language to follow related field publications and communicate with colleagues.