Second Major in Computer Science

The School of Computing offers a second major in Computer Science (CS) for non-School of Computing students.

Objective

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

Cohorts 2021 onwards
Existing students who have obtained B+ or above in CS1010 (or its equivalent) and CS2040 (or its equivalent) may apply for the second major by submitting an application to the School of Computing by their 4th semester of study in NUS. Students who are directly admitted to the second major during admissions exercise must obtain B+ and above in both CS1010 (or its equivalent) and CS2040 (or its equivalent) to continue in the second major in Computer Science programme.

College of Design and Engineering students are precluded from pursuing Computer Science second major. They may pursue minor and second major in Computing offered by their home faculty. Students from earlier cohorts and were admitted to the computer Science second major will continue to fulfil their outstanding requirements. CSxxxxDE version courses will not be considered as meeting our Computer Science second major requirements.

Cohorts 2017 up to 2020
For students from cohorts 2017 till 2020, those who have taken CS1010/S/E and CS2040/C/S 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 courses.  Students who are directly admitted to the second major during admissions exercise must obtain B+ and above in both CS1010 (or its equivalent) and CS2040 (or its equivalent) to continue in the second major in Computer Science programme. Students pursuing the BEng (Electrical Engineering) programme are precluded from reading this second major.

Cohorts 2016 and earlier
Students who has taken CS1010/S/E and CS1020/E 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 courses. Existing students who have yet to embark on CS1020/E can apply for entry into Second Major in Computer Science if they have obtained B+ or above in CS1010 (or its equivalent) and CS2040 (or its equivalent). They may may apply for the second major by submitting an appplication to School of Computing by their 4th semester of study in NUS.Students pursuing the BEng (Electrical Engineering) programme are precluded from reading this second major.

Application

School of Computing Minor/Second major are restricted programmes which students must apply during the prescribed application window specified by the School via EduRec. Students will not be able to declare themselves in the Academic Plan Declaration Exercise (APAD) before ModReg begins for each semester. APAD is only for open minors/second majors which do not require special approval from the host department to approve.

To apply for School of Computing minor/second major programme, students must submit their application to the School of Computing by the 4th semester of study, for enrolment at the start of their 5th semester of study.

With the recent revision to total unit requirements for Minor and Second Major programmes, the School is making special provision to allow students from Cohort 2019 a final application round to apply for School of Computing minor/second major programmes in Sem 1 AY21-22 only, for enrolment at the start of Sem 2 AY21-22. Any late request to enroll after our application window has closed will not be entertained.

Please take note that the application date will typically be from the Friday (9:00 AM) before reading week of each regular semester till end of first week of examinations on Sunday (11:59 PM), based on NUS academic calendar hereKindly refer here
for more information on the application procedure for restricted programmes
.

Structure

Please click here for the university’s framework for completing of a second major for different cohorts.

Continuation and Graduation Requirements

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

The Second Major in CS will be awarded to students who have completed the total units of second major requirements they belong to.  It would be either 48 units and 40 units respectively for the cohort they belong to.  That is, 48 units for Cohort before 2019 and 40 units for Cohorts 2019  onwards. Students will need to complete the primary major requirements to graduate.

The programme structure for Cohort 2021 onwards is given below.

The Second Major in CS is structured as follows:

  • Computer Science Foundation = 28 units
  • Computer Science Focus Area Electives = 12 units

The table below shows the programme structure in details.

Programme StructureUnits
Computer Science Foundation28
CS1010/S/E Programming Methodology 14
CS2030 Programming Methodology II4
CS2040 Data Structures and Algorithms 24
CS2100 Computer Organisation 34
CS2103 Software Engineering4
CS2106 Introduction to Operating Systems 44

One of the following courses:

  • CS1231S Discrete Structures 5
  • CS2102 Database Systems
  • CS2104 Programming Language Concepts
  • CS2105 Introduction to Computer Networks
  • CS2107 Introduction to Information Security
  • CS2108 Introduction to Media Computing
  • CS2109S Intro. to AI and Machine Learning
4
Computer Science Focus Area Electives12
Complete 12 units of CS-coded elective courses at level-3000 or above.
Please click here for details for the list.
 
Grand Total40

1 CS1010/S/E Programming Methodology can be replaced by CS1101S, CS1010J, or CS1010X. Students who are exempted from CS1010/S/E must complete another 4 units of CS-coded elective courses under Computer Science focus areas (for a total of 12 units). CSxxxxDE version courses will not be considered as meeting our Computer Science second major requirements.

