Skip to Content
University Catalog

COMPUTER SCIENCE

College of Engineering and Computer Science

PROGRAM DESCRIPTION

The Bachelor of Science degree in Computer Science is accredited by the Computing Accreditation Commission (CAC) of ABET, Inc., providing majors with a sound educational base in Computer Science. The Minor in Computer Science is available for students majoring in disciplines other than Computer Engineering.

The certificate program in Web Development is available to both majors and non-majors. Majors interested in enhancing their degrees need only take CSC 121 and CSC 123 in addition to major-required courses. Non-majors who complete the series of seven courses will be able to install and maintain a reasonably complex Web server, create home pages, and link pages to local databases.

The Department offers three programs in conjunction with other units: with the Mathematics Department, a joint program in Mathematics and Applied Computing (refer to the Mathematics section of this catalog); and with the Electrical and Electronic Engineering Department, a BS and an MS in Computer Engineering (refer to the Computer Engineering section of this catalog).

Special Features

  • The research interests of the department faculty span a broad spectrum of Computer Science including active databases, algorithm analysis, autonomic computing, bioinformatics, compilers, computer architecture, computer forensics, computer graphics and computer game design, computer networks and communications, computing theory, cryptography, data models and database management systems, data warehousing and data mining, distributed systems and real-time systems, formal methods, human-computer interfaces, information assurance and security, intelligent and knowledge-based systems, Internet and Web technologies, machine learning, network security, operating systems, performance modeling and evaluation, programming languages and methodologies, software architecture, software project management, software requirements engineering, software system engineering, verification and validation, VLSI design.
  • A large heterogeneous network of Linux 64-bit, Sun RISC, and Hewlett-Packard RISC servers combined with Linux, SunOS, HPUX, Windows, and MacOS workstations supports the instructional programs. Linux and Windows workstation laboratories support both lower and upper-division instruction. Specialized laboratories support systems, communications and networking, computer security, and computer architecture instruction. A graduate laboratory is designed to provide graduate students with access to a variety of advanced workstations. All students have access to the Internet and every conceivable Web resource.
  • Majors are urged to join the student chapters of the Association for Computing Machinery or the IEEE Computer Society. Students with high scholastic achievement may be invited to join Upsilon Pi Epsilon, the national honor society for Computer Science.
  • The University's proximity to many California State agencies and major computer corporations provides numerous opportunities for part-time student employment.

Bachelor of Science Educational Objectives

The objectives of this program are to prepare graduates to:

  • analyze, design, and implement a computerized solution to a significant problem in a team environment using appropriate tools;
  • enter a professional Computer Science position or an appropriate graduate program;
  • communicate effectively through speaking, writing, and graphics;
  • pursue life-long learning and continued professional development; and
  • be aware of ethical issues and societal concerns relating to computers in society and apply this knowledge in the conduct of their careers.

UNDERGRADUATE PROGRAMS

All students are admitted as pre-Computer Science majors. Registration in upper-division courses numbered 133 and above is restricted to Computer Science and Computer Engineering majors. Other students need to obtain approval from the CSC Department Chair. To change to the Computer Science major, students who have completed the following lower division (pre-major) requirements are required to complete and submit a Change of Major form to the Computer Science Department Office along with transcript copies: CSC 15, CSC 20, CSC 28, CSC 35, CSC 60, and MATH 30 and MATH 31.

Course Repeat Policy: Students may repeat a Computer Science course once at most without permission. Additional repeats must be approved by the instructor and the Department Chair by completing a "Request to Repeat" petition and submitting it to the Department.

Work Experience: Students may receive a limited amount of academic credit for relevant work experience in Computer Science. There are many opportunities for students to work part-time in the federal, state, and local governments.  A significant number of positions in private industry are also available in both well-established and new companies in the Sacramento area.  Such work experiences often lead to permanent positions upon graduation.

Note: Useful information can also be found in the College of Engineering and Computer Science section.

Requirements - Bachelor of Science Degree

Units required for Major: 87-90
Minimum total units required for BS: 129
Grade of "C-" or better required in all courses applied to the Computer Science major.
Note: Additional units may be required to meet the Sacramento State foreign language requirement.

Courses in parentheses are prerequisites.

