Skip to Content (Press Enter)

 California State University, Fullerton



Text Size: Small Text Medium Text Large Text

BS Course Description

These course descriptions were taken from the Undergraduate Handbook, which contains a complete description of the Bachelor’s Degree program.

CPSC 103 Introduction to Personal Computer Applications (3 units)

Prerequisite: None.

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)

CPSC 120 Introduction to Programming (3 units)

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 hours laboratory).

CPSC 121 Programming Concepts (3 units)

Prerequisite: CPSC 120 or sufficient score on the Computer Science Placement Exam.

Introduction to programming of digital computers; subroutines, functions, and structure of algorithms; elementary input/output; arrays; strings and data types; classes and objects; documentation. (2 hours lecture, 2 hours laboratory)

CPSC 131 Data Structures Concepts (3 units)

Prerequisites: CPSC 121

Data structures: list, stacks, queues, linked structures, binary search trees, hashing, graph, sorting and searching. Implementation and use of basic data structures.

CPSC 223H Visual BASIC Programming (3 units)

Prerequisite: CPSC 131.

Elements of Visual Basic, forms and controls, mouse events, properties, multiple-document interface, processing files, accessing databases, dynamic data exchange, object linking and embedding. (2 hours lecture, 2 hours laboratory)

CPSC 223J Java Programming (3 units)

Prerequisite: CPSC 131.

Characteristics of Java: portable, robust, secure, object-oriented, high performance; using 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.

CPSC 240 Computer Organization and Assembly Language (3 units)

Prerequisites: CPSC 131 and either Mathematics 270A or Mathematics 280.

CPSC 253U Workshop in UNIX (1 unit)

Prerequisite: CPSC 121 or EGME 205.

Introduction to the UNIX operating systems.

CPSC 254 UNIX and Open Source Systems (3 units)

Prerequisite: CPSC 131.

Introduces the UNIX operating systems, various open source applications and systems, open source programming languages, and open source software development techniques. (2 hours lecture, 2 hours laboratory)

CPSC 301 Programming Practicum (2 units)

Prerequisite: CPSC 131; and CPSC 253U or CPSC 254.

Intensive programming covering concepts learned in lower division courses. Includes procedural and object-oriented design, documentation, arrays, classes, file input/output, recursion, pointers, dynamic variables, data and file structures.

CPSC 303 Multimedia Concepts (3 units)

Prerequisites: 121 and completion of the General Education Critical Thinking requirement.

Components and issues associated with multimedia technology, applications of multimedia and its evolution. Laboratory activities will include developing a multimedia application using a PC-based authoring tool. (2 hours lecture, 2 hours laboratory)

CPSC 311 Technical Writing for Computer Science (3 units)

Prerequisites: ENGL 101 and CPSC 131.

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. Both written and oral reports required.

CPSC 313 The Computer Impact (3 units)

Prerequisite: Upper division standing, one course from GE section III.A.2.

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. Students will learn e-mail and the World Wide Web. Emphasis on personal responsibility, legal ramifications, and educational implications.

CPSC 315 Social and Ethical Issues in Computing (1 unit)

Prerequisite: CPSC 311.

The course will cover relevant issues that responsible professionals will face in a complex technological society. Issues covered are professional ethics, computer control, intellectual property, privacy, computer crimes, benefits and downside of computers.

CPSC 322L Introduction to Computer Aided Design (3 units)

Prerequisite: Adviser Approval.

Introduction to modeling, assembly, design documentation and analysis using typical commercial CAD/CAE software such as Mechanical Desktop, Pro/ENGINEER and ANSYS. Use of online resources in the collaborative design process. Design file transfer protocols. Design project using a technology based team environment. CAD/CAE system selection criteria. (1 hour lecture, 6 hours laboratory). (Same as Computer Science 322L)

CPSC 323 Programming Languages and Translation (3 units)

Prerequisites: EPP.

Introduce both basic concepts of programming languages and principles of translation. The topics include the history of programming languages and various programming paradigms, language design issues and criteria, developing practical translator for modern programming languages.

CPSC 332 File Structures and Database Systems (3 units)

Prerequisites: CPSC 131.

The fundamental theories and design of database systems, the Structural Query Language (SQL), and basic concepts and techniques on data organization in secondary storage. Topics include introduction to database systems, ER model, relational model, index structures, and hashing techniques.

CPSC 335 Problem Solving Strategies (3 units)

Prerequisites: EPP, Math 270B, and Math 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.

CPSC 351 Operating Systems Concepts (3 units)

Corequisite: EPP.

Resource management, memory organization, input/output, control; process synchronization and other concepts as related to the objectives of multi-user operating systems.

CPSC 362 Software Engineering (3 units)

Prerequisites: CPSC 223, EPP, and CPSC 311.

Basic concepts, principles, methods, techniques and practices of software engineering. All aspects of software engineering fields will be covered briefly. Software engineering tools are recommended to use.

CPSC 376 Client / Server Systems with Java (3 units)

Prerequisites: CPSC 223J and CPSC 351.

