Skip to Content
University Catalog

COMPUTER SCIENCE

Students workink on systems

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 programs in conjunction with other units: 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: 81
Minimum total units required for BS: 123
Grade of "C-" or better required in all courses applied to the Computer Science major.
Note: Students graduating with a Bachelor of Science Computer Science will not be subject to the University’s Foreign Language Graduation Requirement. Students who change major may be subject to the University’s Foreign Language Graduation 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 (24 units)

(3)

MATH 26A

Calculus I for the Social and Life Sciences (MATH 11) OR

(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)

(3)

MATH 26B

Calculus II for the Social and Life Sciences (MATH 26A or appropriate high school based AP credit) OR

(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) OR

(2)

ENGR 115

Statistics For Engineers (MATH 31, may be taken concurrently)

(4)

PHYS 5A

General Physics: Mechanics, Heat, Sound (recently completed three years of high school algebra and geometry; and a college course in algebra and trigonometry (MATH 9 recommended) for those having an inadequate mathematics background) OR

(4)

PHYS 11A

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

In addition to the above science and math courses (minimum 14 units), students must choose elective courses to bring the total number of math and science units to a minimum of 24. Eligible courses are:

(3-4)

Any MATH or STAT course with calculus as a prerequisite

(5)

CHEM 1A

General Chemistry I (High school chemistry and college algebra; sufficient performance on the college algebra diagnostic test, or equivalent, or minimum grade of "C" in CHEM 4)

(4)

CHEM 1E

General Chemistry for Engineering (High school chemistry; MATH 30 or eligibility to take MATH 30 as evidenced by the calculus readiness diagnostic exam; passing score on a standardized Chemistry diagnostic exam given prior to each semester, or minimum grade of "C" in CHEM 4)

(3)

CSC 148

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

(3)

PHIL 160

