Master of Science in Computer Science

The program objectives of the master's degree in Computer Science are:

  • To prepare you for the increasingly sophisticated application of computers to the needs of industry and society;
  • To prepare you for research, teaching, and further graduate studies in computer science;
  • To prepare you for leadership roles in your industry career;
  • To provide you with graduate level course work in computer science that supplements the curriculum in other disciplines.

Elective Courses 

You must take at least five elective courses; at least three of these courses must be at the 500-level.  Any 400 level course on the study plan cannot be similar in content to a course taken as an undergraduate.

You should choose elective courses in at least two different areas. The following are groupings of some 400 and 500 level courses. Please note that courses not listed may still be selected as electives. In particular, these lists may not cover newly created courses. Depending on the focus, a course may be listed in more than one area.

Software Engineering

  • CPSC 463  Software Testing
  • CPSC 464  Software Architecture
  • CPSC 466  Software Process
  • CPSC 541  Systems and Software Standards and Requirements
  • CPSC 542  Software Verification and Validation
  • CPSC 543  Software Maintenance
  • CPSC 544  Advanced Software Process
  • CPSC 545  Software Design and Architecture
  • CPSC 546 Modern Software Management
  • CPSC 547  Software Measurement
  • CPSC 548  Professional, Ethical, and Legal Issues for Software Engineers

Database & Web Programming

  • CPSC 431 Database and Applications
  • CPSC 473 Web Front-End Engineering for Internet Applications
  • CPSC 476 Web Back-End Engineering for Enterprise Applications
  • CPSC 531 Advanced Database Management

Computer Networks & Security

  • CPSC 452 Cryptography
  • CPSC 454 Cloud Computing and Security
  • CPSC 456 Network Security Fundamentals
  • CPSC 471 Computer Communications
  • CPSC 558 Advanced Computer Networking

Distributed Systems

  • CPSC 531 Advanced Database Management
  • CPSC 551 Operating Systems Design
  • CPSC 558 Advanced Computer Networking

Machine Intelligence

  • CPSC 481 Artificial Intelligence
  • CPSC 483 Introduction to Machine Learning
  • CPSC 583 Expert Systems Design Theory
  • CPSC 585 Artificial Neural Networks

Bioinformatics

  • CPSC 485 Computational Bioinformatics
  • CPSC 583 Expert Systems Design Theory
  • CPSC 585 Artificial Neural Networks

Computer Graphics & Multimedia

  • CPSC 484 Principles of Computer Graphics
  • CPSC 486 Game Programming
  • CPSC 489 Game Development Project
  • CPSC 566 Advanced Computer Graphics


Course descriptions can be found in the Course Catalog.  You can access them by going to http://csufcs.com/cs463 where you can replace the course number with which ever course you are interested in.  Courses offered by other departments related to the student’s objectives in Computer Science may be included on the Study Plan if approved by the Graduate Advisor.

Open University

If you wish to take courses without a degree objective, and meet the prerequisites, you may enroll through Open University (Extended Education) Opens in new window if there is space available in the class. Foundational Breadth Requirement courses can be taken through Open University.  However, no more than 9 Study Plan units can be taken before entering the Master’s program, and Open University courses are included in this category, so please talk with an advisor before taking 400 and 500 level classes through Open University. 

Graduate Standing

If you have not taken a fundamental core of undergraduate courses in computer science, you were sent a worksheet listing the Foundational Breadth Requirement courses you need to take before taking Master’s program courses. Appendix A of the  Graduate HandbookPDF File Opens in new window  shows the worksheet used to assess, plan, and record the needed Foundational Breadth courses.

If you received a Bachelor’s degree in Computer Science, you probably do not need to take any Foundational Breadth courses.

When you successfully complete all of the foundational breadth requirement courses, if you had any, and satisfied the University Writing Requirement, you are eligible to be classified. You must make an appointment with an advisor and prepare a formal Study Plan. When the Study Plan has been submitted by the Computer Science Department and approved by the Associate Vice President of Academic Affairs or designee at the CSUF Graduate Studies Office, you will be sent a signed copy of the Study Plan and be officially classified.  The University expects you to be classified before finishing more than 13 units of Study Plan courses, which means before the end of your second semester.

Foundational Breadth Requirement Courses

