Associate Professors--Hodges, Hsu, Kroll, Wong, C.S.
Adjunct Professors--Haines, Oklobdzija
Minor in Computer Science
M.S. in Computer Science
Department faculty are committed to teaching excellence. They remain current in the rapidly changing field of computing technology through continued research, direct consultation with local industries, and seminar programs that bring top researchers to campus to speak on current developments in the field. Programs such as the Industry Research Associate Program provide opportunities for graduate students to complement their academic learning with real world experience.
The department has an additional commitment to sharing its knowledge and skills with the rest of the university community, with local schools, and with community based organizations of the Bay Area.
The B.S. program stresses a basic foundation in mathematics and physics, and a thorough study of the fundamentals of the discipline--software development, computer architecture, operating systems, programming languages, algorithms, and the theoretical foundations of computer science. A wide variety of elective courses such as database systems, artificial intelligence, computer architecture and graphics, allow students to emphasize study in selected areas. Ethical and social issues of computing are discussed throughout the curriculum. It is strongly recommended that students who will seek employment as computer specialists in industry gain a basic understanding of the general aims and problems of that industry by taking a minor or the equivalent in one of the appropriate university programs.l.
Central Facilities:
Departmental Facilities:
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 adviser in order that the correct sequence of courses be taken and a proper set of electives be chosen. It is also suggested that students consult with an adviser before selecting courses to meet General Education requirements.
Students are encouraged to participate in the Computer Science Cooperative Education Program at SFSU. 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.
Students are advised that except for the laboratory courses, CSC 212 and CSC 311, CR/NC grades are not acceptable in courses to be counted for the computer science major program. Courses for this program are listed in alphabetical sequence (consult Index for page reference).
Program | Units | ||
Mathematics and Physics (23 units) | |||
MATH 220-222 | Calculus and Analytic Geometry I-III (3 each) | 9 | |
MATH 250 | Probability and Statistics with Computing | 3 | |
MATH 325 | Linear Algebra | 3 | |
PHYS 220/222 | General Physics with Calculus I | (3/1) | 4 |
PHYS 230/232 | General Physics with Calculus II | (3/1) | 4 |
Core Computer Science Requirements (22 units) | |||
CSC 210 | Introduction to Computer Programming | 3 | |
CSC 212 | Software Development Tools with UNIX | 2 | |
CSC 301 | Fundamentals of Computer Science | 3 | |
CSC 310 | Assembly Language Programming and Introduction to Computer Organization | 3 | |
CSC 311 | Assembly Language Programming Laboratory | 2 | |
ENGR 356 | Basic Computer Architecture | 3 | |
CSC 330 | Discrete Mathematical Structures for Computer Science | 3 | |
CSC 410 | Data Structures | 3 | |
Advanced Computer Science Requirements (21 units) | |||
CSC 415 | Principles of Operating Systems | 3 | |
CSC 510 | Analysis of Algorithms I | 3 | |
CSC 600 | Programming Language Design | 3 | |
Senior Presentation. Each major is required to make an oral presentation on an area of computer science during his/her senior year. Guidelines for the presentation are available in the department office | 0 | ||
Electives (see requirements below) | 12 | ||
Total for major | 66 |
The courses listed below constitute a partial list of suitable courses. Frequently, the department offers courses under the title of CSC 690, Undergraduate Seminar, which meet elective requirements. For example, new courses in computer music, multimedia, performance evaluation, and network administration have been offered. In addition, many students find that by their senior year they are prepared to undertake certain graduate courses in computer science. Any course substitutions must be approved by the major adviser.
Subareas of Specialized Emphasis | |
Algorithms and Theory of Computing | |
CSC 520 | Theory of Computing |
CSC 610 | Sorting and Searching |
Architecture | |
CSC 656 | Computer Organization |
Artificial Intelligence | |
CSC 620 | Natural Language Processing |
CSC 665 | Introduction to Artificial Intelligence |
CSC 671 | Neural Networks |
Database | |
CSC 675 | Introduction to Database Systems |
Graphics | |
CSC 630 | Computer Graphics Systems Design |
Numerical and Symbolic Computing | |
MATH 400 | Numerical Analysis I |
Operating Systems and Distributed Processing | |
CSC 645 | Computer Networks |
Programming Languages | |
CSC 520 | Theory of Computing |
CSC 668 | Object Oriented Programming |
Software Engineering | |
CSC 668 | Object Oriented Programming |
CSC 640 | Software Engineering |
Program | Units | |
CSC 210 | Introduction to Computer Programming | 3 |
CSC 212 | Software Development Tools with UNIX | 2 |
CSC 301 | Fundamentals of Computer Science | 3 |
CSC 310 | Assembly Language Programming and Introduction to Computer Organization | 3 |
CSC 311 | Assembly Language Programming Laboratory | 2 |
CSC 410 | Data Structures | 3 |
ENGR 356 | Basic Computer Architecture | 3 |
One upper division computer related elective by approval of the minor adviser | 3 | |
Total for minor | 22 |
MASTER OF SCIENCE IN COMPUTER SCIENCE
Admission to Program
Candidates for admission to the Computer Science M.S. Program should have strong backgrounds in the mathematics which underlies all sciences, the fundamental programming techniques, and the basic concepts of computer architecture, as well as demonstrated potential for graduate study in computer science. The requisite academic background is normally evidenced by a 3.3 grade point average with no grades below a B in the following courses or their equivalents: CSC 330, 410; and ENGR 356. In addition, the student must have completed the following with no grades below a B: MATH 220, 221, 222. Candidates for admission must submit two or more letters of recommendation from individuals familiar with their previous academic work and/or potential for graduate study. Finally, candidates must submit their scores on the general GRE aptitude test, taken within three years prior to the date of application. Letters of recommendation and test scores should be sent to the Graduate Admissions Officer, Department of Computer Science.Written English Proficiency Requirement
Level One: newly admitted students are required to take the Graduate Essay Test (GET, administered by the Testing Office) preferably before the first enrollment takes place, but no later than completion of the first nine units of course work toward the master's degree. If remedial work is necessary, the student shall be expected to complete courses in writing or other corrective work acceptable to the department. Level Two: the second level of proficiency in written English must be demonstrated before graduation. At this time, the student must demonstrate writing skills which exemplify scholarly style in computer science. This is generally demonstrated by the master's thesis. Students who do not write a thesis can satisfy this requirement by obtaining the approval of the graduate adviser based on a letter of support from a faculty member who has evaluated the student's English proficiency. The evaluation should be based on written assignments completed for graduate level Computer Science course work.
Program | Units | |
CSC 720 | Advanced Operating Systems | 3 |
CSC 810 | Analysis of Algorithms II | 3 |
CSC 856 | Advanced Computer Architecture | 3 |
Upper division or graduate electives selected on advisement from the areas listed below | 18 | |
One of the following: | 3 | |
Three additional units of electives and Master's Comprehensive Written Examinationor | ||
CSC 898 | Master's Thesis and Oral Defense of Thesis | |
Minimum total | 30 |
Areas of Computer Science
Architecture
Artificial Intelligence
Database Systems
Graphics
Operating Systems
Programming Languages
Software Engineering
Theory of Computation and Algorithms
Special Study or ResearchPolicy 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 adviser (above and beyond general advising during office hours) and/or having his/her thesis reviewed, must enroll in at least one unit of CSC 897, 898, or 899. Registered students will have priority for departmental computing resources.