A. Required Lower Division Courses (15 units)

(3)

CSC 15

Programming Concepts and Methodology I (CSC 10 or programming experience in a high-level programming language)

(3)

CSC 20

Programming Concepts and Methodology II (CSC 15)

(3)

CSC 28

Discrete Structures for Computer Science (MATH 29 and CSC 20; CSC 20 may be taken concurrently)

(3)

CSC 35

Introduction to Computer Architecture (CSC 15)

(3)

CSC 60

Introduction to Systems Programming in UNIX (CSC 20, CSC 35)

B. Required Mathematics Courses (15-16 units)

(4)

MATH 30

Calculus I (MATH 29 or four years of high school mathematics which includes two years of algebra, one year of geometry, and one year of mathematical analysis; completion of ELM requirement and Pre-Calculus Diagnostic Test)

(4)

MATH 31

Calculus II (MATH 30 or appropriate high school based AP credit)

(4)

STAT 50

Introduction to Probability and Statistics (MATH 26A, MATH 30, or appropriate high school based AP credit)

(3-4) Select one of the following:

 

MATH 32

Calculus III (MATH 31)

 

MATH 45

Differential Equations for Science and Engineering (MATH 31)

 

MATH 100

Applied Linear Algebra (MATH 26B or MATH 31)

 

MATH 102

Number Theory (MATH 31)

 

STAT 155

Introduction to Techniques of Operations Research (MATH 31; STAT 50, STAT 103, or STAT 115A; MATH 31 may be taken concurrently) OR

  Another advanced math course with prior Computer Science department approval.

C. Required Science Courses (11-13 units)

(4)

PHYS 11A

General Physics: Mechanics (MATH 30, MATH 31 or equivalent certificated high school courses; MATH 31 may be taken concurrently)

(4)

PHYS 11C

General Physics: Electricity and Magnetism, Modern Physics (MATH 31, PHYS 11A)

(3-5) Select one of the following (the course cannot be used to satisfy the General Education B2 requirement):
 

BIO 10

Basic Biological Concepts

BIO 22

Introductory Human Anatomy (BIO 1, BIO 2, BIO 10, BIO 20)

BIO 102

The Natural History of Plants (A college biology course or instructor permission)

BIO 103

Plants and Civilization (BIO 10 or equivalent)

BIO 104

Physiology of Human Reproduction (BIO 1, BIO 2, BIO 10, or BIO 20)

BIO/PSYC 115

Introduction to Neuroscience (PSYC 2, PSYC 101, physiology and chemistry background strongly recommended)

BIO 120

Biology of Aging (BIO 1, BIO 2, BIO 10 or BIO 20)

CHEM 1A

General Chemistry I (High school chemistry and college algebra; sufficient performance on the college algebra diagnostic test, or equivalent)

CSC 148

Modeling and Experimental Design (MATH 31, STAT 50, proficiency in a programming language)

ECON 141

Introduction to Econometrics (ECON 1A, ECON 1B, ECON 140; ECON 100A or ECON 100B recommended)

ENGR 17

Introductory Circuit Analysis (MATH 45, PHYS 11C; either may be taken concurrently but not both)

ENGR 45

Engineering Materials (CHEM 1A, PHYS 11A; CHEM 1A may be taken concurrently)

 

PHYS 11B

General Physics: Heat, Light, Sound (MATH 31, PHYS 11A)

PHYS 115

Electronics and Instrumentation (PHYS 11C or PHYS 5B, with instructor permission)

Note: To satisfy the requirements of CAC, the Computing Accreditation Commission of ABET, Inc. which accredits Computer Science programs, students must have taken a total of four courses in a scientific discipline and/or quantitative science. The courses in a scientific discipline must be those typically taken by the majors in that discipline. As part of this requirement a two-semester sequence in a laboratory science must be included (PHYS 11A and PHYS 11C satisfies this requirement). Students ordinarily complete one of the remaining two courses by choosing an appropriate course in General Education Category B2 (BIO 10 is recommended). The second course is expected to be chosen from the list above. Hence, students must have taken a total of four courses in this category.

D. Required Upper Division Courses (37 units)

(3)

CSC 130

Data Structures and Algorithm Analysis (CSC 20, CSC 28; CSC 28 may be taken concurrently)

