Undergraduate Advising

Proper and timely advising has been shown to significantly improve students' success and graduation rate. We summarize here our advising process and mandatory advising checkpoints. Please refer to the advising process described under these undergraduate, graduate and transfer advising section.



Computer science students are strongly encouraged to adhere to the following student responsibilities:

  • Following the appropriate advising process to their standing, as described under these Undergraduate and Graduate sections.
  • Reading all emails sent from the computer science office and faculty.
  • Seeking advising for any mandatory advising checkpoints.
  • Seeking advising whenever a need arises, in a timely manner with respect to any deadlines.

It is important and beneficial to take the opportunity to schedule timely advising for assistance and achieving success. Students should plan their program of study in the major with the help of a departmental advisor as soon as possible in order that the correct sequence of courses is taken and a proper set of electives is chosen. Students are advised that CR/NC grades are not acceptable in courses to be counted for the Computer Science major or minor programs. It is also suggested that students consult with an advisor before selecting courses to meet the General Education requirements. 

Advising Tips

  1. For your appointment with your advisor, please bring the following documents (if available, online documents are ok): 

    • Transcripts
    • List of all major related courses with course title, semester taken, college taken at, and grades obtained.
    • If possible, please bring course descriptions, syllabus, text book title, and any other related course materials.

Graduation Advising

See the Registrar's Office's web page for details on the graduation process. If your DPR shows something missing, please schedule an appointment with an Advisor. Make sure to complete your Senior Electives.

All CSC majors must complete five 3-unit senior electives. Students may choose 15 units from among the following courses:

  • CSC 520: Theory of Computing
  • CSC 600: Programming Paradigms and Languages
  • CSC 615: UNIX Programming
  • CSC 620: Natural Language Technologies
  • CSC 621: Biomedical Imaging and Analysis
  • CSC 630: Computer Graphics Systems Design
  • CSC 631: Multiplayer Game Development
  • CSC 641: Computer Performance Evaluation
  • CSC 642: Human-Computer Interaction
  • CSC 645: Computer Networks
  • CSC 647: Introduction to Quantum Computing and Quantum Information Science
  • CSC 649: Search Engines
  • CSC 651: System Administration
  • CSC 652: Introduction to Security and Data Privacy
  • CSC 656: Computer Organization
  • CSC 657: Bioinformatics Computing
  • CSC 658: Programming Cafe
  • CSC 664: Multimedia Systems
  • CSC 665: Artificial Intelligence
  • CSC 667: Internet Application Design and Development
  • CSC 668: Advanced Object Oriented Software Design and Development
  • CSC 671: Deep Learning
  • CSC 675: Introduction to Database Systems
  • CSC 676: Soft Computing and Decision Support Systems
  • CSC 680: Application Development for Mobile Devices
  • CSC 690: Interactive Multimedia Application Development
  • CSC 698: Topics in Computing
  • CSC 699: Independent Study
  • MATH 400: Numerical Analysis
  • MATH 425: Applied and Computational Linear Algebra
  • MATH 448: Introduction to Statistical Learning and Data Mining

*Most graduate CSC courses may also be used as senior electives.
**You may only choose one of the listed MATH courses as a senior elective.

Students are advised to check their university and college regulations regarding academic standing requirements. It is occasionally possible to use a course taken in a different department or at another university to satisfy elective requirements. Any course substitutions must be approved in advance by a Senior Advisor.

Outside of SF State Transfer Students

Our program has been recently revised to streamline the course articulation for transfer, allowing more courses taken at community colleges or other schools to count towards your Computer Science Degree at SF State.

All lower division courses (course numbers below 300) included among the degree requirements are available at many community colleges in California. Students intending to enter the program upon transferring to San Francisco State University from a community college should take as many of those courses there as possible.

The equivalents for the following Computer Science courses may be taken from approved universities and applied to your SF State CS Degree:

  • CSC 101: Introduction to Computing
  • CSC 215: Intermediate Computer Programming
  • CSC 220: Data Structures
  • CSC 230: Discrete Mathematics
  • CSC 256: Machine Structures

Additionally, the following non-CS courses, required for completion of the program, may also be transferred from other institutions depending on their respective department's policies:

  • MATH 226: Calculus I
  • MATH 227: Calculus II
  • PHYS 220/222: Physics I
  • PHYS 230/232: Physics II
  • BIOL 100: Introduction to Biology

To verify course equivalencies, please consult assist.org.

If all lower-division major and GE requirements are satisfied, check out the SF State Bulletin's Roadmap for Transfer Students.

Students who transfer to our program should have adequate Java experience. Students can attain adequate Java background by taking a course which should include topics as specified in the resources below:

The main Java tutorials website: Oracle Java Tutorial Documentation web page.

Topics Include:


If you are submitting a Waiver of College Regulations Petition form, please follow the instructions below:

STEP 1: Student fills out the petition form electronically: https://registrar.sfsu.edu/sites/default/files/documents/collegewaiver_1.pdf 

  • Check only 1 box. If you need to submit multiple petitions, use different forms. 
  • Send form from your SFSU email to Instructor’s SFSU email for approval 
  • Note: you DO NOT have to sign the form if it is being sent from your official SFSU email account. 
    NAME – SFSU ID# (ex. John Doe - 912345678) 

STEP 2: Instructor receives form and forwards approval to the CS Office 

  • Forward approval with an “I approve” from the instructor’s official SFSU email to cs-dept@sfsu.edu
    Note: instructors DO NOT need to sign the form if it is being sent from their official SFSU email account. 

STEP 3: Office checks if all the above is correct and then forwards to Department Chair 

  • Put * after ID# in email title for everything except “Repeat a course after maximum attempts or in excess of unit repeat limits” 
  • Forward to Dept. Chair and cc student 

STEP 4: Department Chair will forward approval to Registrar’s to process 

If you do not complete all instructions in Step 1 correctly, the CS Office will reroute your petition form back to your email for you to correct.

Has my petition been approved/processed?

If you have been cc'd in the email with approval from the Dept. Chair to the Registrar's, your form has been sent to the Registrar's to process your petition. If you have not, the office is most likely waiting on the Instructor to send their approval. The Registrars Office will provide updates to your petition to your SFSU email.

Academic Bulletin Quick Links