Master of Science in Computer Science (MSCS)

Program Objectives:

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.

Program Learning Outcomes:

Students graduating with an MSCS degree are expected to demonstrate the following program learning outcomes -

  • Written & Oral Communication - Effectively present the concepts, designs, and outcomes for software development projects in written and oral forms.
  • Quantitative Reasoning & Problem Solving - Employ current computer science technologies, methodologies, and quantitative analysis to examine modern industry challenges and formulate suitable solutions.
  • Information Literacy - Demonstrate the proficiency and resourcefulness in utilizing multiple sources of information to research, design, or implement complex programming projects.
  • Critical Thinking, Analysis & Creative Thinking - Apply critical thinking and problem solving skills to analyze computing problems and derive at solutions based on evidences and practicality.
  • Specialized Knowledge, Integrative Learning & Creative Thinking - Practice specialized knowledge relevant to the area of expertise and the skills attained in the program study to complete required tasks in professional manners.

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.

  • CS250 (Introduction to Programming)  & Lab
  • CS350 (Data Structures)  & Lab

Mezzanine Courses

The following mezzanine courses are also required for background preparation. Credit earned at NPU can meet the Electives requirement for the program:

  • CS487G(Object-Oriented Design and Implementation)
  • P450G(Career Development)

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 (11 units)

(Required subjects)

CS455G Algorithms & Structured Programming
CS457G Data Modeling and Implementation Techniques
CS457LG Data Modeling and Implementation Techniques Lab
CS480G Java and Internet Applications
CS480LG Java and Internet Applications Lab

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 area of interest:

Cloud Computing and Big Data:

CS550 Machine Learning and Business Intelligence
CS570 Big Data Processing – MapReduce Programming
CS571 Cloud Computing Infrastructure

Mobile Application Technologies:

CS548 Web Services Techniques and REST Technologies
CS551 Mobile Computing for Android Mobile Devices
CS556 Mobile Applications on iPhone Platform
CS557 Web Front-end Programming

QA Engineering:

CS521 Software Project Management
CS522 Software Quality Assurance and Test Automation
CS548 Web Services Techniques and REST Technologies
CS575 Network Analysis and Testing

Network Engineering:

CS515 UNIX/Linux Network Programming
CS535 Network Security Fundamentals
CS565 Advanced Network Management
CS575 Network Analysis and Testing

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 area of interest 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 areas of interest can be desirable as the fast changing computer industry has become more demanding on engineers to have multidisciplinary skillsets.

Electives (10 units)

The student may take any graduate-level courses, including those outside of software engineering, to meet the electives requirement of 10 units. No more than 4 units of mezzanine courses (P450G and one 4xxG course) can be taken to fulfill the electives requirement. 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