Deductive Logic II (CSC 28 or PHIL 60 or instructor permission

(4)

PHYS 5B

General Physics: Light, Electricity and Magnetism, Modern Physics (PHYS 5A or instructor permission)

(4)

PHYS 11B

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

(4)

PHYS 11C

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

(3)

PHYS 106

Introduction to Modern Physics (MATH 31; PHYS 11A, PHYS 11B, PHYS 11C or PHYS 5A, PHYS 5B)

(3)

PHYS 162

Scientific Computing: Basic Methods (MATH 26A or MATH 30 and PHYS 5A, or MATH 30 and PHYS 11A, or MATH 105A taken concurrently)

(3)

PHYS 163

Scientific Computing: Modeling, Simulation, and Visualization (PHYS 162)

Note: To satisfy the requirement of CAC, the Computing Accredidation Commission of ABET, which accredits computer science programs, one or mor electives must be from MATH, STAT or PHIL (MATH 100 Recommended). Courses may not be selected with significantly overlapping topics. Students who select MATH 26A and MATH 26B for their calculus sequence must take STAT 50 and PHYS 5A. MATH 30, MATH 31, PHYS 11A and PHYS 11C are recommended for students considering a math or statistics minor. PHYS 5B, 11B or 11C; and PHYS 162 are recommended for students considering a scientific computing and simulation certificate and willing to take PHYS 163 as an additional course. If CSC 148 is chosen as an elective to meet the math and science requirements, it cannot be used for a computer science elective. An undergraduate handbook with further course selection advice is available at the department website.

C. Required Science Courses (33 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 133

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

(3)

CSC 134

Database Management and File Organization (CSC 130)

(3)

CSC 135

Computing Theory and Programming Languages(CSC 28, CSC 35 and CSC 130)

(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 80+; or 3-unit placement in ENGL 109M/W; or 4-unit placement in ENGL 109M/W and co-enrollment in ENGL 109X; or WPJ score 70/71 and co-enrollment in ENGL 109X; 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:

(1)

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)

(1)

CSC 194

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

(1-4)

CSC 195

Fieldwork in Computer Science (Instructor permission)

1-12

CSC 195A

Professional Practice (Instructor permission)

(1-3)

CSC 198

Co-curricular Activities in Computer Science

(1-3)

CSC 199

Special Problems

D. Electives (9 units)

In addition to the required lower-division and upper-division Computer Science courses, Computer Science majors must take additional elective courses, totaling at least nine (9) units, from undergraduate Computer Science courses numbered CSC 140 or above (excluding CSC 192, CSC 194, CSC 195, CSC 195A, CSC 198, CSC 199).

Course choices should be made with advisor consultation. With advance written approval from their advisor, the course instructor, and the Department Chair, students with a GPA of 3.0 or greater may take graduate courses as electives. In any case students must meet the prerequisite stated in the catalog prior to taking any elective course.

Academic Certificates

In adition to completing the requirements for the Bachelor of Sciences in Computer Science degree program, students enrolled in the major may also complete one of the (optional) 9-12 unit Academic Certificate programs. Each certificate includes 9 required units which can overlap with elective coursework taken to satisfy the major requirements, with some of the certificates requiring 3 additional units (1 additional course) beyond the degree requirements. Students interested in earning a certificate in addition to their degrees should meet with an academic advisor.

Requirements for Certificates

Certian combinations of courses gives students a deeper understanding of specialized areas in Computer Science. Completion of any of the following courselists entitles the student to receive a certificate indicating that they concentrated their elective study in the particular area. The Computer Science Department will try and offer on a regular basis.

Requirements - Cerificate - Cyber Defense and Operations (12 units)

Courses in parentheses are prerequisites

The Cyber Defense and Operations certificate includes the same courses as the Information Assurance and Security certificate, but additionaly requires advanced study in operating systems. An understanding of operating system pragmatics better prepares students for the technical work needed in defending and hardening network computer systems. Students will not be awarded the Information Assurance and Security certificate if they complete the requirements for the Cyber Defense and Operations certificate.

(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)

(3)

CSC /CPE 159

Operating System Pragmatics (CSC 139)

Requirements - Certificate - Game Engineering (12 units)

Courses in parentheses are prerequisites

This certificate is intended to give students an opportunity to explore the science and engineering of computer games, and to prepare students for careers in those fields of computing which utilize or are heavily impacted by advances in computer gaming. These include such areas as video and strategy game development, 3-D graphics, modeling and animation and their support tools, intelligent decision making, specialized user interface hardware, machine learning, and working in interdisciplinary teams.

(3)

CSC 155

Advanced Computer Graphics (CSC 133)

(3)

CSC 165

Computer Game Architecture and Implementation (CSC 130, CSC 133, MATH 30, PHYS 11A )

(3)

CSC 180

Intelligent Systems (MATH 31, STAT 50, CSC 130 and CSC 132 or CSC 135)

(3) Select one of the following:

 

CSC 126/ART 142

3D Computer Modeling (CSC 10 or ART 97)

 

CSC 127/ART 143

3D Computer Animation (ART 142 or CSC 126)

 

CSC /CPE 159

Operating System Pragmatics (CSC 139)

 

CSC 177

Data Warehousing and Data Mining (CSC 134 and STAT 50

Requirements - Certificate - Information Assurance and Security - (9 units)

Courses in parentheses are prerequisites

The Information Assurance and Security concentration is designed to help students advance their technical skills to prepare for a leadership role in planning, managing, certifying and accrediting a security and incident response plan for their organization - including methods to combat threats to organization information resources, which in today's world is becoming top priority for many businesses since most information is in electronic form.

(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)

Requirements - certificate - Software Engineering (12 units)

Courses in parentheses are prerequisites

The Software Engineering certificate is designed to focus on the principles of designing, building, testing and maintaining reliable, efficient, and secure software systems. The certificate is designed to emphasize the knowledge, competencies, and skills needed to produce competent graduates to begin a professional career in the field of software engineering, or pursue graduate programs.

(3)

CSC 170

Software Requirements and Specification (CSC 131)

(3)

CSC 171

Software Engineering Project Management (CSC 131)

(3)

CSC 179

Software Testing and Quality Assurance(CSC 131)

(3) Select one of the following:

 

CSC 154

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

 

CSC 174

Database Management Systems (CSC 131 and CSC 134)

 

CSC 176

Advanced Database Management Systems (CSC 174)

 

CSC 177

Data Warehousing and Data Mining (CSC 134 and STAT 50

Requirements - Systems Software - Concentration

Courses in parentheses are prerequisites

The Systems Software provides necessary background to participate in the development of low-level software for computer hardware and the software infrastructure needed by application developers. Understanding how such software operates makes students valuable additions to interdisciplinary teams where exploiting features of systems tools is important. The concentration will also prepare students to design, implement, and be effective users of systems tools such as language processors, utilities, and diagnostic tools.

CSC 151

Compiler Construction (CSC 135 or CSC 136; CSC 136 may be taken concurrently

(3)

CSC /CPE 159

Operating System Pragmatics (CSC 139)

(6) Select two of the following:

 

CSC /CPE 142

Advanced Computer Organization (CSC 137 or CPE 166 and CPE 185)

 

CSC 148

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

 

CSC 154

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

 

CSC 155

Advanced Computer Graphics (CSC 133)

 

CSC 165

Computer Game Architecture and Implementation (CSC 130, CSC 133, MATH 30, PHYS 11A )

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: 15
Grade of "C-" or better required in all courses applied to the Computer Science minor.

Courses in parentheses are prerequisites.

Required Courses

(3)

CSC 1

Introduction to Computer Science (Intermediate algebra)

(3) Select one of the following:

CSC 8

Introduction to Internet Technologies (Basic computer literacy recommended)

CSC 8S

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

CSC 80

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

(3) Select one of the following:

CSC 15

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

CSC 22

Visual Programming in BASIC (Intermediate Algebra)

CSC 25

Introduction to C Programming

Take the following courses:

(3)

CSC 115

Internet Security (CSC 1 and CSC 8 or CSC 8S or CSC 80 or instructor permission)

(3)

CSC 116

Cyber Forensics (CSC 1 and CSC 8 or CSC 8S or CSC 80 or instructor permission)

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)

 

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

Applicants must complete a university application and a separate departmental application by the posted application deadline dates for the term applying. For more admissions information and application deadlines, please visit http://www.csus.edu/gradstudies/:

  • 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.

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 units, including at least 21 units of 200-level and 500-level courses
Minimum GPA: 3.0
Minimum grade: C

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 80+; or 3-unit placement in ENGL 109M/W; or 4-unit placement in ENGL 109M/W and co-enrollment in ENGL 109X; or WPJ score 70/71 and co-enrollment in ENGL 109X; 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 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 units, including a software engineering project or thesis
Minimum GPA: 3.0
Minimum grade: C

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 Methodology (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 80+; or 3-unit placement in ENGL 109M/W; or 4-unit placement in ENGL 109M/W and co-enrollment in ENGL 109X; or WPJ score 70/71 and co-enrollment in ENGL 109X; 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 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 Computer Architecture (9 units)

(3)

CSC 242

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

(3)

CSC/EEE 280

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

(3)Select one of the following:

CSC 237

Microprocessor Systems Architecture (CSC 205)

CSC 245

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

CSC 258

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

CSC/EEE 273

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

CSC 288

Special Topics in Computer Science - Computer Architecture

Certificate in Computer Engineering (9 units)

(3) Select one of the following:

CSC 237

Microprocessor Systems Architecture (CSC 205)

CSC/EEE 280

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

EEE 285

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

(3) Select one of the following:

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 64 or equivalent)

(3) Select one of the following:

CSC 159/CPE 159

Operating System Pragmatics (CSC 139)

CSC 239

Advanced Operating Systems Principles and Design (CSC 205)

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 Data Mining (9 units)

(3)

CSC 177

Data Warehousing and Data Mining (CSC 134 and STAT 50)

(3)

CSC 219

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

Select one of the following:

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)

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 · Data Processing Application Programmer · 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 · Cyber Security Specialist · Information Assurance Specialist · Information Security Officer · Data Mining Analyst · Web/eCommerce Developer · IT Business Analyst · IT Infrastructure Specialist · Technical Control Specialist · Technical Representative

Faculty

Behnam Arad, 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, Ahmed Salem, Chung-E Wang, Cui Zhang, Du Zhang

Contact Information

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



COMPLETE COURSE LISTING | RETURN TO TOP |