About John von Neumann

John von Neumann (1903-1957) was a mathematician and computer scientist.

He contributed to putting set theory on a firm foundation, thus resolving the crisis of Russell Paradox. He developed the operator theory of quantum mechanics, thereby unifying the formulations of Heisenberg and Schroedinger.

He also made key contributions to the development of the hydrogen bomb.

His minimax theorem, fixpoint theorem, and other equilibria results were significant to the development and study of game theory and economic behaviour.

He made famous a computer architecture -- now known as the von Neumann architecture -- that became the standard of computer architecture.

He contributed to the development of Monte Carlo simulations on computers and created the field of cellular automata.

He had made many contributions to practical algorithms, including merge sort (the most practical method for sorting large lists), random number generator (used in a wide range of applications), and artificial viscosity (highly developed jet and rocket engines might not be developed without this algorithm).

The von Neumann Programme is named after John von Neumann to commemorate this scintillating intellect of computer science.

John von Neumann is an excellent role model for students of the von Neumann Programme, inspiring them to pursue difficult large-scale problems, to enjoy translating theory to practice, and working in large team to make contributions to the world. This special programme thus aims to nurture students who aspire to engage in an industry career emphasising design of complex computing systems.

The von Neumann Programme is most suitable for students who love to solve complex real-world problems and develop complex computer-based systems for real-world applications. Students will be selected based on their performance in selected modules, including CS3281 and CS3282 or CS3216 and CS3217. Students admitted into vNP will be assigned CS professors and industry partners as their mentors, who will help them to blend academic knowledge and industrial experience into their studies. They must maintain a minimum CAP of 4.00 in every semester of their study.

vNP has similar curriculum structure as the revised BComp(CS) programme, but emphasizes design and development of complex computing systems. A complex computing system is a class of computing systems that have complex hardware and/or software architectures. Typically it is composed of an integrated collection of computing components that together solve complex problems. Examples of complex computing systems include parallel and distributed systems, systems comprising heterogeneous database systems connected by networks, grid computing and cloud computing systems, etc. Due to the complexity of such systems, their design and development require strong technical knowledge of the systems and their components, as well as knowledge and skills of the design and development methodologies, so that correct choices can be made in the design and development process.

Students are also encouraged to take quality certification courses such as SAP, Java, Oracle database, DB2 database, CCNA, and CITPM to better prepare them for applied R&D in the industry.

Degree Requirements *

Students admitted into the von Neumann Programme will complete the BComp(CS) degree program requirements, with the following variations:

  • They will read CS3219 Software Engineering Principles and Patterns (4 MCs) as an additional Breadth and Depth requirement. They will have 28 MCs remaining in the Unrestricted Electives.
  • They will take either:
    • CS3281 and CS3282 Thematic Systems Project I and II (8 MCs) with large-scale complex systems development,
    • CS3216 Software Product Engineering for Digital Markets and CS3217 Software Engineering on Modern Application Platforms^
    to meet the Software Engineering Team Project requirement
  • They must satisfy at least one focus area requirements from the following focus areas: Networks and Distributed Systems, Database Systems, Parallel Computing, Programming Languages, Software Engineering, and Computer Security.

^ : Both CS3216 and CS3217 are 5-MC modules. Students who choose to take CS3216 and CS3217 will count 8 MCs towards the Computer Systems Team Project requirement and 2 MCs towards Unrestricted Electives. Students must take both CS3216 and CS3217 to complete the Software Engineering Team Project requirement. If a student completed only one of CS3216 and CS3217, he or she has to take another pair of modules to meet the Computer Systems Team Project requirement

NUS Overseas Colleges (NOC) - Computer Science

Students who attended NOC programme may:

  • count TR3201 Entrepreneurship Practicum (8 MCs) towards CS3882 Breakthrough Ideas for Digital Markets (4 MCs) and one bridging module at 4 MCs. The mapping to bridging module (MA1301/PC1221/PC1222) applies to CS students with A-level or equivalent qualifications in either Mathematics or Physics.  These students replace the missing MCs for the bridging modules with unrestricted electives.  Dummy CS codes CSX3741 and CSX3742 will be issued in place of MA1301 and PC1221/PC1222 respectively.
  • count TR3202 Start-up Internship Programme (12 MCs) towards Industrial Experience Requirement.
  • count TR3203 Start-up Case Study and Analysis towards Unrestricted Electives. Students working on computer systems term projects for TR3203 may seek approval to instead take TR3203P, which counts towards CS3201/2 Software Engineering Project I/II or equivalent pairs.  Alternatively, TR3203 can be mapped to TR3203E in which 8 MCs of CS-coded electives at level-3000 can be considered for the fulfilment of CS Breadth and Depth Requirements.

