With the approval of an academic adviser, students may develop a track based on their career goals or specific academic interests or specific themes. A custom track consists of 15 units of upper-division Computer Science or related courses. At least nine units must be 400-level Computer Science courses with no more than three units selected from courses numbered 490-499. In addition to courses already listed in the other tracks, students may also include the following courses:
Computer Sci 303 Multimedia Concepts (3)
Computer Sci 322L Introduction to Computer-Aided Design (3)
Computer Sci 376 Client/Server Systems with Java (3)
Computer Sci 433 Data Security and Encryption Techniques (3)
Computer Sci 459 Micro-Computer Software Systems (3)
Computer Sci 483 Data Mining and Pattern Recognition (3)
Computer Sci 485 Computational Bioinformatics (3)
Computer Sci 491T Variable Topics in Computer Science (3)
Computer Sci 495 Internship in Computer Science (1–3)
Computer Sci 499 Independent Study (1–3 )
Mathematics 150A,B Calculus (4,4)
Mathematics 270A,B Mathematical Structures (3,3)
Mathematics 338 Statistics Applied to Natural Sciences (4)
Physical Science (8 units)
One of the following combinations:
Physics 225 Fundamental Physics: Mechanics (3)
Physics 225L Fundamental Physics: Laboratory (1)
Physics 226 Fundamental Physics: Electricity and Magnetism (3)
Physics 226L Fundamental Physics: Laboratory (1)
OR Chemistry 120A General Chemistry (5)
Chemistry 125 General Chemistry for Engineers (3)
OR Geological Sci 101 Physical Geology (3)
Geological Sci 101L Physical Geology Laboratory (1)
Geological Sci 201 and 201L Earth History and Laboratory (4)
Biology 101 Elements of Biology (3)
Biology 101L Elements of Biology Laboratory (1)

