California State University, Fullerton

Computer Science

DEPARTMENT CHAIR
James Choi

VICE CHAIR
Mariko Molodowitch

DEPARTMENT OFFICE
Computer Science 522

DEPARTMENT WEBSITE
http://cs.fullerton.edu

PROGRAMS OFFERED
Bachelor of Science in Computer Science
Master of Science in Computer Science
Minor in Computer Science
Master of Science in Software Engineering

FACULTY
Susamma Barua, Ning Chen, James Choi, Bin Cong, Spiros Courellis, David Falconer, Allen Holliday, Floyd Holliday, Chang-Hyun Jo, Barbara Laguna, Demetrios Michalopoulos, Mariko Molodowitch, Tae Ryu, Michael Shafae, Xiong Wang

INTRODUCTION
The undergraduate computer science program at Cal State Fullerton offers students a comprehensive foundation that will permit them to adapt to new technologies and new ideas. The program spans a wide range, from its theoretical and algorithmic foundations to cutting-edge developments in bioinformatics, communications systems, databases, robotics, intelligent systems, software engineering, and other exciting areas.

The program provides students with a comprehensive background to take on varied categories of work. They are offered the necessary theories, principles and practices to design and implement software that permits them to take on challenging programming jobs. They have the opportunity to become well-equipped to devise new ways to use computers. Computer scientists working in research and development are striving to make robots practical aides that demonstrate some aspects of intelligence, using databases to discover new knowledge, and using computers to help map human DNA, as well as the DNA of other animals. The theoretical foundations available in the program provides the background to help develop effective ways to solve computing problems. This background allows students to determine the best possible ways to store information in databases, send data over networks, and display complex images.

The Bachelor of Science degree in Computer Science is accredited by the Computing Accreditation Commission of ABET, 111 Market Place, Suite 1050, Baltimore, MD 21202-4012, telephone: 410-347-7700.

MISSION
The mission of the Computer Science Department is to provide students with a strong fundamental knowledge of Computer Science and the practical skills to adapt as technology changes.

EDUCATIONAL OBJECTIVES
The Computer Science program is designed to provide the student with the foundations of the discipline as well as the opportunity for specialization. Six objectives are addressed:

BACHELOR OF SCIENCE IN COMPUTER SCIENCE
Each Computer Science major is required to complete a minimum of 124 units, including general education. The degree program assumes that the student has already obtained a working knowledge of personal computing fundamentals and applications, including word processing, spreadsheets, database systems, e-mail systems and presentation graphics.

Computer Science Placement Examination
A Computer Science student with prior coursework in computer programming should take the Computer Science Placement Examination. This exam is given two times per semester and is used to assess the student’s background and assure proper enrollment in the appropriate course. Students new to programming should enroll in CPSC 120.

Computer Science Core (46 units)
Lower-Division Core (18 units)
Computer Sci 120 Introduction to Programming (3)
Computer Sci 121 Programming Concepts (3)
Computer Sci 131 Data Structures Concepts (3)
Computer Sci 223H Visual Basic Programming (3)
OR Computer Sci 223J Java Programming
OR Computer Sci 223N C# Programming (3)
Computer Sci 240 Computer Organization and Assembly Language (3)
Computer Sci 254 UNIX and Open Source Systems (3)

Upper-Division Core (28 units)
Students must take and pass the Examination in Programming Proficiency (EPP) before taking upper-division Computer Science courses. Students who do not pass the EPP will be required to take Computer Science 301 Programming Lab Practicum (2).
Computer Sci 311 Technical Writing for Computer Science (3)
Computer Sci 315 Social and Ethical Issues in Computing (1)
Computer Sci 323 Programming Languages and Translation (3)
Computer Sci 332 File Structures and Database Systems (3)
Computer Sci 335 Problem Solving Strategies (3)
Computer Sci 351 Operating Systems Concepts (3)
Computer Sci 362 Foundations of Software Engineering (3)
Computer Sci 440 Computer System Architecture (3)
Computer Sci 471 Computer Communications (3)
Computer Sci 481 Artificial Intelligence (3)

Elective Track Requirements (15 units)
Each student selects an Elective Track to support specific career goals.
Multimedia and Digital Game Technologies
Computer Sci 386 Introduction to Game Design and Production (3)
Computer Sci 484 Principles of Computer Graphics (3)
Computer Sci 486 Game Programming (3)
Computer Sci 487 Advance Game Programming (3)
Computer Sci 489 Game Development Project (3)

Internet and Enterprise Computing Technologies
Computer Sci 431 Database and Applications (3)
Computer Sci 473 Web Programming and Data Management (3)
Computer Sci 474 Distributed Computing Using Web Service and .NET Remoting (3)
Computer Sci 476 Java Enterprise Application Development (3)
Plus any adviser-approved three units of upper-division Computer Science.

Software Engineering
Computer Sci 462 Software Design (3)
Computer Sci 463 Software Testing (3)
Computer Sci 464 Software Architecture (3)
Computer Sci 466 Software Process (3)
Plus any adviser-approved three units of upper-division Computer Science.

Scientific Computing
Completing the Mathematics courses listed below also meets the requirements for a minor in Mathematics.
Math 250A Multivariate Calculus (4)
Math 250B Introduction to Linear Algebra and Differential Equations (4)
Math 340 Numerical Analysis (3)
Math 370 Mathematical Model Building (3)
Plus any adviser-approved three units of upper-division Computer Science.

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

Requirements in Mathematics and Science (30)
Mathematics Requirement (18 units)
Mathematics 150A,B Calculus (4,4)
Mathematics 270A,B Mathematical Structures (3,3)
Mathematics 338 Statistics Applied to Natural Sciences (4)

Science Requirements (12 units)
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)

Biological Science (4 units)
Biology 101 Elements of Biology (3)
Biology 101L Elements of Biology Laboratory (1)

Back to Top

MINOR IN COMPUTER SCIENCE
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.

General Education
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.

Minimum Academic Requirements
Courses taken toward the core, elective track, required mathematics and science, and General Education Categories I.A, I.B, I.C, and III.A.1 must be taken on a traditional (letter grade) basis.
A grade of “C” (2.0) or better is required in courses taken in fulfillment of General Education Categories

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.

MASTER OF SCIENCE IN COMPUTER SCIENCE

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.

Application Deadlines
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.

Classified Graduate Standing
Achievement of this status requires the following:

  1. Approval of a formal study plan (see description below) by the Computer Science Graduate Committee and the Associate Vice President for Graduate Studies and Research (or designee)
  2. Satisfactory completion of no more than nine units on the study plan
  3. Satisfactory completion of the following courses or equivalents including prerequisites: Computer Science 121, 131, 240, 323, 335, 351, 362 and Mathematics 270A,B, 338
  4. Competency in written communication in English must be demonstrated by a passing score on the California State University Examination in Writing Proficiency. The requirement must be satisfied before the student can be classified and before 500-level courses may be attempted. The student who fails to pass the EWP test may complete Computer Science 311 (Technical Writing for Computer Science) with a grade of “B” (3.0) or better as an alternative to the EWP requirement

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.

Study Plan
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.

COMPUTER SCIENCE COURSES
Courses are designated as CPSC in the class schedule.
Prerequisites for Computer Science courses may be waived only by department petition.

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)



Back to Top