Computer Science (CPSC)
CPSC 101 Essentials of Computer Science (3 Units)
Explore major topics in Computer Science - computing systems, data representation, hardware, programming topics, and important applications such as networks, robotics, databases, and gaming.
CPSC 125 Descriptive Computer Science (2 Units)
Computer literacy: terminology; methods, media for data representation, storage; elements of a computing system; data organization.
CPSC 126 Introduction to Visual Basic Programming (3 Units)
Windows GUI and Microsoft's Visual BASIC programming environment. Design of user interfaces, event-driven programming, basic control structures, simple variables, arrays, and sequential files.
CPSC 200 Programming for Data Science (4 Units)
Prerequisite: MATH 143 or MATH 144 or MATH 145 or higher math with a grade of C- or better or placement in higher math. Introductory programming for data-intensive applications including data collection, pre-processing/cleansing, analysis, and visualization, using libraries for processing of large data sets. Designed as a first programming course for non-majors in the sciences.
CPSC 209 Computer Science I (4 Units)
Prerequisite: MATH 143 or MATH 144 or MATH 145 with a grade of C- or better or equivalent, or placement in higher math. Introduction to problem-solving methods and algorithms. Programming in a high-level language including how to design, code, debug and document programs with good programming style.
CPSC 210 Computer Science II (4 Units)
CPSC 289 Selected Topics in Computer Science (1-3 Units)
Prerequisite: Permission. Selected topics of interest in computer science.
CPSC 306 Assembly and System Programming (4 Units)
Prerequisite: CPSC 210 or equivalent with a grade of C- or better. Basic computer organization, digital logic, and data representation. Programming in assembly and C languages on a typical digital computer.
CPSC 307 Internet Systems Programming (3 Units)
Prerequisite: CPSC 210 or equivalent with a grade of C- or better. Overview of current programming languages, tool and scripting technologies for the Internet and World Wide Web.
CPSC 316 Data Structures (3 Units)
CPSC 389 Intermediate Topics in Computer Science (1-3 Units)
Prerequisite: Permission of instructor. Selected topics of interest in computer science at an intermediate level.
CPSC 395 Internship in Computer Science (1-12 Units)
Prerequisites: [CPSC 209 and CPSC 210] with grades of C- or better, and permission of a faculty supervisor. Placement in industry for experience related to computer science. (May be repeated to a maximum of 12 credit hours. No more than three credits may be applied towards a computer science major.)
CPSC 406 Introduction to C & UNIX (3 Units)
Prerequisite: Programming experience. Syntax of C with flow structures, pointers, and command line concepts. For UNIX, shell scripts, UNIX file structure, system calls and interprocess communication protocols. (Not an approved mathematics and computer science major, minor, or certificate elective.)
CPSC 408 Windows Programming (3 Units)
CPSC 411 Human-Computer Interaction (3 Units)
Prerequisite: CPSC 316. This course introduces the basic concepts and technologies of Human-Computer Interaction (HCI). Students will learn how to design and implement systems for human to interact with computers. Topics include: Categories of HCI, CLI, GUI, NUI, Design, Implementation and Evaluation of HCI, HCI Devices, Virtual Device Drive, HCI Toolkits, HCI Standards, Categories of Interactive Tasks, EDP and Multi-Threading in HCI, VR/AR/MR/XR in HCI, APP HCI, 3D Printing.
CPSC 415 Big Data Programming (3 Units)
Prerequisite: CPSC 210 with a grade of C- or higher. Fundamentals of big data programming and computing platforms. Wrangling, modeling, visualizing, and analyzing data; computing platforms for data mining and deep learning.
CPSC 418 Introduction to Discrete Structures (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better or permission. Introduction to a number of structures in algebra of particular use to student in computer science. Topics include algorithms and flow chart language, graphs and digraphs, trees, lattices codes.
CPSC 421 Object-Oriented Programming (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Object-oriented design, analysis, and programming using different development models. Comparison with other programming paradigms.
CPSC 426 Operating Systems (3 Units)
CPSC 428 UNIX System Programming (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better and knowledge of C. An overview of the UNIX operating system. Shell programming. Process management, processor management, storage management, scheduling algorithms, resource protection, and system programming.
CPSC 430 Theory of Programming Languages (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Advanced concepts underlying programming languages and their applications, formal definitions of programming languages, Backus Normal Form, semantics. Alternative programming paradigms including functional programming.
CPSC 435 Algorithms (3 Units)
Prerequisite: CPSC 316 with a grade of C- or better. Design and analysis of efficient algorithms for random access machines; derivation of pattern classification algorithms.
CPSC 436 Applied Machine Learning (3 Units)
Prerequisite: CPSC 210 with a grade of C- or higher. Machine learning studies algorithms and models that enable computers to complete task without explicit instructions. These algorithms rely on rules, associations, and patterns presented in large data sets gathered or generated through self-learning. This course will introduce students the fundamentals of machine learning, and concepts of deep learning. Topics include machine learning concepts, tasks, and workflow; supervised learning methods for classification and prediction; unsupervised learning methods for pattern recognition; concepts of advanced supervised learning methods including deep learning algorithms such as neural networks and convolutional neural networks. The main focus of the course is the application of industry-leading machine learning algorithms and the enabling techniques that make the implementation of the algorithms practical.
CPSC 438 Interactive Game & Game Engine Design (3 Units)
Prerequisite: CPSC 316. This course will introduce the basic concepts and techniques of game and game engine design. Students will learn how to design and implement interactive computer games and game engines. Topics include: Interactive Animation, Game Engines, EDP in Game Development, Procedural Animation and Physics Engine, Decision Making and AI Games, Surface & Volume Representation, VR, AR, MR, APP Games, Game Engine Development, and Voxel-Engine.
CPSC 440 Compiler Design (3 Units)
CPSC 445 Introduction to Bioinformatics (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better or permission. Introduce major themes in bioinformatics. Topics include concepts of molecular genetics, biological databases, database searching, sequence alignments, phylogenetic trees, structure prediction, and microarray data analysis.
CPSC 453 Computer Security (3 Units)
Prerequisites: CPSC 210 with a grade of C- or better. Principles of computer security -- cryptography, authentications, secure network protocols, intrusion detection and countermeasures.
CPSC 455 Data Communication & Computer Networks (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. ISO-OSI, TCP/IP, SNA data switching, protocols, flow and error control, routing, topology, Network trends, network taxonomies, and socket-based programming.
CPSC 457 Computer Graphics (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Topics in vector and raster graphics, interactive graphics languages, scan conversion, clipping, geometric transformation, projection, shading, animation and virtual reality.
CPSC 460 Artificial Intelligence & Heuristic Programming (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Study of various programs which have displayed some intelligent behavior. Exploration of level at which computers can display intelligence.
CPSC 463 Pervasive Computing (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Computing from a wireless perspective. Topics include protocols, algorithms, security and sensor networks.
CPSC 465 Computer Architecture (3 Units)
CPSC 468 Mobile Robotics (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Introduction to history, hardware and software components, and design of autonomous mobile robots. Multiple projects involving both physical robots and software emulation.
CPSC 475 Database Management (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Fundamentals of database organization, data manipulations and representation, data integrity, privacy.
CPSC 476 Introduction to NoSQL Data Management (3 Units)
Prerequisite: CPSC 210. The widespread emergence of big data storage needs has driven the development and adoption of a new class of non-relational databases commonly referred to as NoSQL databases. This course will explore the origins of NoSQL databases and the characteristics that distinguish them from traditional relational database management systems. Core concepts of NoSQL databases will be presented, followed by an exploration of how different database technologies implement these core concepts. We will take a closer look at 1-2 databases from each of the four main NoSQL data models (key-value, column family, document, and graph), highlighting the business needs that drive the development and use of each database. Finally, we will present criteria that decision makers should consider when choosing between relational and non-relational databases and techniques for selecting the NoSQL database that best addresses specific use cases.
CPSC 477 Introduction to Parallel Processing (3 Units)
Prerequisites: CPSC 316 with a grade of C- or better and knowledge of C. Commercial processors: past and present. Parallel languages, models of parallel computation, parallel algorithm design and performance evaluation. Parallel paradigms with relation to real world applications.
CPSC 480 Software Engineering (3 Units)
Prerequisite: CPSC 210 with a grade of C- or better. Introduction to formal software specification and validation. Introduction of methodologies and tools of design, development and validation, and maintenance.
CPSC 489 Topics in Computer Science (1-4 Units)
Prerequisite: Permission of instructor. Selected topics in computer science at an advanced level.
CPSC 490 Senior Seminar in Computer Science (3 Units)
Gen Ed: Capstone
CPSC 497 Individual Study in Computer Science (1-3 Units)
(May be repeated. Can apply to degree, minor or certificate only with department approval.) Prerequisite: Permission. Directed studies designed as introduction to research problems under guidance of designated faculty member.
CPSC 498 Senior Honors Project: Computer Science (1-3 Units)