2 Students who have taken CS2040C or CS2040S can use the course to replace CS2040. Students who have taken CS2030S can use CS2030S to replace CS2030. Cohort 2017 and after must take CS2030 and CS2040/C/S series.

3 CS2100 Computer Organisation can be replaced by EE2024 Programming for Computer Interfaces or EE2028 Microcontroller Programming and Interfacing and its prerequisite EE2026 Digital Design.

4 CS2106 Introduction to Operating Systems can be replaced by CG2271 Real-Time Operating Systems.

5 CS1231S can be replaced by MA1100/T or CS1231. Students without A-level or H2 Mathematics are required to complete MA1301 Introductory Mathematics before completing CS1231S.

The programme structure for Cohort 2019/20 to 2020/21 is given below.

The Second Major in CS is structured as follows:

  • Computer Science Foundation = 32 units
  • Computer Science Electives = 8 units

The table below shows the programme structure in details.

Programme Structure

Units
Computer Science Foundation32
CS1010/S/E Programming Methodology 14

CS2030 Programming Methodology II and CS2040 Data Structures and Algorithms 2

8
CS1231 Discrete Structures 34
CS2100 Computer Organisation 44
CS2103 Software Engineering4
CS2106 Introduction to Operating Systems 54
CS3230 Design and Analysis of Algorithms4
Computer Science Focus Areas8

Complete 8 units of CS-coded elective courses at level-3000 or above. 
Please click here for details for the list.

 

Grand Total

40

1 CS1010/S/E Programming Methodology can be replaced by CS1101S, CS1010J, or CS1010X. Students who are exempted from CS1010/S/E must complete another 4 units of CS-coded electives under Computer Science focus areas (for a total of 12 units).

2 Students who have taken CS2040C or CS2040S can use the course to replace CS2040. Students who have taken CS2030S can use CS2030S to replace CS2030. Cohort 2017 and after must take CS2030 and CS2040/C/S series.

3 CS1231 can be replaced by MA1100 or CS1231S. Students without A-level or H2 Mathematics are required to complete MA1301 Introductory Mathematics before completing CS1231.

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.

The Second Major in CS is structured as follows:

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

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

  • Core courses = 40 units
  • Elective courses = 8 units

The table below shows the programme structure in details.

Programme StructureUnits
Computer Science Foundation32
CS1010/S/E Programming Methodology 14

Either:

CS1020/E Data Structures and Algorithms I and CS2010 Data Structures and Algorithms II 2

Or
CS2030 Programming Methodology II and CS2040 Data Structures and Algorithms 2

8
CS1231 Discrete Structures 34
CS2100 Computer Organisation44
CS2103 Software Engineering4
CS2106 Introduction to Operating Systems 54
CS3230 Design and Analysis of Algorithms4
Computer Systems Team Project8

Complete 8 units of the following pairs, or courses approved by the Department of Computer Science:

  • CS3203 Software Engineering Project 6
  • CS3281/2 Thematic Systems Project I/II
  • CS3283/4 Media Technology Project I/II
  • CS3216 Software Product Engineering for Digital Markets and CS3217 Software Engineering on Modern Application Platform
8
Computer Science Focus Areas8
Complete 8 MCs of CS coded elective courses with at least one course at level-3000 or above. 
Grand Total48

1 CS1010/S/E Programming Methodology can be replaced by CS1101S, CS1010J, or CS1010X. Students who are exempted from CS1010/S/E must complete another 4 units of CS-coded elective courses under Computer Science focus areas (for a total of 12 units)

2 (CS1020 and CS2010 ) or (CS2030 and CS2040) can be replaced by CS2020 Data Structures and Algorithms Accelerated (6 MCs). The remaining 2 units will be added to either the Computer Systems Team Project requirement or the Computer Science Focus Areas requirement. Students who have taken CS2040C or CS2040S can use the course to replace CS2040. Students who have taken CS2030S can use CS2030S to replace CS2030. Cohort 2017 and after must take CS2030 and CS2040/C/S series.

3 CS1231 can be replaced by MA1100 or CS1231S. Students without A-level or H2 Mathematics are required to complete MA1301 Introductory Mathematics before completing CS1231.

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.

6 CS3203 replaces the former CS3201 and CS3202 which have been discontinued.