Bachelor of Science in Computer Science
Students intending to enter this program at the freshman level should have completed two years of algebra and one semester of trigonometry in high school. One year each of high school geometry and physics, as well as basic knowledge of computer organization and programming, are very desirable.
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.
Students should plan their program of study in the major with the help of a departmental advisor as soon as possible so that the correct sequence of courses is taken and a proper set of electives is chosen. It is also suggested that students consult with an advisor before selecting courses to meet the General Education requirements. (See program below for acceptable science electives.)
Students are encouraged to participate in the Computer Science Cooperative Education Program at SF State. Under this program, they may obtain industrial employment related to their academic studies. This combination of on-the-job training and academic experience can greatly enhance the value of an undergraduate degree in Computer Science.
An Endowed Scholarship Fund, established in the memory of Jules H. Strauss, offers an annual award to a computer science major who shows scholarly accomplishment and demonstrates financial need.
An Entrepreneurship Program and Developers Prize, funded by our alumni, encourage and support innovation and entrepreneurship among students.
Students are advised that CR/NC grades are not acceptable in courses to be counted for the Computer Science major or minor programs with the exception of the CSC 211 lab.
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.
Computer Science (B.S.) 72 units
Mathematics and Physics (23 units)
|MATH 226||Calculus I||4|
|MATH 227||Calculus II||4|
|MATH 324||Probability and Statistics with Computing||3|
|MATH 325||Linear Algebra||4|
|PHYS 220||General Physics with Calculus I||3|
|PHYS 222||General Physics with Calculus I Laboratory||1|
|PHYS 230||General Physics with Calculus II||3|
|PHYS 232||General Physics with Calculus II Laboratory||1|
Core Computer Science Requirements (25 units)
|CSC 210||Introduction to Computer Programming||3|
|CSC 211||Introduction to Software Lab||1|
|CSC 220||Data Structures||3|
|CSC 230||Discrete Mathematical Structures for Computer Science||3|
|CSC 256||Machine Structures||3|
|CSC 300GW||Ethics, Communication, and Tools for Software Development - GWAR||3|
|CSC 317||Introduction to Web Software Development||3|
|CSC 340||Programming Methodology||3|
|CSC 413||Software Development||3|
Advanced Computer Science Requirements (12 units)
|CSC 415||Operating System Principles||3|
|CSC 510||Analysis of Algorithms I||3|
|CSC 600||Programming Paradigms and Languages||3|
|CSC 648||Software Engineering||3|
Each student is required to make an oral presentation during their senior year. Guidelines for the presentations are available on the Computer Science website: cs.sfsu.edu.
Electives (12 units)
All students must complete four 3-unit senior electives. At least 9 units must be CSC courses. In addition to the courses listed below, any 600-level CSC course, with the exception of the advanced requirements courses CSC 600 and CSC 648, can be used as an elective. The department also allows one CSC graduate course to be used as a senior elective (700-level or higher, and non-paired excluding 895, 898, 897, 899). Exceptions must be approved in advance by a senior advisor.
|CSC 508||Machine Learning and Data Science for Personalized Medicine||3|
|CSC 520||Theory of Computing||3|
|CSC 615||UNIX Programming||3|
|CSC 620||Natural Language Technologies||3|
|CSC 621||Biomedical Imaging and Analysis||3|
|CSC 630||Computer Graphics Systems Design||3|
|CSC 631||Multiplayer Game Development||3|
|CSC 637||Software Techniques for Computer Music||3|
|CSC 641||Computer Performance Evaluation||3|
|CSC 642||Human-Computer Interaction||3|
|CSC 645||Computer Networks||3|
|CSC 651||System Administration||3|
|CSC 652||Introduction to Security and Data Privacy||3|
|CSC 656||Computer Organization||3|
|CSC 658||Programming Cafe||3|
|CSC 664||Multimedia Systems||3|
|CSC 665||Artificial Intelligence||3|
|CSC 667||Internet Application Design and Development||3|
|CSC 668||Advanced Object Oriented Software Design and Development||3|
|CSC 675||Introduction to Database Systems||3|
|CSC 690||Interactive Multimedia Application Development||3|
|CSC 698||Topics in Computing||3|
|CSC 699||Independent Study||1-3|
|MATH 400||Numerical Analysis||3|
|MATH 425||Applied and Computational Linear Algebra||3|
General Education Requirements
|Requirement||Course Level||Units||Area Designation|
|Written English Communication||LD||3||A2|
|Arts or Humanities||LD||3||C1 or C2|
|Social Sciences: US History||LD||3||D2|
|Lifelong Learning and Self-Development (LLD)||LD||3||E|
|Physical and/or Life Science||UD||3||UD-B|
|Arts and/or Humanities||UD||3||UD-C|
|SF State Studies|
|Courses certified as meeting the SF State Studies requirements may be upper or lower division in General Education (GE), a major or minor, or an elective.|
|American Ethnic and Racial Minorities||LD or UD||3||AERM|
|Environmental Sustainability||LD or UD||3||ES|
|Global Perspectives||LD or UD||3||GP|
|Social Justice||LD or UD||3||SJ|
Note: LD = Lower-Division; UD = Upper-Division.
First-Time Student Roadmap (4 Year)
- In order to choose your English Composition A2 course and your QR/Math B4 course, please complete the online advising activities at writingadvising.sfsu.edu and mathadvising.sfsu.edu. Questions? Contact Gator Smart Start.
- Select the row that matches your English course choice for A2.*
- Select the column that matches your QR/Math course choice for B4.
- Click the Roadmap that lines up with your row and column.
For example, if you select ENG 104/ENG 105 and a multi-semester QR/math sequence for your first year, then choose Roadmap D.
|Course Choice||One-Semester Course||Two-Semester Sequence or Support Course|
|ENG 114||Roadmap A||Roadmap C|
|ENG 104/ENG 105||Roadmap B||Roadmap D|
* Composition for Multilingual Students: If taking ENG 209 as your first English course, choose the ENG 114 row. If taking ENG 201 or ENG 212 for your first English course, choose the ENG 104/ENG 105 row.
Transfer Student Roadmap (2 Year)
For students with an AS-T in Computer Science. This roadmap opens in a new tab.
This degree program is an approved pathway (“similar” major) for students earning the ADT in Computer Science
California legislation SB 1440 (2009) mandated the creation of the Associate Degree for Transfer (ADT) to be awarded by the California Community Colleges. Two types of ADTs are awarded: Associate in Arts for Transfer (AA-T) and Associate in Science for Transfer (AS-T).
Note: no specific degree is required for admission as an upper-division student. However, the ADT includes specific guarantees related to admission and graduation and is designed to clarify the transfer process and strengthen lower-division preparation for the major.
An ADT totals 60 units and in most cases includes completion of all lower-division General Education requirements and at least 18 units in a specific major. (The Biology, Chemistry, and Environmental Science AS-T degrees defer 3 units in lower-division GE area C and 3 units in lower-division GE area D until after transfer.) Students pursuing an ADT are guaranteed admission to the CSU if minimum eligibility requirements are met, though not necessarily to the CSU campus of primary choice.
Upon verification that the ADT has been awarded prior to matriculation at SF State, students are guaranteed B.A. or B.S. completion in 60 units if pursuing a “similar” major after transfer. Determinations about “similar” majors at SF State are made by faculty in the discipline.
Degree completion in 60 units cannot be guaranteed when a student simultaneously pursues an additional major, a minor, certificate, or credential.
A sample advising roadmap for students who have earned an ADT and continue in a "similar" major at SF State is available on the Roadmaps tab on the degree requirements page for the major. The roadmap displays:
- How many lower-division units required for the major have been completed upon entry based on the award of a specific ADT;
- Which lower-division requirements are considered complete upon entry based on the award of a specific ADT;
- How to complete the remaining 60 units for the degree in four semesters.
Students who have earned an ADT should seek advising in the major department during the first semester of attendance.
General Advising Information for Transfer Students
- Before transfer, complete as many lower-division requirements or electives for this major as possible.
- The following courses are not required for admission but are required for graduation. Students are strongly encouraged to complete these units before transfer; doing so will provide more flexibility in course selection after transfer.
- a course in U.S. History
- a course in U.S. & California Government
For information about satisfying the requirements described in (1) and (2) above at a California Community College (CCC), please visit http://www.assist.org. Check any geographically accessible CCCs; sometimes options include more than one college. Use ASSIST to determine:
- Which courses at a CCC satisfy any lower-division major requirements for this major;
- Which courses at a CCC satisfy CSU GE, US History, and US & CA Government requirements.
Remedial courses are not transferable and do not apply to the minimum 60 semester units/90 quarter units required for admission.
Additional units for courses that are repeated do not apply to the minimum 60 units required for upper-division transfer (for example, if a course was not passed on the first attempt or was taken to earn a better grade).
Before leaving the last California Community College of attendance, obtain a summary of completion of lower-division General Education units (IGETC or CSU GE Breadth). This is often referred to as a GE certification worksheet. SF State does not require delivery of this certification to Admissions, but students should retain this document for verifying degree progress after transfer.
Credit for Advanced Placement, International Baccalaureate, or College-Level Examination Program courses: AP/IB/CLEP credit is not automatically transferred from the previous institution. Units are transferred only when an official score report is delivered to SF State. Credit is based on the academic year during which exams were taken. Refer to the University Bulletin in effect during the year of AP/IB/CLEP examination(s) for details regarding the award of credit for AP/IB/CLEP.
Students pursuing majors in science, technology, engineering, and mathematics (STEM) disciplines often defer 6-9 units of lower-division General Education in Areas C and D until after transfer to focus on preparation courses for the major. This advice does not apply to students pursuing associate degree completion before transfer.
Transferring From Institutions Other Than CCCs or CSUs
Review SF State's lower-division General Education requirements. Note that, as described below, the four basic skills courses required for admission meet A1, A2, A3, and B4 in the SF State GE pattern. Courses that fulfill the remaining areas of SF State’s lower-division GE pattern are available at most two-year and four-year colleges and universities.
Of the four required basic skills courses, a course in critical thinking (A3) may not be widely offered outside the CCC and CSU systems. Students should attempt to identify and take an appropriate course no later than the term of application to the CSU. To review more information about the A3 requirement, please visit bulletin.sfsu.edu/undergraduate-education/general-education/lower-division/#AAEL.
Waiting until after transfer to take a single course at SF State that meets both US and CA/local government requirements may be an appropriate option, particularly if transferring from outside of California.