COMPUTER SCIENCE
College of Engineering and Computer Science
- COMPLETE COURSE LISTING
- BACHELOR OF SCIENCE
- MINOR
- BS CERTIFICATES
- MASTER OF SCIENCE
- 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. (http://www.abet.org/), providing majors with a sound educational base in Computer Science. The Minor in Computer Science and the Minor in Information Security and Computer Forensics are available for students majoring in disciplines other than Computer Engineering.
The Department offers an MS in Computer Science and an MS in Software Engineering.
The Department also 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, mobile and cloud computing, 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
Three to five years after graduation, a graduate of the B.S. in computer science should have:
- Made contributions to the development, maintenance, and support of real world computing systems.
- Taken initiative and assumed responsibilities as an effective member of project teams.
- Worked independently and functioned effectively in an environment with incomplete information.
- Progressed in the computing field, engaged in professional development, and/or pursued an advanced degree.
- Produced quality technical and non-technical documents and presentations for a variety of audiences.
- Adhered to the ethical standards of the profession and understood the implications of his/her professional activities.
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 26A/ 30 and MATH 26B/ 31.
Course Repeat Policy: Please see University Repeat Policy for more information.
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: 120
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) |
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 26A or 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 and Science Courses (24 units)
(3) |
Calculus I for the Social and Life Sciences (MATH 11) OR |
|
(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) |
|
(3) |
Calculus II for the Social and Life Sciences (MATH 26A or appropriate high school based AP credit) OR |
|
(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) OR |
|
(2) |
Statistics For Engineers (MATH 31, may be taken concurrently) |
|
(4) |
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) |
General Physics: Mechanics (MATH 30, MATH 31; or equivalent certificated high school courses; MATH 31 may be taken concurrently) |
In addition to the above math and science 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) |
||
(5) |
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) | 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) |
Modeling and Experimental Design (MATH 26B or MATH 31, STAT 50 or ENGR 115 and proficiency in a programming language) |
|
(3) |
Deductive Logic II (CSC 28 or PHIL 60 or instructor permission |
|
(4) |
General Physics: Light, Electricity and Magnetism, Modern Physics (PHYS 5A or instructor permission) |
|
(4) |
||
(4) |
General Physics: Electricity and Magnetism, Modern Physics (MATH 31, PHYS 11A) |
|
(3) |
Introduction to Modern Physics (MATH 31; PHYS 11A, PHYS 11B, PHYS 11C or PHYS 5A, PHYS 5B) |
|
(3) |
Scientific Computing: Basic Methods (MATH 26A or MATH 30 and PHYS 5A, or MATH 30 and PHYS 11A, or MATH 105A taken concurrently) |
|
(3) |
Scientific Computing: Modeling, Simulation, and Visualization (PHYS 162) |
Note: To satisfy the requirement of CAC, the Computing Accreditation Commission of ABET, which accredits computer science programs, one or more 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 graduate school or an engineering major. MATH 30, MATH 31 and STAT 50 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 Upper Division Courses (33 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 Systems (CSC 130) |
|
(3) |
Computing Theory and Programming Languages(CSC 28, CSC 35 and CSC 130) |
|
(3) |
||
(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 70+,or at least 70 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) |
Senior Project: Part II (CSC 190) |
|
(3) |
Business and Computer Ethics |
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 |
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 addition 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
Certain combinations of courses gives students a deeper understanding of specialized areas in Computer Science. Completion of any of the following course lists 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 all courses required for each certificate, but course cancellations and scheduling conflicts do sometimes occur causing students difficulty in completing their desired course study. In such situations, students may need to forgo completion of their certificate. Printed certificates must be requested directly from the Computer Science Department office after a student graduates.
Requirements - Certificate - 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 additional requires advanced study in operating systems. An understanding of operating system pragmatics better prepares students for the technical work needed in defending and hardening networked 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) |
||
(3) |
Computer Forensics Principles and Practices (CSC 138 or CPE 138) |
|
(3) |
Computer System Attacks and Countermeasures (CSC 138 or CPE 138) |
|
(3) |
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) |
Advanced Computer Graphics (CSC 133) |
|
(3) |
Computer Game Architecture and Implementation (MATH 26A or MATH 30; PHYS 5A or PHYS 11A; CSC 130 and CSC 133) |
|
(3) |
Intelligent Systems (MATH 26B or MATH 31; STAT 50 or ENGR 115 ; CSC 130 and CSC 135) |
Select one of the following (3 units):
|
||
|
||
|
Operating System Pragmatics (CSC 139) |
|
|
Data Warehousing and Data Mining ( STAT 50 or ENGR 115; and CSC 134 ) |
Requirements - Certificate - Information Assurance and Security - (9 units)
Courses in parentheses are prerequisites
The Information Assurance and Security certificate 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) |
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) |
Software Requirements and Specification (CSC 131) |
|
(3) |
Software Engineering Project Management (CSC 131) |
|
(3) |
Software Testing and Quality Assurance(CSC 131) |
Select one of the following (3 units):
|
Computer System Attacks and Countermeasures (CSC 138 or CPE 138) |
|
|
||
|
Database Architecture and Optimization (CSC 174) |
|
|
Data Warehousing and Data Mining ( STAT 50 or ENGR 115; and CSC 134 ) |
Requirements - Certificate - Systems Software (12 units)
Courses in parentheses are prerequisites
The Systems Software Certificate 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 certificate will also prepare students to design, implement, and be effective users of systems tools such as language processors, utilities, and diagnostic tools.
(3) |
Compiler Construction (CSC 135) |
|
(3) |
Operating System Pragmatics (CSC 139) |
Select two of the following (6 units):
|
Advanced Computer Organization (CSC 137 or CPE 166 and CPE 185) |
|
|
Modeling and Experimental Design (MATH 26B or MATH 31, STAT 50 or ENGR 115 and 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 (MATH 26A or MATH 30; PHYS 5A or PHYS 11A; CSC 130 and CSC 133) |
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 26A or 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) |
Select one of the following (3 units):
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) |
Select one of the following (3 units):
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) |
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) |
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 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) |
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)
Select one of the following (3 units):
Microprocessor Systems Architecture (CSC 205) |
||
Advanced Computer Architecture (CSC 205 and fully classified graduate status in Computer Science or Software Engineering) |
||
Select one of the following (3 units):
Computer-Aided Systems Design and Verification (CSC 205, CSC 273, or EEE 273) |
||
Hierarchical Digital Design Methodology (CSC 205, CPE 64 or equivalent) |
Select one of the following (3 units):
Operating System Pragmatics (CSC 139) |
||
Advanced Operating Systems Principles and Design (CSC 205) |
Certificate in Computer Networks and Communications (9 units)
(3) |
Computer Networks (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
Select two of the following (6 units):
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)
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 |
Certificate in Data Mining (9 units)
|
Data Warehousing and Data Mining ( STAT 50 or ENGR 115 and CSC 134 ) |
|
(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)
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) |
Certificate in Intelligent Systems (9 units)
(3) |
Artificial Intelligence (Fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering) |
Select two of the following (6 units):
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)
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 |
Certificate in Systems Software (9 units)
(3) |
Advanced Operating Systems Principles and Design (CSC 205) |
Select at least two of the following (6 units):
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, Weide Chang, Jun Dai, Nikrouz Faroughi, Isaac Ghansah, V. Scott Gordon, Ying Jin, Ted Krovetz, Kwai-Ting Lan, Meiliu Lu, Pinar Muyan-Ozcelik, Jinsong Ouyang, Ahmed Salem, Ghassan Shobaki, Chung-E Wang, Cui Zhang
Contact Information
Cui Zhang, Department Chair
Veronica Pruitt, Administrative Support Coordinator
Riverside Hall 3018
(916) 278-6834
www.ecs.csus.edu/csc