Introduction to concepts and architecture of client-server systems using Java. The course covers the techniques for building client-server systems, multi-threading, network programming, and Java-based Web services.

CPSC 386 Introduction to Game Design & Production (3 units)

Prerequisites: CPSC 131.

Introduce the current and future technologies and market trend in the game design and production. In this class students will also learn game technologies, basic building tools of games, and the process of game design, development, and production.

CPSC 431 Database and Applications (3 units)

Prerequisite: CPSC 332 and EPP.

Advanced database design concepts and application development techniques. Topics include advanced database design including schema refinement and physical database design, query processing and optimization, tuning, transaction concepts, real-world database programming techniques, and comprehensive database application development techniques.

CPSC 433 Data Security and Encryption Techniques (3 units)

Prerequisites: CPSC 311, CPSC 351, and MATH 270B.

System security and encryption. Current issues in security, encryption and privacy of computer based systems.

CPSC 440 Computer System Architecture II (3 units)

Prerequisites: CPSC 240.

Computer performance, price/performance, instruction set design and examples. Processor design, pipelining, memory, hierarchy design, and input/output subsystems.

CPSC 451 Advanced Operating Systems (3 units)

Prerequisite: CPSC 351.

The course covers internal structures of a modern operating system. The specific topics include processing, process communication, file systems, networking, and the I/O system. There are several programming assignments which include system calls, and other low level interfaces.

CPSC 459 Micro-Computer Software Systems (3 units)

Prerequisite: CPSC 351.

The design and implementation of software. Analysis of a micro-computer operating system and work on a team to implement a significant programming assignment.

CPSC 462 Software Design (3 units)

Prerequisites: CPSC 362.

Introduce basic concepts of software modeling, software process and some tools. Object-oriented analysis and design and Unified Process will be covered. Some computer-aided software engineering (CASE) tools will be recommended to use for doing homework assignments. (2 hours lecture, 2 hours laboratory)

CPSC 463 Software Testing (3 units)

Prerequisites: CPSC 362.

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

CPSC 464 Software Architecture (3 units)

Prerequisites: CPSC 362.

Introduce basic principles and practices of software design and architecture. It will cover high-level design, software architecture, documenting software architecture, software architecture evaluation, software product lines, and some considerations beyond software architecture.

CPSC 466 Software Process (3 units)

Prerequisites: CPSC 362.

Introduce practical guidance for improving the software development and maintenance process. Students will learn how to establish, maintain, and improve software processes. They will also be exposed to some common process models, such as CMM, CMMI, PSP, and TSP.

CPSC 471 Computer Communications (3 units)

Prerequisite: CPSC 351.

Introduction to digital data communications. Terminology, networks and their components, common-carrier services, telecommunication facilities, terminals, error control, multiplexing and concentration techniques.

CPSC 473 Web Programming and Data Management (3 units)

Prerequisite: CPSC 431

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 application tools and techniques.

CPSC 474 Distributed Computing using Web Service and .NET Remoting (3 units)

Prerequisites: CPSC 473.

Introduces the concepts of distributed computing and Web services, the applications of XML and Web services, distributed applications development techniques with Web services and .NET Remoting.

CPSC 476 Java Enterprise Application Development (3 units)

Prerequisites: CPSC 223J and 351.

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

CPSC 481 Artificial Intelligence (3 units)

Prerequisite: CPSC 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.

CPSC 483 Data Mining and Pattern Recognition (3 units)

Prerequisites: CPSC 335.

Classification techniques, discriminant functions, training algorithms, potential function theory, supervised and unsupervised learning, feature selection, clustering techniques, multidimensional rotations and rank ordering relations.

CPSC 485 Computational Bioinformatics (3 units)

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.

CPSC 484 Principles of Computer Graphics (3 units)

Prerequisite: EPP, Math 270B, and Math 150B.

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.

CPSC 486 Game Programming (3 units)

Prerequisites: CPSC 386.

Corequisite: CPSC 484.

Introduce foundations of game programming (basically 2D game development techniques) and multimedia entertainment techniques (sound, animation, etc.).

CPSC 487 Advanced Game Programming (3 units)

Prerequisites: CPSC 486.

Intermediate and advanced game programming techniques including 3D game development, real-time rendering, physic simulation, etc.

CPSC 489 Game Development Project (3 units)

Prerequisites: CPSC 487

Corequisite: CPSC 481.

Individual or team develops realistic games based on the theories and techniques, present and demonstrate their work regularly.

CPSC 491T Variable Topics in Computer Science (1-3 units)

Prerequisites: Junior/Senior standing and consent of the instructor.

Lectures and/or workshops covering various current Computer Science topics. Course may repeat for up to 3 units. Course topics maybe taken only once.

CPSC 495 Internship in Computer Science (1 - 3 units)

Prerequisite: Computer Science or related major, and consent of instructor.

Practical experience and service learning relevant to computer science in industry or organizations. Written and oral reports are required.

CPSC 499 Independent Study (1 - 3 units)

Prerequisite: Approval by the Computer Science Chair.

Special topic in Computer Science selected in consultation with and completed under the supervision of instructor.