The Software Engineering program curriculum encompasses the technical and professional background you will need to engineer large complex software systems.

The curriculum is project-intensive, where students learn by example and by practice. The average Software Engineering student is expected to spend 50-60 hours per week on readings, projects, group meetings, and attending lectures, practicums, and labs. The program is quite challenging, but with hard work, students will acquire the skills and expertise to succeed not only in their classes but in their professional careers.

Theory and practices are introduced by applying them to relevant software engineering problems and are reinforced through case studies, exercises, and projects. Software engineering philosophy and discipline are taught early and practiced throughout the program. Students are expected early on to design and evaluate their programs, as part of successful software development. Through technical documentation, presentations, reports, and peer reviews, students develop strong communication skills. Through project management and teamwork, they develop strong interpersonal skills.

The curriculum includes: 

  • Mathematical and scientific background that students need to understand computer science fundamentals, to model software systems, and to evaluate software models and designs.
  • Intensive studies and exercises in computer science and engineering design, whereby students experience how to engineer software solutions.
  • Core software engineering courses that promote disciplined development processes, proper technical documentation, software design principles, project management, and systematic and quantifiable analysis techniques.
  • Advanced technical electives that examine domain-specific problems, designs, and solutions. 
  • Complementary electives that reflect on how computing and information technologies affect individuals, organizations, businesses, and society.

Academic Curriculum

  • The SE Curriculum Map illustrates the usual courses and how they connect.
  • The Academic Calendar is the official document of degree requirements.
    • Note1: In cases where the Curriculum Map and the Academic Calendar differ, the Academic Calendar is authoritative.
    • Note2: The Academic Calendar is revised each year. What shows at the link is the current definition. Most students are actually working with the definition from their year of entry. There could be differences between the definition on your year of entry and the current definition. You might want to look up historical versions of the calendar, or switch your requirement term to the current year.