Master of Science in Computer Science
All students share breadth requirements in the areas of computing foundations, computer systems, and software development. Students focusing on different areas then differ in the choice of courses that provide depth in the chosen area and in the work done for the culminating experience. Students are expected to decide on a focus area prior to enrollment in the second semester. Integrated into the curriculum are significant team and project experiences. There are two options for the mandatory culminating experience, the master’s thesis or the applied research project.
Program Learning Outcomes
- Students will be able to design, develop, document, and test software using current techniques.
- Students will understand the fundamentals of computer architecture and computing theory.
- Students will be able to solve problems working in group settings.
- Students will demonstrate the ability to give presentations and write technical reports.
- Students will demonstrate an understanding of the importance of social and ethical issues related to the profession.
- Students will demonstrate a breadth of knowledge in computer science, as exemplified in the areas of systems, theory and software development.
- Students will demonstrate the ability to conduct a research or applied Computer Science project, requiring writing and presentation skills which exemplify scholarly style in computer science.
All students are required to include elective credits in their program. Electives include:
- All upper division or graduate courses offered by the Computer Science Department, including breadth requirement courses and CSC 897 and CSC 899. CSC 893 may not count as an elective course.
- Courses from other programs such as biology, engineering, business, or mathematics may be accepted with the approval of the graduate advisor and culminating experience supervisor.
Note: A maximum of 6 units of upper-division courses (numbered below 700) may be applied to the degree with the consent of the course instructor and graduate advisor.
Graduate Seminar Requirement
In addition to curricular requirements, prior to enrolling in CSC 895/CSC 898, all graduate students are required to attend the Department Graduate Seminar series during one semester of their studies. These weekly seminars explore current topics in computer science research and assist students with choosing a topic for the culminating experience. Details for meeting this requirement may be found in the Graduate Studies Policy section.
This 1-3 unit option is chosen by students who wish to enhance their master’s degree by completing an industrial practicum. After finding the job in the local industry, the student will submit a research proposal to the department’s supervisor (normally the department chair) that describes the expected work and learning outcome. The department’s supervisor must approve the proposal before the student begins the research. Once approved, the student will enroll in 1 unit of CSC 893. At the conclusion of the work experience, the student must file a written report outlining the research and work experience. The report is submitted to the department’s supervisor. Students may repeat CSC 893 for a maximum of 3 units. The total number of units for the degree for students who complete the CSC 893 practicum option will be 33 units. It is recommended that this option is pursued only during the summer.
Note: CSC 893 allows international students to obtain permission to work off campus for the duration of the course.
Admission to Program
Admission to the graduate program in computer science is a two-step process that should be completed simultaneously:
- Apply to San Francisco State University: Complete the on-line CSU Mentor application. Follow all other requirements for admission to the University by accessing www.sfsu.edu/~gradstdy/.
- Apply to the Department of Computer Science graduate program: Full details can be found at https://cs.sfsu.edu/graduate-program/apply.
We encourage students with four-year degrees other than Computer Science to apply to our program as conditional applicants. Please check the link in Step 2 above for details.
Graduate assistantships are occasionally available for qualified master's students. These opportunities include participating in funded research projects, assisting with management of departmental and university computer laboratories as well as lecturer positions for beginning undergraduate computer science courses. Frequently, there are internship opportunities available for work at local companies. International students should address all questions related to their visa status and eligibility for practical training (off-campus work) to the Office of International Programs.
Written English Proficiency Requirement
Computer science students admitted to the M.S. program are required to satisfy English Level One prior to the end of their first year of study at SF State. Level One is satisfied by obtaining either a score of 4 or better on the GRE Analytical Writing Exam or a passing grade in SCI 614. SCI 614 is strongly recommended for all students who wish to develop their skills in professional writing.
The second level of proficiency in written English must be demonstrated before graduation. At this time, the student must demonstrate writing skills which exemplify scholarly style in computer science. This is demonstrated by the master's thesis or the research project report.
Policy on Enrollment While Conducting Directed Research
Pursuant to Policy F89-165 adopted by the Academic Senate in 1989, the Computer Science Department has adopted the policy that all graduate students who are working with a research advisor (above and beyond general advising during office hours) and/or having his/her thesis or project reviewed, must enroll in at least one unit of CSC 895, CSC 897, CSC 898, or CSC 899. Registered students will have priority for departmental computing resources.
Computer Science (M.S.) - 30-33 units
Core Requirements (9 units)
Computing Foundations (3 units)
|CSC 810||Analysis of Algorithms II||3|
|CSC 825||Advanced Automata Theory||3|
Computer Systems (3 units)
|CSC 720||Advanced Operating Systems||3|
|CSC 746||High-Performance Computing||3|
|CSC 845||Advanced Computer Networks||3|
Software Development (3 units)
|CSC 848||Software Engineering||3|
|CSC 868||Advanced Object Oriented Software Design and Development||3|
General Requirement (9 units)
Three 3-unit courses drawn from any 700-800 level Computer Science courses not used to meet a core or elective requirement. 700-800 level courses paired with 600 level courses require an advisor’s approval. CSC 899 may not count towards this requirement.
Electives (6 units)
Two upper-division/graduate 3-unit electives selected on advisement.
Practicum Option (3 units)
Up to 3 units of CSC 893 Supervised Industrial Research on advisement.
Culminating Experience (6 units)
|CSC 899||Independent Study||3|
|CSC 895||Applied Research Project||3|
|CSC 898||Master's Thesis||3|