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 |