Computing & Technology

Software Engineering

Design, build, test, and maintain large-scale software systems—combining programming skills with engineering principles for reliable, scalable applications.

Overview

Software Engineering is the systematic application of engineering principles to the design, development, testing, deployment, and maintenance of software systems. While Computer Science focuses on the theoretical foundations of computation—algorithms, data structures, and computational complexity—Software Engineering emphasises the practical challenges of building real software that works reliably at scale, on time, and within budget.

The curriculum covers software design patterns, systems architecture, software testing and quality assurance, agile and DevOps methodologies, project management, version control, database design, web and mobile development, and software security. Students work extensively in teams on real projects, learning to manage codebases, conduct code reviews, write documentation, and collaborate using industry-standard tools. Many programmes include capstone projects with industry partners.

Graduates work as software engineers, full-stack developers, DevOps engineers, site reliability engineers, and technical leads. The degree provides a direct path to the most common and well-paid role in the technology industry. For students more interested in algorithms, AI research, or theoretical computer science, see Computer Science.

Several universities have defined what it means to study Software Engineering as a rigorous, standalone discipline. Carnegie Mellon is arguably the birthplace of modern software engineering education—its Software Engineering Institute (SEI), a federally funded research centre on campus, literally wrote foundational frameworks like the Capability Maturity Model (CMM) and CERT for cybersecurity incident response, and undergraduates benefit from a curriculum shaped by decades of large-scale systems research. The University of Waterloo in Canada offers what is widely regarded as the world's premier co-operative education programme for SE, where students alternate between academic terms and paid industry placements at companies like Google, Apple, and Bloomberg—graduating with nearly two years of professional experience. TU Munich delivers a programme deeply rooted in the German engineering tradition, with strength in automotive software, embedded systems, and formal methods, preparing students for Europe's leading technology and manufacturing sectors. The University of Sheffield's software engineering programme emphasises safety-critical and dependable systems, reflecting the UK's strengths in aerospace, defence, and healthcare software. The University of Melbourne offers one of Australia's most established SE programmes, integrating design thinking and agile practices within a research-intensive environment. For students who know they want to build real-world software systems rather than pursue theoretical research, these programmes provide the ideal foundation.

In Singapore

Software engineers are among the most in-demand professionals globally, and Singapore's tech ecosystem—home to regional offices of Google, Meta, ByteDance, Grab, and Shopee—offers abundant career opportunities.

Career Outcomes & Salary

What jobs can I get and how much will I earn?

Entry Level0–2 years

$75,000–$130,000 (US) / £32,000–£55,000 (UK) / A$65,000–$95,000 (AU)

Software EngineerFull-Stack DeveloperBackend EngineerFrontend DeveloperDevOps Engineer
Top employers
GoogleMicrosoftAmazonAppleMetaStripeShopifystartups of all sizes
Mid Career3–8 years

$140,000–$260,000 (US) / £65,000–£125,000 (UK) / A$110,000–$190,000 (AU)

Senior Software EngineerTech LeadEngineering ManagerStaff EngineerSite Reliability Engineer
Senior10+ years

$220,000–$500,000+ (US, including equity at major tech companies)

Principal EngineerVP of EngineeringCTODistinguished EngineerFounder
Industries
TechnologyFinance & FintechHealthcare & BiotechE-commerceAutomotiveGamingConsultingGovernment/Defense
Demand Outlook

Very strong—software engineers remain among the most in-demand professionals globally. The US Bureau of Labor Statistics projects 25% growth for software developers through 2031. Every industry is becoming a software industry, and AI has expanded (not contracted) the scope of what engineers build.

What You'll Learn

Core topics and skills covered in this degree

Software Design & Architecture
Full-Stack Web & Mobile Development
Software Testing & Quality Assurance
Agile & DevOps Methodologies
Database Design & Management
Version Control & CI/CD
Software Project Management
Software Security & Reliability

Is This Right For Me?

Honest self-assessment to help you decide