Computer Science Courses

  • CPSC 120  Introduction to Programming
  • CPSC 121  Object-Oriented Programming
  • CPSC 131  Data Structures
  • CPSC 240  Computer Organization and Assembly Language
  • CPSC 323  Compilers and Languages
  • CPSC 335  Algorithm Engineering
  • CPSC 351  Operating Systems Concepts
  • CPSC 362  Foundations of Software Engineering

Mathematics Courses

  • MATH 270A Mathematical Structures I
  • MATH 270B  Mathematical Structures II
  • MATH 338  Statistics Applied to Natural Sciences 

University Writing Requirement

Before you can be classified as a graduate student, you must demonstrate your ability to write proficiently in the English language. This applies to all graduate students, not just international students.  If you took the GRE or GMAT and received a score of 4 or better in the Analytical Writing Section, this can be waived.  Otherwise, this requirement can be satisfied in either of the following two ways:

  1. By taking and passing the Examination in Writing Proficiency (EWP). This exam is generally given twice each semester, and never during the summer.
  2. By taking and earning a B or better in CPSC 311. If you are unable to take CPSC 311 because classes are full or if it is not offered (for example, during the Winter Intersession), you may take TESL 301 or ENGL 301, but you will still need to get a B. If you took a course as an undergraduate that is equivalent to CPSC 311 and earned a B or better, you may be able to use it to satisfy the requirement.  This will need to be reviewed on a case-by-case basis by the department.

While there is no limit on the number of times you can take the EWP, delay in satisfying the writing requirement can seriously delay your progress through the program.  We strongly recommend that if you do not pass the EWP in the first semester, you take the writing course. Please see the section on planning your progress through the program.

Classified Standing

When you successfully complete all of the foundational breadth requirement courses, if you had any, and satisfied the University Writing Requirement, you are eligible to be classified. You must make an appointment with an advisor and prepare a formal Study Plan. When the Study Plan has been submitted by the Computer Science Department and approved by the Associate Vice President of Academic Affairs or designee at the CSUF Graduate Studies Office, you will be sent a signed copy of the Study Plan and be officially classified.  The University expects you to be classified before finishing more than 13 units of Study Plan courses, which means before the end of your second semester.

Conditionally Classified Standing

All students are initially admitted as conditionally classified. You are eligible to become classified if you have no foundational breadth requirement courses to take or have successfully completed them, and have satisfied the University Writing Requirement

Graduate Study Plan

What is a Study Plan?   It is NOT just a plan you make of which courses to take when. It is a formal list of the 10 courses (30 units) that will make up your graduate program.  It must satisfy certain University and Departmental rules, and every Study Plan must be approved by the Graduate Advisor and the Associate Vice President of Research (or designee). It should be submitted before completing more than 13 units of study plan eligible coursework (not including any foundational breadth courses). Each course on the study plan must be completed with a grade of “C” or better. When you apply for graduation, this is the document that the University will use to decide to award you the Master’s Degree.  Once the study plan has been approved, you must file a “Study Plan Change Request” form with the Computer Science Department if you want to make any changes.

Required Courses

These four courses are required on your Study Plan:

  • CPSC 440  Computer System Architecture
  • CPSC 462  Software Design
  • CPSC 589  Seminar in Computer Science
  • CPSC 597  Project or CPSC 598 Thesis

At least one of the following software engineering courses must appear on your Study Plan:

  • CPSC 541  Systems and Software Standards and Requirements
  • CPSC 542  Software Verification and Validation
  • CPSC 543  Software Maintenance
  • CPSC 544  Advanced Software Process
  • CPSC 545  Software Design and Architecture
  • CPSC 546  Modern Software Management
  • CPSC 547  Software Measurement
  • CPSC 548  Professional, Ethical and Legal Issues for Software Engineers

Your Study Plan cannot include any 400 level course whose content is similar to a course you took as an undergraduate and was credited toward your bachelor’s degree.  If you have taken CPSC 440 or 462 or both as an undergraduate, you must take extra elective courses in their place.

You must take five additional courses; at least three of these courses must be at the 500-level. The elective courses are grouped to seven tracks (see elective courses). You are strongly encouraged to have at least two different tracks included on the Study Plan.

Graduate Seminar

In the Graduate Seminar (CPSC 589) students will do individual research into topics that can be the basis of a Master degree project or thesis.   Research techniques, presentation skills, and contemporary research areas and topics are covered.  Students will prepare a project proposal that can be used for their project or thesis.

