COURSE DESCRIPTIONS
\nCOMPSCI 202P.\u00a0 \u00a0Applied Cryptography. 4 Units.
\nDesign and analysis of algorithms for applied cryptography. Topics include symmetric and asymmetric key encryption, digital signatures, one-way hash functions, digital certificates and credentials, and techniques for authorization, non-repudiation, authentication, identification, data integrity, proofs of knowledge, and access control.
COMPSCI 203P. Network and Distributed System Security. 4 Units.
\nModern computer and \u00a0networks security: attacks and countermeasures, \u00a0authentication, \u00a0identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Group communication and multicast security techniques. Covers secure e-commerce and applications of public key methods, digital certificates, and credentials.
COMPSCI 206P. Principles of Scientific Computing. 4 Units.
\nOverview of widely used principles and methods of numerical and scientific computing, including basic concepts and computational methods in linear algebra, optimization, and probability.
COMPSCI 210P. Computer Graphics and Visualization. 4 Units.
\nInteractive 3 0 graphics rendering pipeline, illumination and shading, ray tracing, texture-, bump-, mip\u00ad mapping, hidden surface removal, anti-aliasing, multiresolution representations, volume rendering techniques, iso-surface extraction. Prerequisite. Linear Algebra.
COMPSCI 211P. Visual Computing. 4 Units.
\nFundamentals of image processing (convolution, linear filters, spectral analysis), vision geometry (projective geometry, camera models and calibration, stereo reconstruction), radiometry (color, shading, illumination, BRDF), and visual content synthesis (graphics pipeline, texture- bump-, mip\u00ad mapping, hidden surface removal, anti-aliasing). Prerequisite. Linear Algebra.
COMPSCI 222P. Principles of Data Management . 4 Units.
\nCovers fundamental principles underlying data management systems. Understanding and implementation of key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.
COMPSCI 232P. Computer and Communication Networks. 4 Units.
\nNetwork architecture of the Internet, telephone networks, cable networks, and cell phone networks. Network performance models. Network performance models. Advanced concepts and implementations of flow and congestion control, addressing, internetworking, forwarding, routing, multiple access, streaming, and quality-of-service.
COMPSCI 238P. Operating Systems. 4 units.
\nIn depth organization of the core operating system abstractions and their implementation (e.g., virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, inter-process communication, hardware interface, etc.), and a range of recent developments in de-facto industry standard operating systems and novel research architectures.
COMPSCI 242P. Compilers and Interpreters. 4 units.
\nProvides in-depth study of compilers and interpreters which are the primary forms of programming language processing in computing. Prerequisite:\u00a0Knowledge of C++ programming is required.
COMPSCI\u00a0244P. Introduction to the Internet of Things. 4 Units.
\nDevelops a comprehensive understanding of the hardware and software technology, the communication protocols, and the security and privacy requirements underlying the Internet of Things ecosystem, particularly those using computing elements (processors, DSPs/ ASIPs), sensors, and accessing cloud services. Prerequisite: Undergraduate-level familiarity with fundamentals of integrated circuit blocks, processors, optimization/algorithm design, and some programming experience.
COMPSCI 250P. Computer Systems Architecture. 4 Units.
\nStudy of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.
COMPSCI 253P. Advanced Programming and Problem Solving. 4 Units.
\nProvides in-depth preparation for industry interviews requiring demonstration of problem solving and programming skills. Emphasis is on understanding problem statements, considering edge cases, developing effective test cases, designing correct solutions, explaining these clearly, and implementing a solution correctly.
COMPSCI 260P. Fundamentals of Algorithms with Applications. 4 Units.
\nCovers fundamental concepts in the design and analysis of algorithms and is geared toward practical application and implementation. Topics include: greedy algorithms, deterministic and randomized graph algorithms, models of network flow, fundamental algorithmic techniques and NP-completeness.
COMPSCI 261P. Data Structures. 4 Units.
\nData structures and their associated management algorithms including their applications and analysis. Prerequisite: COMPSCI 260P: Fundamentals of Algorithms with Applications.
COMPSCI 262P. Automata and Grammars. 4 Units.
\nPrinciples and applications of automata, grammars, and formal languages. Topics include finite state machines, regular expressions, context-free grammars, pushdown automata, Turing machines, and the limits of computation, as well as text-processing applications in lexical analyzers and parsers.
COMPSCI 267P. Data Compression. 4 Units.
\nAn introduction to the theory and practice of modern data compression techniques. Topics include codes, coding, modeling, text compression, lossless and lossy image compression standards and systems, audio compression.
COMPSCI 268P. Introduction to Optimization Modeling. 4 Units.
\nA broad introduction to optimization modeling. Unconstrained and constrained optimization. Equality and inequality constraints. Linear and integer programming. \u00a0Practical implementation of combinatorial optimization.
COMPSCI 271P. Introduction to Artificial Intelligence. 4 Units.
\nThe study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental sub-disciplines of artificial intelligence including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.
COMPSCI 273P. Machine Learning and Data Mining. 4 Units.
\nComputational approaches to learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes. Application of these techniques to data mining and knowledge discovery – particularly with respect to web and text data analysis.
COMPSCI 274P. Neural Networks and Deep Learning. 4 Units.
\nIntroduction to principles of machine learning and neural networks. Architecture design. Feedforward and recurrent networks. Learning models and algorithms. Applications to data analysis and prediction problems in areas such as machine vision, natural language processing, biomed, and finance. Prerequisite:\u00a0Knowledge of Python programming is required.
COMPSCI 296P. Capstone Professional Writing and Communication for Computer Science Careers. 6 Units.
\nWritten and oral communication for computer science and IT careers.\u00a0 \u00a0Production of the detailed design and development document for the concurrent capstone design class and refinement of written documents and oral communications skills needed for a successful job search. Prerequisite: \u00a024 units completed in MCS program. Corequisite: COMPSCI 297P. Capstone Design Project for Computer Science
COMPSCI 297P. Capstone Design Project for Computer Science. 6 Units.
\nDesign and development of app, a software system or a hardware component of system based on your prior knowledge of advanced computer science\u00a0 principles. Implement at least a working prototype and test this using relevant use cases and or input data. Prerequisite: \u00a024 units completed in MCS program.\u00a0Corequisite: COMPSCI 296P. Capstone Professional Writing and Communication for Computer Science Careers.