University Scholars Programme (Computer Science)

Students in the University Scholars Programme who choose the Bachelor of Computing (Computer Science) major will follow the Computer Science programme, but with the following variations:

  • They will read GER1000 Quantitative Reasoning (4 MCs) as compulsory module for the University Level Requirements (ULR). The remaining 16 MCs in ULR are replaced by the 3 USP Inquiry Modules and 1 USP Foundation module ( i.e. University Scholars Seminar).
  • They will not be required to read CS2101 Effective Communication for Computing Professionals. It is replaced by USP Foundation module: Writing and Critical Thinking
  • They will not be required to read one Science Module (4 MCs). It is replaced by one USP Inquiry module in Sciences and Technologies basket.
  • They will read CS3281 and CS3282 as independent study modules (ISMs) which will also be counted as 2 USP Inquiry modules in Sciences and Technologies basket.

Summary of degree requirements for Bachelor of Computing (Computer Science) – von Neumann Programme (vNP) *

*: This revised curriculum is currently in the process of approval.

Modules MCs Subtotals







Computer Science Foundation



CS1010     Programming Methodology2


CS1231     Discrete Structures


CS2030     Programming Methodology II


CS2040     Data Structures and Algorithms


CS2100     Computer Organisation


CS2103T   Software Engineering 3


CS2105     Introduction to Computer Networks


CS2106     Introduction to Operating Systems


CS3230     Design and Analysis of Algorithms


Computer Science Breadth & Depth


Satisfy 1 vNP Focus Area, with 3 CS modules at level-4000 or above. After satisfying a vNP Focus Area, a student may choose to satisfy other CS Focus Areas.4


vNP Focus Areas are:
- Computer Networks
- Database Systems
- Networking and Distributed Systems
- Parallel Computing
- Programming Languages
- Software Engineering
- Computer Security


CS3219      Software Engineering Principles and Patterns


Complete at least 8 MCs of Computer Systems Team Project modules from the one of the following pairs:

CS3281 Thematic Systems Project I and CS3282 Thematic Systems Project II (with large-scale complex system development), or
CS3216 Software Product Engineering for Digital Markets and CS3217 Software Engineering on Modern Application Platforms


Industrial Experience Requirement


IT Professionalism


IS1103/X  IS Innovations in Organisations and Society


CS2101  Effective Communication for Computing Professionals 3

ES2660  Communicating in the Information Age 4

Mathematics and Sciences


MA1521     Calculus for Computing5


MA1101R   Linear Algebra I


ST2334      Probability and Statistics 6


One Science Module7





Grand Total




1: Students can refer here for the requirements for ULR.

2: CS1010 can be replaced by CS1101S Programming Methodology.

3 : Students taking CS2103T Software Engineering must take CS2101 Effective Communication for Computing Professionals in the same semester.

4: The 24 MCs of CS modules refer to CS-coded modules listed in the CS Focus areas and IFS4101 Legal Aspects of Information Security. The listing of IS-coded modules in the CS focus areas provide a guide to students should they be interested in taking more related modules in the respective areas for depth. These IS modules, if taken, will be used to fulfill unrestricted electives.

5: Students pursuing double degree in Computer Science and Mathematics/Applied Mathematics are recommended to replace MA1521 Calculus for Computing by MA1102R Calculus.

6:  Students pursuing a double degree in Computer Science and Mathematics/Applied Mathematics or Second Major in Mathematics/Statistics will take ST2131 Probability and ST2132 Mathematical Statistics in place of ST2334 Probability and Statistics.

7: Students who have not taken ‘A’-level / H2 Physics must take either PC1221/X or PC1222/X to meet the Science module requirement.  Students who have not taken ‘O’-level Physics may take a Life-Science module.  Otherwise, students (who have taken ‘A’-level / H2 Physics) may take either a Physics, Chemistry or Life-Science or Mathematics module as a Science module.  The Science module must be a module from List S1 (recommended) or List S2.  Please click here  for the lists.

8:  Students without A-level or H2 Mathematics are required to complete the bridging module MA1301/X as part of the Unrestricted Electives.