Master of Science in Computer Science (MSCS)

CIP Code: 11.0701

Program Description:

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 a bachelor's degree (BS / BA / BE) in computer science/engineering or in another field with a sufficient background in computer science and mathematics, including course work and/or experience equivalent to (as deemed appropriate by the Academic team) all the following subjects:

  • Mathematics – Calculus, Linear Algebra, and Statistics/Probability
  • Introduction to Python Programming Language and Programming Logic
  • Data Structures

Additional documents and/or an interview may be requested by the Academic team to assess and validate the qualification of an applicant who did not complete an undergraduate degree in Computer Science/ Engineering.

A student who lacks any of the background preparation requirements listed above is expected to clear them by either (1) taking the course at SFBU or another approved institution/organization that is comparable in subject matter, quality, and rigor as SFBU 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 background preparation requirements before acceptance to the MSCS program.

MSCS Curriculum

A minimum of 36 semester 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.

I. Foundation Requirements (11 units)
(Required subjects)

CS455G Algorithms & Structured Programming or
CS501 Practical Application of Algorithms; and
CS457G Data Modeling and Implementation Techniques
CS457LG Database Technologies Lab
CS500 Object-Oriented Design in Python
CS500L Object-Oriented Design in Python Lab

II. Specialization Requirements (12 units)

The student is advised to consider industry trends and career choices 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, (or those corresponding to one of the chosen concentrations below), and 10 units of electives.

Concentrations

The student may choose one of the three concentrations shown below and complete 12 units of the associated courses listed under the concentration. After completing these selected courses, the student will be able to request that the concentration area be specified on the transcript and the diploma to highlight the field of specialization.

Cybersecurity:

CS535 Network Security Fundamentals
CS571 Cloud Computing Infrastructure
CS581 Cloud Security
CS589 Special Topics (related to Cybersecurity)
CS477G Ethical Hacking and Penetration Testing (taken as an Elective course)

Data Science:

CS550 Machine Learning and Business Intelligence
CS570 Big Data Processing & Analytics
CS589 Special Topics (related to Data Science)
CS481G Introduction to Data Science (taken as an Elective course)

Network Engineering:

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

The following are examples of cluster courses that the student may select to strengthen the knowledge and skills related to an area of interest without declaring a concentration for their MSCS degree:

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

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

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 .

Other CS5xx level courses offered by the School of Engineering may also be taken to complement the knowledge and skills desired. A cross disciplinary study of areas of interest can be desirable as the changing computer industry has become more demanding on engineers to have multidisciplinary skillsets.

III. 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. At least 6 of these units must comprise of courses with numbers at or higher than 500. 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.

IV. 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