COMPUTER SCIENCE
College of Engineering and Computer Science
- COMPLETE COURSE LISTING
- BACHELOR OF SCIENCE
- MINOR
- MASTER OF SCIENCE
- CERTIFICATES
- ADVANCED CERTIFICATES
- CAREER POSSIBILITIES
- FACULTY
- CONTACT
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) |
Programming Concepts and Methodology I (CSC 10 or programming experience in a high-level programming language) |
|
(3) |
Programming Concepts and Methodology II (CSC 15) |
|
(3) |
Discrete Structures for Computer Science (MATH 29 and CSC 20; CSC 20 may be taken concurrently) |
|
(3) |
Introduction to Computer Architecture (CSC 15) |
|
(3) |
Introduction to Systems Programming in UNIX (CSC 20, CSC 35) |
B. Required Mathematics Courses (15-16 units)
(4) |
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) |
Calculus II (MATH 30 or appropriate high school based AP credit) |
|
(4) |
Introduction to Probability and Statistics (MATH 26A, MATH 30, or appropriate high school based AP credit) |
Select one of the following:
|
Calculus III (MATH 31) |
|
Differential Equations for Science and Engineering (MATH 31) |
||
Number Theory (MATH 31) |
||
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) |
General Physics: Mechanics (MATH 30, MATH 31 or equivalent certificated high school courses; MATH 31 may be taken concurrently) |
|
(4) |
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):
Basic Biological Concepts |
||
The Natural History of Plants (A college biology course or instructor permission) |
||
Plants and Civilization (BIO 10 or equivalent) |
||
Introduction to Neuroscience (PSYC 2, PSYC 101, physiology and chemistry background strongly recommended) |
||
General Chemistry I (High school chemistry and college algebra; sufficient performance on the college algebra diagnostic test, or equivalent) |
||
Modeling and Experimental Design (MATH 31, STAT 50, proficiency in a programming language) |
||
Introduction to Econometrics (ECON 1A, ECON 1B, ECON 140; ECON 100A or ECON 100B recommended) |
||
Introductory Circuit Analysis (MATH 45, PHYS 11C; either may be taken concurrently but not both) |
||
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 (34 units)
(3) |
Data Structures and Algorithm Analysis (CSC 20, CSC 28; CSC 28 may be taken concurrently) |
|
(3) |
Computer Software Engineering (CSC 130; may be taken concurrently) |
|
(3) |
Object-Oriented Computer Graphics Programming (CSC 130, CSC 131) |
|
(3) |
Database Management and File Organization (CSC 130) |
|
(3) |
Computing Theory and Programming Languages(CSC 28, CSC 35 and CSC 130) |
|
(4) |
||
(3) |
||
(3) |
Operating System Principles (CSC 60, CSC 137; or equivalents) |
|
(2) |
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) |
Senior Project: Part II (CSC 190) |
|
(3) |
Business and Computer Ethics |
(2) Select two units from the following:
(1) |
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) | Computer Science Seminar (Upper division or graduate status in CSC) |
|
(1-4) | Fieldwork in Computer Science (Instructor permission) |
|
1-12 | Professional Practice (Instructor permission) |
|
(1-3) | Co-curricular Activities in Computer Science |
|
(1-3) | Special Problems |
E. Electives (12 units)
In addition to the required lower-division and upper-division Computer Science courses, Computer Science majors must take four additional elective courses, totaling at least twelve (12) units. This requirement can be satisfied in one of two ways:
- by completing a concentration (described below), or
- by choosing 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.
Additional Requirements for Concentration
Certain combinations of courses give students a deeper understanding of specialized areas in Computer Science. Completion of any of the following course lists allows the student to receive a notation on their permanent record that they completed a certain concentration in the particular area of study. Each student can receive only one such notation. The Computer Science Department will try to offer on a regular basis all courses required for each concentration. Course cancellations and scheduling conflicts do sometimes occur, however, causing students difficulty in completing a concentration. In such situations, students may need to forgo completion of their concentration and receive a degree without any concentration notation.
Requirements - Game Engineering - Concentration
Total units required for concentration: 12
Courses in parentheses are prerequisites
This concentration 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) |
Advanced Computer Graphics (CSC 133) |
|
(3) |
Computer Game Architecture and Implementation (CSC 130, CSC 133, MATH 30, PHYS 11A ) |
|
(3) |
Intelligent Systems (MATH 31, STAT 50, CSC 130 and CSC 132 or CSC 135) |
(3) Select one of the following:
|
||
|
||
|
Operating System Pragmatics (CSC 139) |
|
|
Requirements - Information Assurance and Security - Concentration
Total units required for concentration: 12
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) |
||
(3) |
Computer Forensics Principles and Practices (CSC 138 or CPE 138) |
|
(3) |
Computer System Attacks and Countermeasures (CSC 138 or CPE 138) |
(3) Select one of the following:
|
Operating System Pragmatics (CSC 139) |
|
|
Software Requirements and Specification (CSC 131) |
|
|
Software Testing and Quality Assurance(CSC 131) |
Requirements - Software Engineering - Concentration
Total units required for concentration: 12
Courses in parentheses are prerequisites
The Software Engineering concentration is designed to focus on the principles of designing, building, testing and maintaining reliable, efficient, and secure software systems. The concentration 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) |
Software Requirements and Specification (CSC 131) |
|
(3) |
Software Engineering Project Management (CSC 131) |
|
(3) |
Software Testing and Quality Assurance(CSC 131) |
(3) Select one of the following:
|
Computer System Attacks and Countermeasures (CSC 138 or CPE 138) |
|
|
||
|
Advanced Database Management Systems (CSC 174) |
|
|
Requirements - Systems Software - Concentration
Total units required for concentration: 12
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.
Compiler Construction (CSC 135 or CSC 136; CSC 136 may be taken concurrently |
||
(3) |
Operating System Pragmatics (CSC 139) |
(6) Select two of the following:
|
Advanced Computer Organization (CSC 137 or CPE 166 and CPE 185) |
|
|
Modeling and Experimental Design (MATH 31, STAT 50; proficiency in a programming language) |
|
|
Computer System Attacks and Countermeasures (CSC 138 or CPE 138) |
|
|
Advanced Computer Graphics (CSC 133) |
|
|
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) |
Programming Concepts and Methodology I (CSC 10, or programming experience in a high-level programming language) |
|
(3) |
Programming Concepts and Methodology II (CSC 15) |
|
(3) |
Discrete Structures for Computer Science (MATH 29 and CSC 20; CSC 20 may be taken concurrently) |
|
(3) |
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) |
Introduction to Computer Science (Intermediate algebra) |
(3) Select one of the following:
Introduction to Internet Technologies (Basic computer literacy recommended) |
||
Self-Paced Introduction to Internet Technologies (Basic computer literacy recommended) |
||
Web Development with HTML/XHTML and Tools (CSC 8, or equivalent computer and Internet experience) |
(3) Select one of the following:
Programming Concepts and Methodology I (CSC 10 or programming experience in a high-level programming language) |
||
Visual Programming in BASIC (Intermediate Algebra) |
||
Introduction to C Programming |
Take the following courses:
(3) |
Internet Security (CSC 1 and CSC 8 or CSC 8S or CSC 80 or instructor permission) |
|
(3) |
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:
|
Introduction to Internet Technologies (Basic computer literacy recommended) |
|
|
Self-Paced Introduction to Internet Technologies (Basic computer literacy recommended) |
|
(3) |
Visual Programming in BASIC (Intermediate Algebra) |
|
(3) |
Web Development with HTML/XHTML and Tools (CSC 8 or equivalent computer and Internet experience) |
|
(3) |
Web Server Administration (CSC 80) |
|
(3) |
Client-Side Web Programming (CSC 22, CSC 80 or equivalents; or PCSC/CSC Major, CSC 60, CSC 130) |
|
(3) |
Web Database Applications (CSC 10 or CSC 22; CSC 80, or equivalent) |
|
(3) |
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) |
||
(3) |
Computer Forensics Principles and Practices (CSC 138 or CPE 138) |
|
(3) |
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, 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) |
Programming Language Principles (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Data Models for Database Management Systems (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Computer Systems Structure (Fully classified graduate status in Computer Science, Software Engineering or Computer Engineering) |
|
(3) |
Algorithms and Paradigms (Fully classified graduate status in Computer Science or Software Engineering) |
|
(1) |
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
Microprocessor Systems Architecture (CSC 205) |
||
Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273) |
||
Hierarchical Digital Design Methodology (CSC 205, CPE/EEE 64 or equivalent) |
||
Advanced Computer Architecture (CSC 205; fully classified graduate status in Computer Science or Software Engineering) |
Database Management Systems
Bioinformatics: Data Integration and Algorithms (CSC 130, STAT 50, and graduate status; BIO 10 recommended) |
||
Information Assurance and Security
Computer Security (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering) |
||
Cryptography Theory and Practice (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering) |
||
Computer Forensics (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering) |
||
Network Security (Fully classified graduate standing in Computer Science, Software Engineering, or Computer Engineering) |
Intelligent Systems
Knowledge-Based Systems (Fully classified graduate status in Computer Science or Software Engineering) |
||
|
Artificial Intelligence (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
|
|
Machine Learning (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
Networks and Communications
Computer Networks (Fully classified graduate status in Computer Science, Software Engineering, or a Computer Engineering) |
||
Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Advanced Data Communication Systems (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
Software Engineering
Software System Engineering (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131) |
||
|
Software Engineering Metrics (Fully classified graduate status in Computer Science or Software Engineering) |
|
Software Requirements Analysis and Design (Fully classified graduate status in Computer Science or Software Engineering) |
||
Advanced Software Engineering Project Management (Fully classified graduate status in Computer Science or Software Engineering) |
||
Software Verification and Validation (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131) |
||
Software Architecture (Fully classified graduate status in Computer Science or Software Engineering) |
||
Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering) |
||
Human-Computer Interface Design (Fully classified graduate status in Computer Science or Software Engineering) |
System Software
Advanced Operating System Principles and Design (CSC 205) |
||
Performance Modeling and Evaluation (Fully classified graduate status in Computer Science or Software Engineering) |
||
Computer Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
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:
- 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.)
- 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.
- 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:
Master's Thesis (CSC 209; advanced to candidacy) OR |
||
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) |
Software System Engineering (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131) |
|
(3) |
Software Engineering Metrics (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Software Requirements Analysis and Design (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Advanced Software Engineering Project Management (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Software Verification and Validation (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131) |
|
(3) |
Software Architecture (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering) |
|
(3) |
Human-Computer Interface Design (Fully classified graduate status in Computer Science or Software Engineering) |
B. Required Research Methodology (1 unit)
(1) |
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:
- 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.)
- 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.
- 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:
|
Master's Thesis (CSC 209; advanced to candidacy) OR |
|
|
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) |
Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273) |
|
(3) |
Advanced Computer Architecture (CSC 205 and fully classified graduate status in Computer Science or Software Engineering) |
(3)Select one of the following:
Microprocessor Systems Architecture (CSC 205) |
||
Performance Modeling and Evaluation (Fully classified graduate status in Computer Science or Software Engineering) |
||
Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Hierarchical Digital Design Methodology (CSC 205 or CPE 64 or equivalent) |
||
Special Topics in Computer Science - Computer Architecture |
Certificate in Computer Engineering (9 units)
(3) Select one of the following:
Microprocessor Systems Architecture (CSC 205) |
||
Advanced Computer Architecture (CSC 205 and fully classified graduate status in Computer Science or Software Engineering) |
||
(3) |
Select one of the following: |
|
Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273) |
||
Hierarchical Digital Design Methodology (CSC 205, CPE 64 or equivalent) |
(3) Select one of the following:
Operating System Pragmatics (CSC 139) |
||
Advanced Operating Systems Principles and Design (CSC 205) |
(3) |
Computer Networks (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
(6) Select two of the following:
Network Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Advanced Data Communication Systems (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Special Topics in Computer Science - Network Communications |
Certificate in Data Management Systems (9 units)
(9) Select three of the following:
Computer Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Special Topics in Computer Science - Database Management |
(3) |
||
(3) |
Machine Learning (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
Bioinformatics: Data Integration and Algorithms (CSC 130, STAT 50, and graduate status; BIO 10 recommended) |
||
Certificate in Information Assurance and Security (9
units)
(9) Select three of the following:
Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering) |
||
Computer Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Cryptography Theory and Practice (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Computer Forensics (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Network Security (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
(3) |
Artificial Intelligence (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
(6) Select two of the following:
Knowledge-Based Systems (Fully classified graduate status in Computer Science or Software Engineering) |
||
Machine Learning (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
Special Topics in Computer Science - Intelligent Systems |
Certificate in Software Engineering (9 units)
(9) Select three of the following:
|
Software System Engineering (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131) |
|
Software Engineering Metrics (Fully classified graduate status in Computer Science or Software Engineering) |
||
Software Requirements Analysis and Design (Fully classified graduate status in Computer Science or Software Engineering) |
||
Advanced Software Engineering Project Management (Fully classified graduate status in Computer Science or Software Engineering) |
||
Software Verification and Validation (Fully classified graduate status in Computer Science or Software Engineering; or Computer Engineering and CSC 131) |
||
Software Architecture (Fully classified graduate status in Computer Science or Software Engineering) |
||
Formal Methods in Secure Software Engineering (Fully classified graduate status in Computer Science or Software Engineering) |
||
Human Computer Interface Design (Fully classified graduate status in Computer Science or Software Engineering) |
||
Special Topics in Computer Science - Software Engineering |
(3) |
Advanced Operating Systems Principles and Design (CSC 205) |
(6) Select at least two of the following:
Performance Modeling and Evaluation (Fully classified graduate status in Computer Science or Software Engineering) |
||
Computer Security (Fully classified graduate status in Computer Science, Computer Engineering, or Software Engineering) |
||
Distributed Systems (CSC 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
||
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, 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, Martin Nicholes, Jinsong Ouyang, Anne-Louise Radimsky, 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