A minor in Computer Science requires at least 15 units, including the following required courses:
Computer Sci 120 Introduction to Programming (3)
Computer Sci 121 Programming Concepts (3)
Computer Sci 131 Data Structures Concepts (3)
Computer Sci 313 The Computer Impact (3)
Three units of adviser-approved upper-division Computer Science.
Because of high unit requirements for a major in Computer Science, there is a six-unit exemption in General Education. Students are strongly urged to consult with an adviser in the Academic Advising Center, UH-123 to help develop their General Education program.
Students must maintain at least a 2.0 average in all college-level units attempted, in all units attempted at CSUF, and in all units attempted in the major.
A grade of “C-“ (1.7) or higher is required in all courses applied to the core. Exception: up to six units of credit with grades in the range “D-” (0.7) through “D+” (1.3) may be earned in elective track, mathematics and science courses only.
Admission to Graduate Standing: Conditionally Classified
A bachelor’s degree from an accredited institution with a grade-point average of at least 2.5 in the last 60 semester units attempted is required. Any deficiencies must be made up and will require six or more units of adviser-approved coursework with at least a 3.0 average in addition to those required for the degree.
The deadlines for completing online applications are March 1 for the fall semester and Oct. 1 for the spring semester (see http://www.csumentor.edu). Mailed applications need to be postmarked by the same deadlines. However, deadlines may be changed based upon enrollment projections.
Achievement of this status requires the following:
Talented professional computer scientists have traditionally come from a diversity of undergraduate preparations. The listed courses have been carefully selected to provide an adequate basis for graduate work, while not unfairly precluding admission of persons without a bachelor’s degree in computer science. It should be noted, however, that each of these courses has prerequisites and the student without preparation in a closely related degree may have considerable work to complete beyond the courses listed here. Reference should be made to the catalog descriptions for prerequisites of each course deficiency.
Students with knowledge equivalent to any or all of these prerequisite courses are encouraged to satisfy such prerequisites by advanced placement examinations. Consult a Computer Science graduate adviser for further information.
Prior to admission to classified graduate standing in Computer Science, the student with the aid of a Computer Science graduate adviser shall prepare and submit for approval by the Computer Science Department graduate committee a formal study plan consisting of a minimum of 30 units of 400-level and graduate coursework.
This shall include Computer Science 440, 462, 589, 597 or 598; one of 541, 542, 543, 544, 545, 546, 547 or 548; and 15 units of electives (nine units must be at the 500 level). At least 15 units shall represent courses offered by the Department of Computer Science. Courses offered by other disciplines, not listed here, and related to the student’s objectives in Computer Science may be approved by petition to the Department of Computer Science.
All coursework in the study plan must be completed with a GPA of at least 3.0.
Graduate Student Advisement
The graduate program adviser provides overall supervision of the graduate program. The individual student chooses an adviser from the full-time faculty of the Computer Science Department on the basis of the student’s particular interests and objectives.
| CPSC 103 Introduction to Personal Computer Applications |
| Description: Introduction to use and application of personal computers: word processing, spreadsheets, database systems, e-mail systems and World Wide Web. Evaluation of personal computers and software. (2 hours lecture, 2 hours laboratory) |
Units: (3)
|
| CPSC 120 Introduction to Programming |
| Description: Corequisite: Math 125. Introduction to the concepts underlying all computer programming: design and execution of programs; sequential nature of programs; use of assignment, control, and input/output statements to accomplish desired tasks; design and use of functions. Structured and object-oriented methodologies. (1.5 hours lecture, 3.0 hours laboratory) |
Units: (3)
|
| CPSC 121 Programming Concepts |
| Description: Prerequisite: Computer Sci 120 or passing score on Computer Science Placement Exam. Introduction to programming of digital computers; subroutines, functions and structure of algorithms; elementary input/output; arrays; strings and data types; documentation. (2 hours lecture, 2 hours laboratory) |
Units: (3)
|
| CPSC 131 Data Structures Concepts |
| Description: Prerequisites: Computer Sci 121 or sufficient score on the Computer Science Placement Exam, high school computer applications, and three years high school mathematics including trigonometry. Data structures: linked lists, stacks, queues, arrays, sequential text files, text formatting. |
Units: (3)
|
| CPSC 223H Visual BASIC Programming |
| Description: Prerequisite: Computer Sci 131. Elements of Visual BASIC, forms and controls, properties, mouse events, multiple-document interface, processing files, accessing databases, dynamic data exchange, object linking and embedding. (2 hours lecture, 2 hours laboratory) |
Units: (3)
|
| CPSC 223J Java Programming |
| Description: Prerequisite: Computer Sci 131. Characteristics of Java: portable, robust, secure, object-oriented, high performance; using the Java environment; server administration; types, expressions, and control flow; classes, interfaces, and packages; threads; exceptions; class libraries; Java for the Internet; tools, the Java Virtual machine. (2 hours lecture, 2 hours lab per week) |
Units: (3)
|
| CPSC 223N C# Programming |
| Description: Prerequisite: Computer Sci 131. Characteristics of C#, object-oriented design concepts, control structures, methods, arrays, classes, objects, inheritance, polymorphism, exception handling, graphical user interfaces, multithreading, characters, strings, files, streams. Rudiments of the Unified Modeling Language. Software development assignments. (2 hours lecture, 2 hours laboratory) |
Units: (3)
|
| CPSC 240 Computer Organization and Assembly Language |
| Description: Prerequisites: Computer Sci 131 and either Math 270A or 280. Digital logic and architecture of a computer system, machine level representation of data, memory system organization, structure of low-level computer languages; machine, assembly and macro language programming; principles of assembler operation, input-output programming, interrupt-exception handling. Laboratory programming assignments. (2 hours lecture, 2 hours laboratory) |
Units: (3)
|
| CPSC 253U Workshop in UNIX |
| Description: Prerequisite: Computer Sci 121 or General Engineering 205. Workshop in the use of the UNIX operating system. Offered Credit/No Credit only. (2 hours activity) |
Units: (1)
|
| CPSC 254 UNIX and Open Source System |
| Description: Prerequisite: Computer Sci 131. UNIX operating systems, various open source applications and systems, open source programming languages and open source software development techniques. |
Units: (3)
|
| CPSC 301 Programming Lab Practicum |
| Description: Prerequisites: Computer Sci 131 and 253U (or 254). Intensive programming covering concepts learned in lower-division courses. Procedural and object oriented design, documentation, arrays, classes, file input/output, recursion, pointers, dynamic variables, data and file structures. |
Units: (2)
|
| CPSC 303 Multimedia Concepts |
| Description: Prerequisites: Computer Sci 121 and completion of the General Education (G.E.) critical thinking requirement. Components and issues associated with multimedia technology, applications of multimedia and its evolution. Laboratory activities include developing a multimedia application using a PC-based authoring tool. (2 hours lecture, 2 hours laboratory) |
Units: (3)
|
| CPSC 311 Technical Writing for Computer Science |
| Description: Prerequisite: English 101. Corequisite: Computer Sci 301. Practice in developing documentation skills as used in the computer field. Topics include proposals, feasibility studies, user guides and manuals, business communication and technical presentation. Case studies in professional ethics. Written and oral reports required. |
Units: (3)
|
| CPSC 313 The Computer Impact |
| Description: Prerequisites: upper-division standing and one course from G.E. Category III.A.1. Effect of computer use on individuals and organizations. Side effects of innovative technology and the resulting changes to organizations, social institutions, and human perceptions of events. Personal responsibility, legal ramifications and educational implications. Hands-on use of e-mail and the World Wide Web. |
Units: (3)
|
| CPSC 315 Social and Ethical Issues in Computing |
| Description: Prerequisite: Computer Sci 311. Relevant issues that responsible professionals will face in a complex technological society. Professional ethics, computer control, piracy, encryption, benefits and downside of computers, privacy and computer crimes. Written and oral reports required. |
Units: (1)
|
| CPSC 322L Introduction to Computer Aided Design |
| Description: (Same as Mechanical Engineering 322L) |
Units: (3)
|
| CPSC 323 Programming Languages and Translation |
| Description: Prerequisites: Examination in Programming Proficiency. Basic concepts of programming languages and principles of translation. Topics include history of programming languages, various programming paradigms, language design issues and criteria, development of practical translators for modern programming languages. |
Units: (3)
|
| CPSC 332 File Structures and Database Systems |
| Description: Prerequisite: Computer Sci 131. Fundamental theories and design of database systems, the Structured Query Language (SQL), basic concepts and techniques of data organization in secondary storage. Topics include introduction to database systems, ER model, relational model, index structures, and hashing techniques. |
Units: (3)
|
| CPSC 335 Problem Solving Strategies |
| Description: Prerequisites: Examination in Programming Proficiency, Math 270B and 338. Complexity classes, including undecidable and NP-complete problems. Problem solving strategies applied to parallel and distributed processing, numerical computation, and artificial intelligence. Greedy methods, divide-and-conquer, dynamic programming, approximation and search methods. |
Units: (3)
|
| CPSC 351 Operating Systems Concepts |
| Description: Corequisite: Examination in Programming Proficiency or Computer Science 301. Resource management, memory organization, input/output, control process synchronization and other concepts as related to the objectives of multi-user operating systems. |
Units: (3)
|
| CPSC 362 Foundations of Software Engineering |
| Description: Prerequisites: Computer Sci 311 and Examination in Programming Proficiency. Basic concepts, principles, methods, techniques and practices of software engineering. All aspects of the software engineering (CASE) tools are used. |
Units: (3)
|
| CPSC 376 Client/Server Systems with Java |
| Description: Prerequisites: Computer Sci 223J and 351. Concepts and architectures of client/server systems using Java. Techniques for building client/server systems, multi-threading and network programming. |
Units: (3)
|
| CPSC 386 Introduction to Game Design and Production |
| Description: Prerequisite: Computer Sci 131. Current and future technologies and market trends in game design and production. Game technologies, basic building tools for games and the process of game design, development and production. |
Units: (3)
|
| CPSC 431 Database Systems |
| Description: Prerequisites: Computer Sci 332 and Examination in Programming Proficiency. Database design and applications, database programming using SQL and other languages, query optimization, transaction management. |
Units: (3)
|
| CPSC 433 Data Security and Encryption Techniques |
| Description: Prerequisites: Computer Sci 311, 351 and Math 270B. System security and encryption. Current issues in security, encryption and privacy of computer based systems. |
Units: (3)
|
| CPSC 440 Computer System Architecture |
| Description: Prerequisite: Computer Sci 240. Computer performance, price/performance, instruction set design and examples. Processor design, pipelining, memory hierarchy design and input/output subsystems. |
Units: (3)
|
| CPSC 451 Advanced Operating Systems |
| Description: Prerequisite: Computer Sci 351. Internal structures of a modern operating system. Specific topics include processes, process communication, file systems, networking, and the I/O system. There will be several programming assignments which will utilize calls and other low-level interfaces. |
Units: (3)
|
| CPSC 459 Micro-Computer Software Systems |
| Description: Prerequisite: Computer Sci 351. Design and implementation of software. Analysis of a micro-computer operating system and working on a team to implement a significant programming assignment. |
Units: (3)
|
| CPSC 462 Software Design |
| Description: Prerequisite: Computer Sci 362. Concepts of software modeling, software process and some tools. Object-oriented analysis and design and Unified process. Some computer-aided software engineering (CASE) tools will be recommended to use for doing homework assignments. |
Units: (3)
|
| CPSC 463 Software Testing |
| Description: Prerequisite: Computer Sci 362. Software testing techniques, reporting problems effectively and planning testing projects. Students apply what they learned throughout the course to a sample application that is either commercially available or under development. |
Units: (3)
|
| CPSC 464 Software Architecture |
| Description: Prerequisite: Computer Science 362. Basic principles and practices of software design and architecture. High-level design, software architecture, documenting software architecture, software and architecture evaluation, software product lines, and some considerations beyond software architecture. |
Units: (3)
|
| CPSC 466 Software Process |
| Description: Prerequisite: Computer Sci 362. Practical guidance for improving the software development and maintenance process. How to establish, maintain and improve software processes. Exposure to some common process models, such as CMM, CMMI, PSP and TSP. |
Units: (3)
|
| CPSC 471 Computer Communications |
| Description: Prerequisite: Computer Sci 351. Introduction to digital data communications. Terminology, networks and their components, common-carrier services, telecommunication facilities, terminals, error control, multiplexing and concentration techniques. |
Units: (3)
|
| CPSC 473 Web Programming and Data Management |
| Description: Prerequisite: Computer Sci 332. Various techniques for developing Web-based database applications using software engineering methodology. Introduce concept and architecture of Web servers, Web database design techniques, client/server side programming, and Web applications tools and techniques. |
Units: (3)
|
| CPSC 474 Distributed Computing Using Web Service and .NET Remoting |
| Description: Prerequisite: Computer Sci 473. Concepts of distributed computing and Web services, the applications of XML and Web services, distributed applications development techniques with Web services and .NET Remoting. |
Units: (3)
|
| CPSC 476 Java Enterprise Application Development |
| Description: Prerequisites: Computer Sci 223J and 351. Concepts and architecture of the J2EE platform, component technologies, platform roles, platform services, services technologies, communication technologies, Enterprise Java Beans (EJBs) and Java enterprise application development using Web logic or Web sphere. |
Units: (3)
|
| CPSC 481 Artificial Intelligence |
| Description: Prerequisite: Computer Sci 335. Use of computers to simulate human intelligence. Topics include production systems, pattern recognition, problem solving, searching game trees, knowledge representation and logical reasoning. Programming in AI environments. |
Units: (3)
|
| CPSC 483 Data Mining and Pattern Recognition |
| Description: Prerequisite: Computer Sci 335. Classification techniques, discriminant functions, training algorithms, potential function theory, supervised and unsupervised learning, feature selection, clustering techniques, multidimensional rotations and rank ordering relations. |
Units: (3)
|
| CPSC 484 Principles of Computer Graphics |
| Description: Prerequisites: Examination in Programming Proficiency and Math 150B and 270B. Examination and analysis of computer graphics; software structures, display processor organization, graphical input/output devices, display files. Algorithmic techniques for clipping, windowing, character generation and viewpoint transformation. |
Units: (3)
|
| CPSC 485 Computational Bioinformatics |
| Description: Prerequisites: upper-division standing, Biology 101 and Computer Sci 131. Algorithmic approaches to biological problems. Specific topics include motif finding, genome rearrangement, DNA sequence comparison, sequence alignment, DNA sequencing, repeat finding and gene expression analysis. |
Units: (3)
|
| CPSC 486 Game Programming |
| Description: Prerequisite: Computer Sci 386; corequisite, Computer Sci 484. Principles of game programming (2D game development techniques) and multimedia entertainment techniques (sound, animation, etc.). |
Units: (3)
|
| CPSC 487 Advanced Game Programming |
| Description: Prerequisite: Computer Sci 486. Building on the techniques learned from the previous game development course (2D Game Development, sound, animation), students learn more advanced game programming techniques (3D Game Development, real-time rendering, physics simulation). |
Units: (3)
|
| CPSC 489 Game and Development Project |
| Description: Prerequisite: Computer Sci 487; corequisite: Computer Sci 481. Develop realistic games based on the theories and techniques learned from the previous classes. Work independently (or by teams). Students will present and demonstrate their work regularly. |
Units: (3)
|
| CPSC 491T Variable Topics in Computer Science |
| Description: Prerequisites: junior or senior standing and consent of instructor. Lectures and/or workshop covering various current Computer Science topics. Course may be repeated for up to 3 units. Course topics may be taken only once. |
Units: (1-3)
|
| CPSC 495 Internship in Computer Science |
| Description: Prerequisites: Computer Science or related major and consent of instructor. Practical experience relevant to computer science in government or private agencies. Written and oral reports required. |
Units: (1-3)
|
| CPSC 499 Independent Study |
| Description: Prerequisite: approval by the computer science chair. Special topic in Computer Science, selected in consultation with and completed under the supervision of instructor. |
Units: (1-3)
|
| CPSC 531 Advanced Database Management |
| Description: Prerequisite: Computer Sci 431. Implementation techniques for query analysis, data allocation, concurrency control, data structures, and distributed databases. New database models and recent developments in database technology. Student projects directed to specific design problems. |
Units: (3)
|
| CPSC 541 Systems and Software Standards and Requirements |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. SESC framework and the IEEE Software Engineering Standards. Covers establishing the following standards: Software Life Cycle Processes, Work Product Standards, Process Standards, Requirement Analysis and Management and System Integration. Framework of CMMI introduced, and a number of practical lessons discussed. |
Units: (3)
|
| CPSC 542 Software Verification and Validation |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. How to ensure that a high quality software product is developed. Theory and practice of software verification and validation (V&V), such as Software integrity levels, Minimum V&V tasks for each software integrity level, walkthroughs, inspections and Cleanroom. Software testing topics: white- and black-box testing, boundary value analysis, equivalence class partitioning, unit testing, functional testing and how to create test plans. |
Units: (3)
|
| CPSC 543 Software Maintenance |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. Theory and practice of maintaining large-scale software and how to construct maintainable software. Maintenance framework, along with maintenance process, process management and maintenance measures. Topics include fundamentals of software change, implications of software change, maintenance process models, program understanding, reusability for maintenance, reverse engineering, maintenance testing, software configuration management and tools in maintenance. |
Units: (3)
|
| CPSC 544 Advanced Software Process |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. Advanced guidance for defining and improving the software development process. Concepts of software maturity framework, principles of process improvement and software process assessment. Current topics such as CMMI and SCAMPI. |
Units: (3)
|
| CPSC 545 Software Design and Architecture |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. Advanced software design and architecture principles focusing a software engineering approach to the development process. Topics include architecture business cycle, quality attributes, attribute-driven design method, architectural styles, design patterns, software product lines and component-based design. |
Units: (3)
|
| CPSC 546 Modern Software Management |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. Modern project management methodologies and techniques. Software development process. Planning, estimating, organizing, directing, monitoring, controlling software projects and managing risks. Other related software management issues, such as infrastructure, quality software development, project and product metrics, and external factors. |
Units: (3)
|
| CPSC 547 Software Measurement |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. Current software measurement practices. Topics include: how to establish an effective software metrics program in a software organization; how to measure software product, project and process; how to apply Statistical Process Control and other statistical techniques in software development process. High maturity concepts defined in CMMI model will be discussed. Stresses a practitioner-based approach. |
Units: (3)
|
| CPSC 548 Professional, Ethical and Legal Issues for Software Engineers |
| Description: Prerequisite: Computer Sci 362 or equivalent work experience. Professional, legal and ethical issues pertaining to software engineering. Topics include professional codes of ethics, intellectual property laws, computer privacy and human-computer interaction. Relevant regulatory documents and their applications. |
Units: (3)
|
| CPSC 551 Operating Systems Design |
| Description: Prerequisite: Computer Sci 351. Design and evaluation techniques for controlling automatic resource allocation, providing efficient programming environments and appropriate user access to the system, and sharing the problem solving facilities. |
Units: (3)
|
| CPSC 558 Advanced Computer Networking |
| Description: Prerequisite: Computer Sci 471. System-oriented view of computer network design, protocol implementation, networking, high-speed networking, network management, computer network performance issues. |
Units: (3)
|
| CPSC 566 Advanced Computer Graphics |
| Description: Prerequisite: Computer Sci 484. Three-dimensional: reflection models, shading techniques, rendering process, parametric representation, ray tracing, radiosity, texture, anti-aliasing, animation, color science. |
Units: (3)
|
| CPSC 572 Survey of Pharmaceutical and Medical Devices Technology |
| Description: Prerequisites: enrollment in the Program for Applied Biotechnology Studies (PABS) Master of Biotechnology (MBt) degree program or consent of instructor, and MGMT 540. Corequisites: concurrent enrollment in two other PABS MBt degree survey courses: Survey Molecular Biology and Pharmacology/Toxicology (BIOL 570) and Survey Mathematical Modeling and Bioinformatics (BIOL 571). Prerequisites: enrollment in the Program for Applied Biotechnology Studies (PABS) Master of Biotechnology (MBt) degree program or consent of instructor, and MGMT 540. Corequisites: concurrent enrollment in two other PABS MBt degree survey courses: Survey Molecular Biology and Pharmacology/Toxicology (BIOL 570) and Survey Mathematical Modeling and Bioinformatics (BIOL 571). |
Units: (3)
|
| CPSC 583 Expert Systems Design Theory |
| Description: Prerequisite: Computer Sci 481. Knowledge representation and search strategies for expert systems; logic programming; expert system tools. Project. |
Units: (3)
|
| CPSC 585 Artificial Neural Networks |
| Description: Prerequisite: Computer Sci 481. Principles of neural networks; neural networks paradigms, software implementations, applications, comparison with statistical methods, use of fuzzy logic; project. |
Units: (3)
|
| CPSC 589 Seminar in Computer Science |
| Description: Prerequisites: one 400-level course in Computer Science and passing score on the Examination in Writing Proficiency. Research methods in computer science. Student presentations covering current topics, research advances, updating of concepts and verifications of principles of computer science. (Examples: large-scale parallelism, Internet security, design for user interfaces, computers in instruction). |
Units: (3)
|
| CPSC 597 Project |
| Description: Prerequisites: classified graduate standing, approval of the computer science graduate adviser and Computer Sci 589. |
Units: (3)
|
| CPSC 598 Thesis |
| Description: Prerequisites: classified graduate standing, approval of the computer science graduate adviser and Computer Sci 589. |
Units: (3)
|
| CPSC 599 Independent Graduate Research |
| Description: Prerequisites: classified graduate standing, approval of the computer science department chair and Computer Sci 589. Special topic in computer science, selected in consultation with and completed under supervision of a full-time faculty member. |
Units: (1-3)
|