(3)

CSC 131

Computer Software Engineering (CSC 130; may be taken concurrently)

(3)

CSC 132

Computing Theory (CSC 28, CSC 130; CSC 130 may be taken concurrently)

(3)

CSC 133

Object-Oriented Computer Graphics Programming (CSC 130, CSC 131)

(3)

CSC 134

Database Management and File Organization (CSC 130)

(3)

CSC 136

Programming Languages (CSC 35, CSC 132)

(4)

CSC 137

Computer Organization (CSC 28, CSC 35, CSC 130)

(3)

CSC/CPE 138

Computer Networks and Internets (CSC 35, CSC 60, CSC 130)

(3)

CSC 139

Operating System Principles (CSC 60, CSC 137; or equivalents)

(2)

CSC 190

Senior Project: Part I (Senior status; GWAR Certification before Fall 09, or WPJ score of 70+, or at least a C- in ENGL 109M/W; CSC 130, CSC 131, and four additional 3-unit CSC upper division courses that fulfill the major requirements excluding CSC 192-195, CSC 198, CSC 199)

(2)

CSC 191

Senior Project: Part II (CSC 190)

(3)

PHIL 103

Business and Computer Ethics

(2) Select two units from the following:
 

CSC 192

Career Planning (1 unit maximum) (CSC 130 and three additional upper-division courses that fulfill major requirements with a C- grade or better (excluding CSC 190-195, CSC 198, and CSC 199)

 

CSC 194

Computer Science Seminar (Upper division or graduate status in CSC)

 

CSC 195

Fieldwork in Computer Science (Instructor permisison)

 

CSC 195A

Professional Practice (Instructor permission)

 

CSC 198

Co-curricular Activities in Computer Science

 

CSC 199

Special Problems

E. Electives (9 units)

In addition to the required lower-division and upper-division Computer Science courses, Computer Science majors must take three additional elective courses, totaling at least nine (9) units, chosen from undergraduate Computer Science courses numbered CSC 140 or above (excluding CSC 192, CSC 194, CSC 195, CSC 195A, CSC 198, CSC 199). A variety of combinations is acceptable, but it is required that these elective courses be chosen with advisor consultation and approval. With advance written approval from their advisor, the course instructor, and the Department Chair, students with a GPA of 3.0 or better may take graduate courses as electives. In any case students must meet the prerequisite stated in the catalog prior to taking any elective course.

Cooperative Education Program (Work Experience)

The Computer Science Department encourages students to participate in the Cooperative Education Program (Co-op) which provides alternate periods of University study and major-related, paid work experience in private industry or government. The experience will enhance the student's employment prospects upon graduation. Most participants in Computer Science will complete the equivalent of two six-month work periods, one in their junior year and one in their senior year. Students must enroll in CSC 195A (B ,C, D) and are awarded a certificate upon satisfactory completion of the two work periods. However, the credits for this course do not replace the curricular requirements of the BS Computer Science degree. Students interested in Co-op should apply in the Career Center). For information call (916) 278- 6231.

Requirements - Minor

Total units required for Minor: 21
Grade of "C-" or better required in all courses applied to the Computer Science minor.

Courses in parentheses are prerequisites.

Admission Requirement

Completion of MATH 29 with a grade of "C-" or better, or passing the ELM at a level qualifying for MATH 30 .

A. Required Courses (12 units)

(3)

CSC 15

Programming Concepts and Methodology I (CSC 10, or programming experience in a high-level programming language)

(3)

CSC 20

Programming Concepts and Methodology II (CSC 15)

(3)

CSC 28

Discrete Structures for Computer Science (MATH 29 and CSC 20; CSC 20 may be taken concurrently)

(3)

CSC 130

Data Structures and Algorithm Analysis (CSC 20, CSC 28; CSC 28 may be taken concurrently)

B. Electives (9 units)

(9) Select nine additional units with faculty approval; at least six units must be upper division courses, and only Computer Science courses which are part of the major may be applied to this nine-unit requirement.

Requirements - Minor - Information Security and Computer Forensics

Total units required for Minor: 18
Grade of "C-" or better required in all courses applied to the Computer Science minor.

Courses in parentheses are prerequisites.

Required Courses (18 units)

(3)

CSC 10

Introduction to Programming Logic (MATH 11 or equivalent) OR

CSC 22

Visual Programming in BASIC (Intermediate Algebra)

(3)

CSC 80

Web Development with HTML/XHTML and Tools (CSC 8, or equivalent computer and Internet experience)

(3)

CSC 114

Digital Evidence and Computer Crime

(3)

CSC 115

Internet Security (CSC 114)

(3)

CSC 116

Cyber Forensics (CSC 114)

(3)

CSC 122

Web Database Applications (CSC 10 or CSC 22; CSC 80, or equivalent)

Requirements - Certificate - Web Development

Total units required for Certificate: 21 units.
A grade of "C-" or better required in all courses applied to this certificate program.

Courses in parentheses are prerequisites.

Note: Requirements for non-majors interested in mastering a set of skills for creating and managing information on a Web server:

(3) Select one of the following:

 

CSC 8

Introduction to Internet Technologies (Basic computer literacy recommended)
OR

 

CSC 8S

Self-Paced Introduction to Internet Technologies (Basic computer literacy recommended)

(3)

CSC 22

Visual Programming in BASIC (Intermediate Algebra)

(3)

CSC 80

Web Development with HTML/XHTML and Tools (CSC 8 or equivalent computer and Internet experience)

(3)

CSC 120

Web Server Administration (CSC 80)

(3)

CSC 121

Client-Side Web Programming (CSC 22, CSC 80 or equivalents; or PCSC/CSC Major, CSC 60, CSC 130)

(3)

CSC 122*

Web Database Applications (CSC 10 or CSC 22; CSC 80, or equivalent)

(3)

CSC 123*

Web Application Development (CSC 22, CSC 121, CSC 122 or equivalent experience or PCSC/CSC Major, CSC 60, CSC 134)

*With advisor approval an elective course from CSC or Communication Studies (COMS) can be used in place of either CSC 122 or CSC 123, but not both.

Requirements for Majors: CSC 121 and CSC 123 in addition to completing CSC 60, CSC 130, CSC 134, CSC/CPE 138, and CSC 139. Prerequisites for majors taking CSC 121 are CSC 60 and CSC 130; prerequisites for majors taking CSC 123 are CSC 60 and CSC 134 (CSC/CPE 138 and CSC 139 are recommended as prerequisites and required for the final certificate).

Graduate students who are fully classified in either Computer Science or Software Engineering need only take CSC 121 and CSC 123.

Requirements - Certificate - Information Assurance and Security

Courses in parentheses are prerequisites.

Required Courses (9 units)

(3)

CSC 152

Cryptography (CSC 60, CSC 130, STAT 50)

(3)

CSC 153

Computer Forensics Principles and Practices (CSC 138 or CPE 138)

(3)

CSC 154

Computer System Attacks and Countermeasures (CSC 138 or CPE 138)

GRADUATE PROGRAMS

The Computer Science Department offers Master's Degree programs in Computer Science and Software Engineering, Certificates of Advanced Study for students enrolled in the Computer Science program, and a Master's Degree joint program in Computer Engineering.

The primary goal of each of these programs is to prepare students to serve as effective professional computer specialists in a society which increasingly depends on computer usage and technology.

A secondary goal is to prepare interested students for research, teaching, or further study toward the Ph.D. in Computer Science. The programs also enable individuals with background in other areas to obtain the skills and knowledge necessary to enter and advance in employment in computer-related industries.

The admission requirements for the Master's in Computer Science and the Master's in Software Engineering are identical. Completion of the Master of Science in Computer Science requires advanced coursework in a minimum of three of the following areas: computer architecture/computer engineering, database management systems, information assurance and security, intelligent systems, networks and communications, software engineering, and systems software. Completion of the Master of Science in Software Engineering requires advanced coursework in the software engineering area.

Teaching associateships are occasionally available for qualified graduate students; these students assist in instruction of undergraduate courses, supervision of laboratory work, and aid faculty members in research projects. Interested persons should apply in the Department office.

Due to the large number of graduate students in Computer Science who are employed, most graduate level courses are offered in the late afternoon or evening.

Admission Requirements

Admission as a classified graduate student requires:

  • a baccalaureate degree;
  • a minimum 3.0 GPA in the last 60 units attempted;
  • GRE general test;
  • mathematical preparation including two semesters of calculus and one semester of calculus-based probability and statistics corresponding to Sacramento State courses MATH 30, MATH 31, STAT 50;
  • Computer Science lower-division preparation including programming proficiency, discrete structures, machine organization, and UNIX and PC-based program development environment proficiency corresponding to Sacramento State courses CSC 15, CSC 20, CSC 28, CSC 35, and CSC 60 and as evidenced by a pass on the graduate student placement test or a baccalaureate degree in Computer Science; and
  • Computer Science advanced preparation as evidenced by a 3.25 GPA in the following Sacramento State upper division Computer Science courses or their equivalent elsewhere: CSC 130, CSC 131, CSC 132, CSC 134, CSC 137, CSC/CPE 138, CSC 139.

Applicants with deficiencies in the admission requirements area are advised to remove any such deficiencies before applying.

Admission Procedures

Applications are accepted February through March for fall semester and August through September for spring semester. All prospective graduate students, including Sacramento State graduates, must file the following with the Sacramento State Office of Graduate Studies, River Front Center 206, (916) 278-6470:

  • an online application for admission;
  • two sets of official transcripts from all colleges and universities attended, other than Sacramento State; and
  • official GRE general test scores.

Applications must be received by April 1 (fall semester) and October 1 (spring semester).

Advancement to Candidacy

Each student must file an application for Advancement to Candidacy, indicating a proposed program of graduate study. This procedure should begin as soon as the classified graduate student has:

  • removed any deficiencies in admission requirements;
  • completed at least 12 units of graduate level (200 series) Computer Science courses with a minimum 3.0 GPA; and
  • taken the Writing Placement for Graduate Students (WPG) or taken a Graduate Writing Intensive (GWI) course in their discipline within the first two semesters of coursework at California State University, Sacramento or secured approval for a WPG waiver.

Students must have been advanced to candidacy before they can register for Master's thesis or project. Advancement to Candidacy forms are available in the Office of Graduate Studies. The student fills out the form after planning a degree program in consultation with a Computer Science graduate advisor. The completed form must be signed by the Graduate Coordinator or the Department Chair and is then returned to the Office of Graduate Studies for approval.

Requirements - Master of Science Degree - Computer Science

Units required for MS: 30, including at least 21 units of 200-level and 500-level courses
Minimum GPA: 3.0

Courses in parentheses are prerequisites.

Note: Only those courses completed within seven years prior to date of graduation will satisfy course requirements. An outline of degree requirements follows:

A. Required Courses (13 units)

(3)

CSC 201

Programming Language Principles (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 204+

Data Models for Database Management Systems (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 205+

Computer Systems Structure (Fully classified graduate status in Computer Science, Software Engineering or Computer Engineering)

(3)

CSC 206

Algorithms and Paradigms (Fully classified graduate status in Computer Science or Software Engineering)

(1)

CSC 209

Research Methodology (Fully classified graduate status in Computer Science or Software Engineering, GWAR Certification before Fall 09, or WPJ score of 70+, or at least a C- in ENGL 109M/W, and completion of at least 12 units of 200-level CSC courses)

+Students whose undergraduate preparation has covered a significant amount of the material in CSC 204 or CSC 205 may be given a waiver by the Department from taking one or more of these courses. In this case, for each course waived with department approval, the student must take three additional units of Restricted Electives, described in Section C below.

B. Breadth Requirement (9 units)

Select one course from three of the following areas:

Computer Architecture/Computer Engineering

CSC 237

Microprocessor Systems Architecture (CSC 205)

CSC 242

Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273)

CSC/EEE 273

Hierarchical Digital Design Methodology (CSC 205, CPE/EEE 64 or equivalent)

CSC/EEE 280

Advanced Computer Architecture (CSC 205; fully classified graduate status in Computer Science or Software Engineering)

Database Management Systems
 

CSC 212

Bioinformatics: Data Integration and Algorithms (CSC 130, STAT 50, and graduate status; BIO 10 recommended)

CSC 244

Database System Design (CSC 174 or CSC 204)

Information Assurance and Security
 

CSC 250

Computer Security (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering)

CSC 252

Cryptography Theory and Practice (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering)

CSC 253

Computer Forensics (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering)

CSC 254

Network Security (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering)

Intelligent Systems

CSC 214

Knowledge-Based Systems (Fully classified graduate status in Computer Science or Software Engineering)

 

CSC 215

Artificial Intelligence (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

 

CSC 219

Machine Learning (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

Networks and Communications

CSC 255

Computer Networks (Fully classified graduate status in Computer Science, Software Engineering, or a Computer Engineering)

CSC 258

Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 275

Advanced Data Communication Systems (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

Software Engineering

CSC 230

Software System Engineering (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131)

 

CSC 231

Software Engineering Metrics (Fully classified graduate status in Computer Science or Software Engineering)

CSC 232

Software Requirements Analysis and Design (Fully classified graduate status in Computer Science or Software Engineering)

CSC 233

Advanced Software Engineering Project Management (Fully classified graduate status in Computer Science or Software Engineering)

CSC 234

Software Verification and Validation (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131)

CSC 235

Software Architecture (Fully classified graduate status in Computer Science or Software Engineering)

CSC 236

Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering)

CSC 238

Human-Computer Interface Design (Fully classified graduate status in Computer Science or Software Engineering)

System Software

CSC 239

Advanced Operating System Principles and Design (CSC 205)

CSC 245

Performance Modeling and Evaluation (Fully classified graduate status in Computer Science or Software Engineering)

CSC 250

Computer Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 251

Principles of Compiler Design (CSC 151 or CSC 201)

C. Restricted Electives (3-6 units)

Prior to taking an elective course, students must obtain approval from their advisor, and either the Graduate Coordinator or the Department Chair.

Students should choose their electives according to the following guidelines:

  1. One of the following upper division courses: CSC/CPE 142 , CSC 148, CSC 155, CSC/CPE 159, CSC 165, CSC 176, CSC 177 as long as they have not been used towards another degree. (A maximum of 6 undergraduate units may be used in any graduate program.)
  2. Any 200-level CSC courses not already used to satisfy the Breadth Requirement, with the exception of CSC 295 and CSC 299. Students not required to take CSC 204 or CSC 205 must, for each course waived, take an additional three units in this category.
  3. Related 200-level courses from outside the Computer Science Department may only be taken with prior department approval and may not have been used in another program.
D. Culminating Requirement (2-5 units)
Select one of the following:

CSC 500*

Master's Thesis (CSC 209; advanced to candidacy) OR

CSC 502*

Master's Project (CSC 209; advanced to candidacy)

*Students are required to make an oral presentation of their master's project or conduct an oral defense of their master's thesis. The recommended department-level deadline in each semester for submitting an MS project or thesis signed by the committee chair and its members to the Graduate Coordinator's office is 10 weekdays prior to the University deadline.

Requirements - Master of Science Degree - Software Engineering

Units required for MS: 30, including a software engineering project or thesis with a minimum 3.0 GPA.

This degree provides the student with the ability to specialize in the application of software engineering principles to the development of large and complex computer systems.

The program's courses are structured to satisfy two groups of students: (1) those pursuing an MSSE degree and (2) those interested in individual courses. Individuals wishing to pursue a degree must satisfy the Computer Science graduate program entrance requirements. Those enrolling in individual courses must have an undergraduate degree in Computer Science (or related field) or a minimum of one-year's work experience involving some aspect of software engineering.

The MS Degree in Software Engineering offers, in addition to a core curriculum, advanced studies in the software engineering area. This program covers the entire software application development process from problem definition through requirements, design, implementation, testing, operation, and maintenance.

Note: Only those courses completed within seven years prior to date of graduation will satisfy course requirements. An outline of degree requirements follows:

Courses in parentheses are prerequisites.

A. Required Software Engineering Courses (21 units)
Select 7 out of the following 8 courses:

(3)

CSC 230

Software System Engineering (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131)

(3)

CSC 231

Software Engineering Metrics (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 232

Software Requirements Analysis and Design (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 233

Advanced Software Engineering Project Management (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 234

Software Verification and Validation (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131)

(3)

CSC 235

Software Architecture (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 236

Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering)

(3)

CSC 238

Human-Computer Interface Design (Fully classified graduate status in Computer Science or Software Engineering)

B. Required Research Metohdology (1 unit)

(1)

CSC 209

Research Methodology (Fully classified graduate status in Computer Science or Software Engineering, GWAR Certification before Fall 09, or WPJ score of 70+, or at least a C- in ENGL 109M/W, completion of at least 12 units of 200-level courses in Computer Science)

C. Restricted Electives (3-6 units)

Prior to taking an elective course, students must obtain approval from their advisor, and either the Graduate Coordinator or the Department Chair. Students should choose their electives according to the following guidelines:

  1. One of the following upper-division courses: CSC/CPE 142, CSC 148, CSC 155, CSC/CPE 159, CSC 165, CSC 176, CSC 177, as long as they have not been used towards another degree. (A maximum of 6 undergraduate units may be used in any graduate program.)
  2. Any 200-level CSC course not already used to satisfy requirement A and B, with the exception of CSC 295 and CSC 299. An additional three units in this category must be taken if a core course is waived.
  3. Related 200-level courses from outside the Computer Science Department may only be taken with prior department approval and may not have been used in another program.
D. Culminating Requirement (2-5 units)
Select one of the following:

 

CSC 500*

Master's Thesis (CSC 209; advanced to candidacy) OR

 

CSC 502*

Master's Project (CSC 209; advanced to candidacy)

*Students are required to make an oral presentation of their master's project or conduct an oral defense of their master's thesis. The recommended department-level deadline in each semester for submitting an MS project or thesis signed by the Committee Chair and its members to the Graduate Coordinator’s office is 10 weekdays prior to the University deadline.

Requirements - Certificates - Advanced Programs

Minimum required GPA for all courses taken in the program: 3.0

Courses in parentheses are prerequisites.

Note: The Certificates in Computer Science program are designed to recognize students who have completed the core graduate courses -- CSC 201, CSC 204, CSC 205 and CSC 206 -- plus additional advanced coursework in a specialty area.

These certificates are available only for MS Computer Science matriculated students.

Certificate in Bioinformatics Technology (12 units)

(3)

BIO 224

Genomics, Proteomics and Bioinformatics (BIO 184, BIO 222, graduate status or instructor permission)

(3)

CSC 212

Bioinformatics: Data Integration and Algorithms (CSC 130, STAT 50, and graduate status; BIO 10 recommended)

(3)

CSC 215

Artificial Intelligence (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) OR

CSC 219

Machine Learning (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

(3) Select one of the following:

 

CHEM 245

Computational Chemistry (CHEM 140A and CHEM 140B or CHEM 142 or instructor permission)

CSC 244

Database System Design (CSC 174 or CSC 204)

CSC 258

Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

Certificate in Computer Architecture (15 units)

(3)

CSC/CPE 142

Advanced Computer Organization (CSC 137 or equivalent)

(3)

CSC/EEE 280

Advanced Computer Architecture (CSC 205 and fully classified gradaute status in Computer Science or Software Engineering)

(3) Select one of the following:

CSC 237

Microprocessor Systems Architecture (CSC 205)

CSC 242

Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273)

CSC/EEE 273

Hierarchical Digital Design Methodology (CSC 205 or CPE 64 or equivalent)

CSC 275

Advanced Data Communication Systems (Fully-classified graduate-level major in Computer Science, Software Engineering, or a Computer Engineering)

CSC 288

Special Topics in Computer Science - Computer Architecture

(3) Select one of the following:

CSC 239

Advanced Operating Systems Principles and Design (CSC 205)

CSC 251

Principles of Compiler Design (CSC 151 or CSC 201)

(3) Select one of the following:

EEE 285

Micro-Computer System Design I (CPE 185 or EEE 174)

EEE 286

Micro-Computer System Design II (CPE 186 or EEE 285)

Certificate in Computer Engineering (12 units)

(3)

CSC/CPE 142

Advanced Computer Organization (CSC 137 or equivalent)

(3) Select one of the following:

CSC 237

Microprocessor Systems Architecture (CSC 205)

CSC 275

Advanced Data Communication Systems (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC/EEE 280

Advanced Computer Architecture (CSC 205 and fully classified graduate status in Computer Science or Software Engineering)

CSC 288

Special Topics in Computer Science - Computer Engineering

(3)

CSC 242

Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273) OR

CSC/EEE 273

Hierarchical Digital Design Methodology (CSC 205, CPE 64 or equivalent)

(3)

EEE 285

Micro-Computer System Design I (CPE 185 or EEE 174) OR

EEE 286

Micro-Computer System Design II (CPE 186 or EEE 285)

Certificate in Computer Networks and Communications (9 units)

(3)

CSC 255

Computer Networks (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

(6) Select two of the following:

CSC 254

Network Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 258

Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 275

Advanced Data Communication Systems (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 288

Special Topics in Computer Science - Network Communications

Certificate in Data Management Systems (9 units)
(9) Select three of the following:

CSC 244

Database System Design (CSC 174 or CSC 204)

CSC 250

Computer Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 258

Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 288

Special Topics in Computer Science - Database Management

Certificate in Information Assurance and Security (9 units)
(9) Select three of the following:
 

CSC 236

Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering)

CSC 250

Computer Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 252

Cryptography Theory and Practice (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 253

Computer Forensics (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 254

Network Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

Certificate in Intelligent Systems (9 units)

(3)

CSC 215

Artificial Intelligence (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

(6) Select two of the following:

CSC 214

Knowledge-Based Systems (Fully classified graduate status in Computer Science or Software Engineering)

CSC 219

Machine Learning (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 288

Special Topics in Computer Science - Intelligent Systems

Certificate in Software Engineering (9 units)
(9) Select three of the following:

 

CSC 230

Software System Engineering (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131)

CSC 231

Software Engineering Metrics (Fully classified graduate status in Computer Science or Software Engineering)

CSC 232

Software Requirements Analysis and Design (Fully classified graduate status in Computer Science or Software Engineering)

CSC 233

Advanced Software Engineering Project Management (Fully classified graduate status in Computer Science or Software Engineering)

CSC 234

Software Verification and Validation (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131)

 

CSC 235

Software Architecture (Fully classified graduate status in Computer Science or Software Engineering)

 

CSC 236

Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering)

 

CSC 238

Human Computer Interface Design (Fully classified graduate status in Computer Science or Software Engineering)

CSC 288

Special Topics in Computer Science - Software Engineering

Certificate in Systems Software (9 units)

(3)

CSC 239

Advanced Operating Systems Principles and Design (CSC 205)

(6) Select at least two of the following:

CSC 245

Performance Modeling and Evaluation (Fully classified graduate status in Computer Science or Software Engineering)

CSC 250

Computer Security (Fully classified graduate status in Computer Science, Computer Engineering, or Software Engineering)

CSC 251

Principles of Compiler Design (CSC 151 or CSC 201)

CSC 258

Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering)

CSC 288

Special Topics in Computer Science - Software Engineering

Career Possibilities

Computer Scientist · Computer Engineer · Software Engineer · Computing Science Educator · Information Technology Specialist · Computer Systems Analyst · Scientific Application Programmer · Computer Operations Manager · Computer Services Coordinator · Database Administrator · Computer Game Developer · Data Communications Manager · Data Processing Manager · Network Administrator · Programmer Analyst · Software Requirements Engineer · Software Architect · Software Quality Assurance Specialist · Software Development Project Manager · Systems Manager · Systems Programmer · Computer Graphics Specialist · Knowledge Engineer · Systems Engineer · Security Specialist · Information Assurance Specialist · Information Security Officer · Data Mining Analyst · Web/eCommerce Developer

Faculty

Behnam Arad, Robert Buckley, Senad Busovaca, Weide Chang, John Clevenger, Nikrouz Faroughi, Isaac Ghansah, V. Scott Gordon, Ying Jin, Ted Krovetz, Kwai-Ting Lan, Mary Jane Lee, Meiliu Lu, William Mitchell, Jinsong Ouyang, Anne-Louise Radimsky, Ahmed Salem, Chung-E Wang, Cui Zhang, Du Zhang

Contact Information

Du Zhang, Department Chair
Vacant, Administrative Support Coordinator
Riverside Hall 3018
(916) 278-6834
www.ecs.csus.edu/csc



COMPLETE COURSE LISTING | RETURN TO TOP |