Master of Science in Computer Science

Program Description

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

The grading method CR/NC is allowed only for CSC 895 or CSC 898. All other courses listed on the Advancement to Candidacy (ATC) form must be a letter grade.

Program Learning Outcomes

  1. Students will demonstrate a breadth of knowledge in Computer Science, as exemplified in the areas of systems, theory, and software development.
  2. 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.

Elective Requirements

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 899CSC 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 be 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:

  1. Apply to San Francisco State University: Complete the on-line CSU Mentor application. Follow all other requirements for admission to the University by accessing
  2. Apply to the Department of Computer Science graduate program: Full details can be found at

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.

Financial Assistance

Graduate assistantships are occasionally available for qualified master's students. These opportunities include participating in funded research projects, assisting with the 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

Level One

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 614SCI 614 is strongly recommended for all students who wish to develop their skills in professional writing.

Level Two

The second level of proficiency in written English must be demonstrated before graduation. At this time, the student must demonstrate writing skills that 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 1 unit of CSC 895CSC 897CSC 898, or CSC 899. Registered students will have priority for departmental computing resources.

Computer Science (M.S.) – 30 units minimum

Core Requirements (9 units)

Computing Foundations (3 units)

Select one:

CSC 810Analysis of Algorithms II3
CSC 825Advanced Automata Theory3

Computer Systems (3 units)

Select one:

CSC 720Advanced Operating Systems3
CSC 746High-Performance Computing3
CSC 845Advanced Computer Networks3

Software Development (3 units)

Select one:

CSC 780Application Development for Mobile Devices3
CSC 831Multiplayer Game Development3
CSC 848Software Engineering3
CSC 868Advanced Object Oriented Software Design and Development3

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 (0-3 units)

Up to 3 units of CSC 893 Supervised Industrial Research on advisement.

Culminating Experience (6 units)

Select one:

CSC 897Research3
CSC 899Independent Study3

 Select one:

CSC 895Applied Research Project3
CSC 898Master's Thesis3