Master of Computer Science Program

The department offers graduate study leading to the Master of Science degree in computer science. The areas in which courses are offered include software, systems, architecture, artificial intelligence, and computer science theory. A Master’s degree in Computer Science provides education and creative experience to prepare graduates for advanced professional employment in industry or government, or for college-level teaching.

Master’s level research projects are available in the following areas of computer science: distributed systems, multiprocessing, operating systems, graphics, neural networks, formal languages, numerical methods, robotics, signal processing, and computational complexity. Specialized laboratories exist for microprocessor architecture, graphics, and robotics and intelligent machines.

See the Center for Graduate Studies site for information about requirements for admission and how to apply to the program. The SDSU graduate bulletin contains the university wide requirements for a master’s degree and a description of the computer science masters and complete department requirements.  Once admitted you will want to review the Orientation and Handbook for New Graduate Students.

Financial Aid

The department offers a very limited number of teaching assistantships. The application form (PDF) contains instructions for applying. Teaching assistants normally teach two lower division sections (6 units) per semester. SDSU’s financial aid office and scholarship office that can provide some financial aid.

Course Requirements

Student must complete a minimum of 30 units of 500-, 600-, and 700-level courses selected with the approval of a graduate adviser. One to three units of Computer Science 798 may be added to the 30 minimum units required, when used for an internship or practical training. All programs must include at least 24 units chosen from computer science and mathematics.

Students must select Plan A (Thesis) or Plan B (Comprehensive Examinations) as described below. Selecting Plan A is contingent upon finding a full time computer science faculty member to supervise the thesis. The number of students that can be accommodated in Plan A is limited by faculty resources. Students must have at least a 3.5 GPA in order to select Plan A.

Plan A (Thesis)

A total of 30 units of 500/600/700-level courses as follows:

  1. At least 15 units from Computer Science 600 and 700 level courses excluding Computer Science 797, 798, 799A.
  2. Students select two areas of study from the areas listed below, and take at least two courses from each area.
  3. Three units of Thesis (799A), and an oral presentation and defense.

With approval of the graduate adviser, students may take Computer Science 798 as preparation for Computer Science 799A (Thesis). Students must have at least a 3.5 GPA in order to select Plan A.

Plan B (Comprehensive Examinations)

A total of 30 units of 500/600/700-level courses as follows:

  1. At least 18 units from Computer Science 600 and 700 level courses excluding Computer Science 797, 798, 799A.
  2. At least one course from four of the following five areas of study: PFL, OSA, ALC, ISR, and DSW.
  3. Comprehensive examinations in three subjects selected from
    • data structures and algorithms;
    • database management systems;
    • intelligent systems and robotics;
    • operating systems and architecture;
    • programming languages.

Full time international students on Plan B who have completed all their coursework must take at least two qualifying examinations per semester.

Substituting course work for up to two exams

Students may substitute an advanced course in the corresponding area for up to two of the three required exams. Students must still pass at least one exam.  A course taken in lieu of an exam must be approved in advance by a graduate advisor, and must be completed with a grade of B or higher. Courses taken in lieu of exams must be in addition to the 30 units normally required for the degree, and in addition to the courses used to satisfy the breadth requirement for Plan B. If courses are substituted for two exams, at least one of those courses must be at the 600 level, and must be in addition to the 18 units of 600 and 700 level courses normally required for the degree.

Areas of Study

  • (PFL) Programming and Formal Languages: Computer Science 520, 532, 533, 534, 535, 537, 540, 541, 542, 583, 596 (Adv 3D Game Prgrmg.),605, 620, 635, 636.
  • (OSA) Operating Systems and Architecture: Computer Science 572, 574, 596 (loT), 670, 696 (Adv Multimedia Networks); Electrical Engineering 679.
  • (ALC) Algorithms and Complexity: Computer Science 558, 562, 566, 600, 609, 660, 662, 664, 696 (PGM Problems Bioinformatics), 696 (Modern Cryptography and Applications); Mathematics 525, 625, 626, 667, 668, 693A, 693B.
  • (ISR) Intelligent Systems and Robotics: Computer Science 549, 550, 552, 553, 556, 559, 577, 581, 582, 596 (Machine Learning), 652, 653, 656, 657, 682, 696 (Applied Computer Vision); Statistics 551B, 702
  • (DSW) Distributed Systems and Web Technology: Computer Science 503, 514, 545, 546, 547, 576, 578, 596 (Wireless Networks), 615, 645, 646, 648 (Modern Full-Stack Web Development), 648 (Serverless and Microservices), 649, 666, 683, 689, CS 696 (Big Data Tools Methods), 696 (Multi-platform Mobile App Development).

The statements found on this page/site are for informational purposes only. While every effort is made to ensure that this information is up to date and accurate, official information can be found in the printed Bulletin of the Graduate Division. For more information see the graduate bulletin or contact a graduate advisor.