Passing the University Writing requirement is a prerequisite to taking this course, and CPSC 589 is a prerequisite to the Project course (CPSC 597) and the Thesis course (CPSC 598).

Project / Thesis

To complete the graduate program, you must complete either CPSC 597 Project or CPSC 598 Thesis. A project is a significant development undertaking that shows originality and independent thinking. A thesis is a written description of the systematic study of a significant problem covering the gathering and analysis of information and including a conclusion or recommendation.

Before enrolling in CPSC 597 or 598, you must submit a CPSC 597 / 598 Project Proposal formOpens in new window  to the Computer Science Department Office. This form must be signed by a supervising full-time faculty member and by a second faculty reviewer no later than the two weeks before the last day of instruction of the preceding semester. Permission to enroll in CPSC 597 or 598 may be withheld if you submit a proposal after this deadline.

You will not be able to register online for these courses until the Computer Science Department Office grants permission to do so. Email will be sent to your CSUF student account when this is done.

Independent Graduate Research

You may take CPSC 599 Independent Graduate Research to fulfill part of your electives. This course allows you to pursue topics of special interest beyond those of a regular course. It cannot cover the same topic as your project or thesis.

You must submit an Application For Independent Study to the department office, which will supply the form. The application must include a study plan and objectives, and must be approved by a supervising full time faculty member and by the department chair.

You may take up to three units per semester, and apply a maximum of three units towards the degree. The University allows a maximum of six units, but the Computer Science Department allows only three units.

You will not be able to register on-line for this course until the Computer Science Department Office grants permission to do so. You should call to verify that this has been done.

Transfer Credit

At least 21 semester units must be taken in residence. Transfer credits and Cal State Fullerton extension credits are not residence units.

No more than 9 units of transferable course work can be accepted from another institution and applied to the 30 required units on the Study Plan.

Continuous Enrollment

You must remain enrolled for every semester of your graduate program. If circumstances require, you may apply for a Leave of Absence. The form may be obtained from Admissions and Records, and is submitted to the University Graduate Office. If you don't enroll for courses each semester of your graduate program, and you haven't been granted a Leave of Absence, you will be dropped from the graduate program and you will have to reapply for admission.

Duration of Study

All study plan courses should be completed within 10 semesters. If you find that this is not possible, you must file for a two-year extension.

Milestones

Here are the important milestones you must go through in order to progress:

  1. Finish all breadth requirement courses if you were told you needed them. If you needed such courses, you were sent a worksheet listing what you needed to take. Do not take courses for the Study Plan unless you are also finishing all your breadth requirement courses at the same time. All breadth requirement courses must be passed with at least a C-.
  2. Pass the Graduate Writing Requirement. This is very important!
  3. Submit a Study Plan, get it approved, and become a classified graduate student. The breadth requirement courses must be finished and the Graduate Writing Requirement passed before this. This should be done before you take more than 4 courses that will be on the Study Plan. If you have no breadth requirement courses, this will mean it should be done during the second semester or at the latest, before the start of the third semester. Added bonus for becoming classified: you should get an earlier registration time for the next semester if you become classified early enough.
  4. Take CPSC 589, the Graduate Seminar. Passing the Graduate Writing Requirement is an absolute prerequisite for taking the course.
  5. Take CPSC 597 or 598, the project or thesis course. Passing CPSC 589 and being classified are both absolute prerequisites for taking either course.

This means is that if you wish to graduate in four semesters, you must take CPSC 589 in the third semester at the latest, and you must pass the Graduate Writing Requirement before that. If you want to finish in three semesters, you must take CPSC 589 in the second semester, so you must pass the writing requirement before the start of the second semester. While a few students who come with no foundational breadth courses to take have finished in three semesters, it takes luck as well as hard work to get the courses you want to take at the time you want to take them. It is better to plan on four semesters to get through the 30-unit Master’s program.

Applying for Graduation

You should file a Request for Graduation Check through Titan Online accessed from your Student Portal one semester before your expected date of graduation. The Graduation Check and your Graduate Study Plan will be sent to the Computer Science Department during that semester.

The Graduate Advisor will determine if your study plan has been satisfactorily completed, and will send a recommendation to the University Graduate Office, who will then inform you of the results.

If you change your study plan, you must file a Request for Change in Study Plan form, which you can obtain from the Computer Science Department or downloaded from the Office of Graduate Studies website.  If you do not keep your study plan up to date, your graduation could be delayed.