WorkloadHeavy—expect 15–25 hours per week outside lectures on programming projects, lab work, and team-based assignments. The workload is consistently high, with regular project milestones rather than a few big exams.
Math LevelModerate to high—discrete mathematics, linear algebra, and some calculus are required. SE involves less pure math than AI or theoretical CS, but more than many students expect.
CreativityBalanced—software architecture and design patterns provide structure, but there’s enormous creativity in how you design systems, solve problems, and build user experiences. The best engineers are creative problem-solvers within engineering constraints.
TeamworkHeavily team-based—SE programmes emphasize collaborative development, Agile methodologies, code reviews, and team projects. This mirrors industry practice and is a core part of the curriculum.

You'll thrive if...

  • You love building things that work—there’s a unique satisfaction in writing code that solves a real problem and seeing people use it
  • You enjoy the craft of writing clean, maintainable code and take pride in well-structured systems
  • You thrive in collaborative environments—code reviews, pair programming, and team problem-solving energize you
  • You’re comfortable with constant learning—new frameworks, tools, and best practices emerge regularly
  • You like seeing tangible results from your work—software engineering produces concrete, usable products

Might not be for you if...

  • Extended debugging sessions frustrate rather than challenge you—finding and fixing bugs is a significant part of the job
  • You prefer theoretical or research-oriented work over practical application—SE is intensely applied
  • Working on someone else’s codebase sounds unappealing—in industry, you’ll spend more time reading and modifying existing code than writing new code
  • You want to work independently most of the time—modern SE is highly collaborative with daily code reviews, standups, and team decisions
  • You’re primarily interested in computing theory (algorithms, complexity, proofs) rather than building practical systems
WorkloadHeavy—expect 15–25 hours per week outside lectures on programming projects, lab work, and team-based assignments. The workload is consistently high, with regular project milestones rather than a few big exams.
Math IntensityModerate to high—discrete mathematics, linear algebra, and some calculus are required. SE involves less pure math than AI or theoretical CS, but more than many students expect.
Creativity vs StructureBalanced—software architecture and design patterns provide structure, but there’s enormous creativity in how you design systems, solve problems, and build user experiences. The best engineers are creative problem-solvers within engineering constraints.
Group vs SoloHeavily team-based—SE programmes emphasize collaborative development, Agile methodologies, code reviews, and team projects. This mirrors industry practice and is a core part of the curriculum.

A Day in the Life

What a typical week actually looks like

A typical week in Year 2 of a Software Engineering programme is intensely practical and project-driven. Monday starts with a software architecture lecture—you’re learning about design patterns (Observer, Strategy, Factory) and when to apply them. The professor presents a real codebase from an open-source project and shows how poor architecture decisions made five years ago are causing pain today. After lunch, a testing and quality assurance lab has you writing unit tests, integration tests, and learning test-driven development (TDD)—writing the test before the code feels backwards at first, but you start to see why it catches bugs earlier.

Tuesday brings a web systems engineering course where you’re building a full-stack application with React, Node.js, and PostgreSQL. Your assignment this week is implementing user authentication with JWT tokens and role-based access control—you discover that security is harder than it looks when your first attempt is vulnerable to token replay attacks. Wednesday is your capstone project day: your team of five is building a scheduling platform for a university department using Agile methodology. You run a sprint planning meeting, update the Kanban board, conduct a code review of your teammate’s pull request (tactfully pointing out a potential race condition), and pair-program on the most complex feature.

Thursday has a DevOps and deployment lecture covering CI/CD pipelines, Docker containers, and cloud deployment on AWS. You set up a GitHub Actions workflow that automatically runs tests and deploys to a staging environment whenever someone pushes to the main branch. The afternoon is an elective on mobile development where you’re building a Flutter app. Friday is dedicated to project work: you fix three bugs from the issue tracker, write documentation for the API your team built, and attend a retrospective meeting to discuss what went well and what to improve in the next sprint. Weekends involve catching up on readings about microservices architecture and working through a persistent database migration issue that’s blocking your team’s next feature.

High School Preparation

What to study and do before university

Recommended
HL Mathematics: Analysis and ApproachesHL Computer ScienceHL Physics
Helpful
SL Further Mathematics (if available)HL Design Technology

Skills to Develop

  • Learn to build complete applications, not just scripts—create a web app with a frontend, backend, and database using tutorials on freeCodeCamp or The Odin Project
  • Master Git and GitHub early—version control is a daily tool for software engineers, and many students don’t learn it until university
  • Practice collaborative coding—contribute to an open-source project on GitHub, even if it’s just fixing documentation or small bugs
  • Learn to write clean, readable code—read about coding style guides and practice refactoring your own projects

