Sidebar    Double Major in Computer Science

The School of Computing offers a Second Major in Computer Science (CS) for non-SoC students.


The objectives for a Second Major in CS are as follows:

  • To provide a computer science programme within NUS for non-computing students;
  • To contribute to the national focus on growing the pool of technical ICT specialists in Singapore;
  • To produce graduates who are able to understand computer science principles and practices and apply it in a multi-disciplinary context.

Student Learning Outcomes

The Second Major in CS enables students to attain, by the time of graduation:

  1. Strong knowledge of computer science foundations and fundamentals, including (a) familiarity with common computer science themes and principles, (b) high-level understanding of systems as a whole, (c) understanding of the theoretical underpinnings of computer science and their influences in practice.
  2. Individual competence in applying sound principles and rigorous thinking to (a) analyse an application problem, (b) understand user’s requirement, (c) formulate the problem in terms of computation requirements, (c) conceive novel solution ideas, (e) design appropriate solutions that meet the requirements, (f) implement the solution, (g) evaluate the effectiveness of the solution.
  3. Strong communication skills and ability to work with, and contribute to, a multi-disciplinary team to bring a range of technologies together to develop computer systems and solutions of multi-disciplinary nature.
  4. Ability to engage in continuous professional development.

Admission Requirements

Students who has taken CS1101S/CS1010/S/E and CS2040 as either part of their degree requirements or Minor in Computer Science can apply for entry into Second Major in Computer Science if they obtain B+ or above in both modules.


The Second Major in CS is structured as follows:

  • Computer Science Foundation = 32 MCs
  • Computer Systems Team Project = 8 MCs
  • Computer Science Electives = 8 MCs

In total, the 48 MCs requirement for graduation are broken down as follows:

  • Core modules = 40 MCs
  • Elective modules = 8 MCs

The table below shows the programme structure in details.

Modules MCs
Computer Science Foundation 32
CS1010/S/E Programming Methodology 1 4
CS1231 Discrete Structures 2 4
CS2030 Programming Methodology II 3 4
CS2040 Data Structures and Algorithms 3 4
CS2100 Computer Organisation4 4
CS2103 Software Engineering 4
CS2106 Introduction to Operating Systems 5 4
CS3230 Design and Analysis of Algorithms 4
Computer Systems Team Project 8
Complete 8 MCs of the following pairs, or modules approved by the Department of Computer Science:
CS3201/2 Software Engineering Project I/II
CS3281/2 Thematic Systems Project I/II
CS3216 Software Product Engineering for Digital Markets and
CS3217 Software Engineering on Modern Application Platform
Computer Science Focus Areas 8
Complete 8 MCs of CS coded modules with at least one module at level-3000 or above.
Grand Total 48
  1. CS1010/S/E Programming Methodology can be replaced by CS1101S, CS1010J, or CS1010X. Students who are waived from completing CS1010 or its equivalent must complete another 4 MCs of CS-coded electives under Computer Science Focus area.
  2. CS1231 can be replaced by MA1100 or CS1231S. Students without A-level Mathematics are required to complete MA1301 Introductory Mathematics before completing CS1231.
  3. CS2030 and CS2040 can be replaced by CS2020 Data Structures and Algorithms Accelerated (6 MCs). The remaining 2 MCs will be added to either the Computer Systems Team Project requirement or the Computer Science Focus Areas requirement. CS2030 and CS2040 can be replaced by CS1020 or CS1020E Data Structures and Algorithms I (4 MCs) and CS2010 Data Structures and Algorithms II. CS20470 can be replaced by CS2040C or CS2040S.
  4. CS2100 Computer Organisation can be replaced by EE2024 Programming for Computer Interfaces or EE2028 Microcontroller Programming and Interfacing and its prerequisite EE2026 Digital Design.
  5. CS2106 Introduction to Operating Systems can be replaced by CG2271 Real-Time Operating Systems.

Continuation and Graduation Requirements

The Second Major in CS is a non-Honours major programme. Students cannot use NOC internship credits (TR coded modules) to map to the second major requirements.

The Second Major in CS will be awarded to students who completed the 48 MCs Second Major requirement. Students will need to complete the primary major requirements to graduate.

Double Counting Framework for Double Major Programme

For 2014 cohort and beyond, 16 MCs of the 48 MC Second Major can be double counted with the primary major/programme requirements.