Master of Science in Computer Science (MSCS)


The MSCS degree program is designed to provide advanced knowledge and hands-on experience in computer science to students who are interested in gaining expertise in software engineering as well as modern Internet technologies and applications. Through the learning process, the students not only acquire knowledge in modern computer technologies but also cultivate abilities in software design, development, deployment, and integration aspects of professional learning. They are encouraged to apply their knowledge and skills to course projects that match industry trends.

Background Preparation:

Students admitted into the MSCS degree program are required to have the following background preparation. A student with any deficiency is required to clear it by either (1) taking the course at NPU and earning a grade of at least C- or higher, or (2) taking and passing a proficiency exam on the subject. The student must clear prerequisites before attempting to enroll in graduate level courses.

  • Computer Science Subjects: CS350 & Lab, CS360 & Lab, CS385 & Lab;
  • The following mezzanine courses are also required for background preparation. Credit earned at NPU can meet the Electives requirement for the program: CS457LG, CS480LG, and P450G.

The above background preparation subjects will satisfy the prerequisites for the courses listed in the following Foundation Requirements as well as graduate courses in the study areas of cloud computing and big data, mobile application technologies, QA engineering, and network engineering.

MSCS Curriculum

A minimum of 36 trimester units of graduate study are required for the MSCS program. They include a few required foundation courses, a number of software engineering courses based on the student’s selection of technical pursuit, a required capstone course, and electives. The software engineering coursework is to develop technical skills beneficial to the student for career planning. The student also has the opportunity to take elective courses outside of computer science to broaden the student’s skillset.

The student must meet prerequisite requirements when taking any course. Upon clearing background preparation work, the student starts to take courses to meet the degree requirements. The student must begin his/her graduate study with the subjects listed in the Foundation Requirements section.

Foundation Requirements (9 units)

(Required subjects)

CS457G Data Modeling and Implementation Techniques
CS480G Java and Internet Applications
CS501 Advanced Structured Programming and Algorithms

Software Engineering Course Requirements (12 units)

The student is advised to consider industry trends when selecting computer science courses. Before taking the Capstone Course near the end of the program, the student will have taken a minimum of 12 units of graduate level software engineering courses and 12 units of electives. Choices of field of study include the following: cloud computing and big data, mobile application technologies, QA engineering, and network engineering.

The following are examples of cluster courses for each concentration area:

  • Cloud Computing and Big Data: CS536, CS550, CS570, CS571
  • Mobile Application Technologies: CS548, CS551, CS556, CS557, CS558
  • QA Engineering: CS521, CS522, CS548, CS575
  • Network Engineering: CS515, CS535, CS565, CS575

Selecting any four (4) courses from the above lists will meet the Software Engineering Course Requirements. Taking four (4) courses in a cluster area will also help the student develop desirable skills in that specialized software engineering profession.

Each trimester when the course offering list is published, instructions on graduate level courses belonging to various concentration areas are also published along with the course offering list. Every graduate student is advised to refer to these instructions to select courses and build his/her expertise area. In addition, a cross disciplinary study of concentration areas can be desirable as the fast changing computer industry has become more demanding on engineers to have multidisciplinary skillsets.

Electives (12 units)

The student may take any graduate-level courses, including those outside of software engineering, to meet the electives requirement of 12 units. When applicable, the student may take Curricular Practicum courses and engage in practical training to work on company projects that are directly related to the student’s course of study. No more than 6 units of practicum coursework may be counted towards graduation.

Capstone Course (3 units)

(A required subject)

Upon completing all or most coursework for this program, the student is required to take the capstone course and, under the guidance of the course instructor, integrate the knowledge and skills learned from all of the courses taken during the program.

CS595 Computer Science Capstone Course