Extracurriculars

  • Build and deploy real applications that people can use—a personal website, a tool for your school, a mobile app for a local organization
  • Participate in hackathons and collaborate with teams of developers, designers, and business students
  • Contribute to open-source projects on GitHub—this demonstrates collaboration skills and real-world coding ability
  • Join coding competitions (USACO, Google Code Jam) to sharpen algorithmic thinking
  • Start a tech project at school—automate a process, build a useful tool, or develop an app that solves a real problem

How This Compares to Similar Majors

Side-by-side with related fields

Getting In — Admissions Guide

How competitive is this major and how to stand out

Competitiveness: High

SE programmes are competitive, similar to CS. Where universities offer SE as a distinct programme (Waterloo, UNSW, University of Adelaide, TU Munich), admissions typically require strong mathematics and evidence of programming aptitude. A-Level students usually need A*AA including Mathematics; IB students need 38+ with HL Mathematics at 6 or 7. Waterloo’s SE programme is exceptionally competitive, with admission averages above 95%.

What Strengthens Your Application

  1. 1Strong mathematics results and demonstrated programming ability
  2. 2A portfolio of completed software projects on GitHub—not just code snippets, but applications that work end-to-end
  3. 3Evidence of collaborative development—open-source contributions, hackathon team projects, or group coding work
  4. 4Understanding of the software development lifecycle—testing, version control, deployment—not just writing code
  5. 5A personal statement showing passion for building things and solving practical problems through software

Common Mistakes to Avoid

  • Focusing only on competitive programming without showing ability to build complete applications
  • Not demonstrating collaboration skills—SE is fundamentally a team discipline
  • Confusing software engineering with computer science—show awareness that SE emphasizes engineering practice, not just theory

Interview & Admission Tests

Waterloo and some UK programmes may ask about your development experience and project work. Be prepared to walk through a project you’ve built, explain design decisions, and discuss what you’d do differently.

General Preparation

These recommendations cover general preparation across Singapore universities. Specific programme requirements may differ—detailed per-programme requirements coming soon.

IB Diploma

  • Mathematics AA HL (essential)
  • Computer Science HL (strongly recommended)
  • Physics HL (helpful)

A-Level

  • H2 Mathematics (essential)
  • H2 Computing (strongly recommended)
  • H2 Physics (helpful)

AP

  • AP Computer Science A (essential)
  • AP Calculus BC
  • AP Statistics (helpful)

IGCSE

  • Computer Science (essential)
  • Additional Mathematics (essential)
  • Physics (recommended)

Skills & Aptitudes

Programming fluencySystems thinking and designTeam collaborationAttention to code quality

SMU admission requirements:SMU Admissions

Where to Study in Singapore

SMU

School of Computing and Information Systems

Bachelor of Science (Software Engineering)Details

Similar Majors

Considering this major beyond Singapore?

View the global university major guide →

Frequently Asked Questions

What do you study in Software Engineering?

Software Engineering is the systematic application of engineering principles to the design, development, testing, deployment, and maintenance of software systems. While Computer Science focuses on the theoretical foundations of computation—algorithms, data structures, and computational complexity—Software Engineering emphasises the practical challenges of bu…

What can you do after a Software Engineering degree?

Typical entry-level roles: Software Engineer, Full-Stack Developer, Backend Engineer, Frontend Developer, DevOps Engineer (starting salary $75,000–$130,000 (US) / £32,000–£55,000 (UK) / A$65,000–$95,000 (AU)). Key industries: Technology, Finance & Fintech, Healthcare & Biotech, E-commerce, Automotive. Very strong—software engineers remain among the most in-demand professionals globally. The US Bureau of Labor Statistics projects 25% growth for software develo…

Which high-school courses prepare you for Software Engineering?

Recommended IB courses: HL Mathematics: Analysis and Approaches, HL Computer Science, HL Physics; Recommended AP courses: AP Computer Science A, AP Calculus BC, AP Physics C: Mechanics; Recommended A-Levels: Mathematics, Further Mathematics, Computer Science.

Ready to prepare for Software Engineering?

Our tutors can help strengthen your English and academic skills for your target program.