UCR Logo

We Engineer Excellence

Undergraduate Course Descriptions

Below is a list of undergraduate course descriptions

CourseCourse TitleDescription
ENGR 001Professional Development and MentoringActivity, 30 hours per quarter. Provides freshmen with involvement in professional development activities. Activities to be performed are program-specific, and may include projects, industry overviews and interactions, involvement with professional societies and clubs, team building, career guidance, and coverage of ethics and lifelong learning issues. E. Bioengineering; F. Chemical Engineering; G. Computer Engineering; I. Computer Science; J. Electrical Engineering; K. Environmental Engineering; M. Cmptr Scnce Business Applctns; N. Mechanical Engineering;
ENGR 101Professional Development and MentoringActivity, 30 hours per quarter. Prerequisite(s): restricted to class level standing of junior; restricted to major(s) Bioengineering, Bioengineering BS + MS, Chemical Engineering, Chemical Engineering BS + MS, Computer Engineering, Computer Science, Computer Science BS + MS, Electrical Engineering, Electrical Engineering BS + MS, Environmental Engineering, Environmental Engr BS + MS, Materials Science and Engineer, Mechanical Engineering, Mechanical Engineering BS + MS. Provides juniors with involvement in professional development activities. Activities to be performed are program-specific, and may include projects, industry overviews and interactions, involvement with professional societies and clubs, team building, career guidance, and coverage of ethics and lifelong learning issues. E. Bioengineering; F. Chemical Engineering; G. Computer Engineering; I. Computer Science; J. Electrical Engineering; K. Environmental Engineering; M. Cmptr Scnce Business Applctns; N. Mechanical Engineering.
ENGR 180WTechnical CommunicationsLecture, 3 hours; workshop, 3 hours. Prerequisite(s): ENGL 001B with a grade of “C” or better; upper-division standing in the Bourns College of Engineering or consent of instructor. Develops oral, written, and graphical communication skills. Includes preparing and critiquing reports, proposals, instructions, and business correspondence. Emphasizes professional and ethical responsibilities and the need to stay current on technology and its global impact on economics, society, and the environment. Fulfills the third-quarter writing requirement for students who earn a grade of “C” or better for courses that the Academic Senate designates, and that the student’s college permits, as alternatives to English 001C.
CS 005Introduction to Computer ProgrammingLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): none. An introduction to computer programming for nonengineering and nonscience majors and for students considering taking CS 010 but needing additional preparation. Topics include the history of computing, basic computer operation, the notion of an algorithm, and programming constructs such as variables, expressions, input/ output, branches, loops, functions, parameters, arrays, and strings. Credit is not awarded for CS 005 if it has already been awarded for CS 010.
CS 006Effective Use of the World Wide WebLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): none. A detailed introduction to the Internet. Covers Web tools, e-communities, e-commerce, power searching, and verification of information, privacy, and other legal and societal issues.
CS 008Introduction to ComputingLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): none. Includes operating system basics (Windows and Unix), word processing, spreadsheets, databases (e.g., Access), e-mail, the Internet, and the World Wide Web. Designed for students not majoring in computer science, engineering, mathematics, or science. Credit is not awarded for CS 008 if it has already been awarded for CS 010.
CS 009PIntroduction to Python Programming With ApplicationsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): a college mathematics course (may be taken concurrently) or credit for MATH 009A from the Advanced Placement Examination or the Mathematics Advisory Examination. Covers problem solving through structured programming of algorithms on computers using the Python language. Includes variables, expressions, input/output (I/O), branches, loops, functions, strings, lists, and use of common libraries. Also covers software design, testing, and debugging. Credit is not awarded for CS 009P if it has already been awarded for CS 009M or CS 010.
CS 010Introduction to CS for Science Mathematics, and Engineering I - C++ Lecture, 3 hours, Laboratory, 3 hours. Prerequisite(s): MATH 008B, may be taken concurrently or MATH 006B, may be taken concurrently or MATH 007A, may be taken concurrently or MATH 09HA, may be taken concurrently or MATH 008A, may be taken concurrently or MATH 005, may be taken concurrently or MATH 009A, may be taken concurrently; Covers problem solving through structured programming of algorithms on computers using the C++ object-oriented language. Includes variables, expressions, input/output (I/O), branches, loops, functions, parameters, arrays, strings, file I/O, and classes. Also covers software design, testing, and debugging. Credit is awarded for one of the following: CS 010, CS 009M, or CS 009P.
CS 012Introduction to CS for Science, Mathematics, and Engineering II - C++Lecture, 3 hours, Laboratory, 3 hours, Prerequisite(s): CS 010 with a grade of “C” or better; familiarity with C or C++ language. Covers structured and object-oriented programming in C++. Emphasizes good programming principles and development of substantial programs. Topics include recursion, pointers, linked lists, abstract data types, and libraries. Also covers software engineering principles. Credit is awarded for only one of CS 012 or CS 013.
CS 014Introduction to Data Structures and AlgorithmsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 012 with a grade of “C” or better; proficiency in C++. Topics include basic data structures such as arrays, lists, stacks, and queues. Covers dictionaries (including binary search trees and hashing) and priority queues (heaps). Offers an introductory analysis of algorithms, sorting algorithms, and object-oriented programming including abstract data types, inheritance, and polymorphism. Explores solving complex problems through structured software development.
CS 061Machine Organization & Assembly Language ProgrammingLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 010 with a grade of “C” or better. An introduction to computer organization. Topics include number representation, combinational and sequential logic, computer instructions, memory organization, addressing modes, interrupt, input/ output (I/O), assembly language programming, assemblers, and linkers.
CS 100Software ConstructionLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 014 with a grade of “C-” or better. Emphasizes development of software systems. Topics include design and implementation strategies; selection and mastery of programming languages, environment tools, and development processes. Develops skill in programming, testing, debugging, performance evaluation, component integration, maintenance, and documentation. Covers professional and ethical responsibilities and the need to stay current with technology.
CS 105Data Analysis MethodsLecture, 3 hours, Laboratory, 3 hours. Prerequisite(s): CS 014. An introduction to fundamental concepts and methods in data analysis and visualization essential to a variety of data science tasks. Designed to provide preparation for the data science major (currently under development) and for advanced courses in data analysis and applications of data science.
CS 110Web developmentApproval pending
CS 111Discrete StructuresLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 010; CS 011/MATH 011; MATH 009C (or MATH 09HC). A study of discrete mathematical structures emphasizing applications to computer science. Topics include asymptotic notation, generating functions, recurrence equations, elements of graph theory, trees, algebraic structures, and number theory.
CS/EE 120ALogic DesignLecture, 3 hours; laboratory, 3 hours; individual study, 3 hours. Prerequisite(s): CS 061 with a grade of “C-” or better. Covers design of digital systems. Includes Boolean algebra; combinational and sequential logic design; design and use of arithmetic logic units, carry-lookahead adders, multiplexors, decoders, comparators, multipliers, flip-flops, registers, and simple memories; state-machine design; and basic register-transfer level design. Uses hardware description languages, synthesis tools, programmable logic, and significant hardware prototyping. Cross-listed with EE 120A.
CS/EE 120BIntroduction to Embedded SystemsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): EE 120A or CS 120A. Introduction to hardware and software design of digital computing systems embedded in electronic devices (e.g., digital cameras or portable video games). Includes embedded processor programming, custom processor design, standard peripherals, memories, interfacing, and hardware/software trade-offs. Involves use of synthesis tools, programmable logic, microcontrollers, and developing working embedded systems. Cross-listed with EE 120B.
CS 122AIntermediate Embedded and Real-Time SystemsLecture, 3 hours; laboratory, 6 hours. Prerequisite(s): CS 012 or CS 013; CS 120B/EE 120B. Covers software and hardware design of embedded computing systems. Includes hardware and software codesign, advanced programming paradigms (including state machines and concurrent processes), real-time programming and operating systems, basic control systems, and modern chip and design technologies. Laboratories involve use of microcontrollers, embedded microprocessors, programmable logic and advanced simulation, and debug environments.
CS 130Computer GraphicsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100, MATH 031 (MATH 031 may be taken concurrently); or consent of instructor. A study of the fundamentals of computer graphics necessary to design and build graphics applications. Examines raster graphics algorithms including scan-converting graphics primitives, anti-aliasing, and clipping. Also covers geometric transformations, viewing, solid modeling techniques, hidden-surface removal algorithms, color models, illumination, and shading.
CS 135Virtual/augmented RealityLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100. Covers the development of virtual reality (VR) worlds, including motion and physics of VR worlds. Includes design practices for immersive experiences, human visual perception, environmental and social interactions. Also includes positional tracking with sensors, augmented and mixed reality, and storage and transmission of virtual reality worlds.
CS 141Intermediate Data Structures and AlgorithmsLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 014 with a grade of “C-” or better; CS 111; MATH 009C or MATH 09HC; proficiency in C++. Explores basic algorithm analysis using asymptotic notations, summation and recurrence relations, and algorithms and data structures for discrete structures including trees, strings, and graphs. Also covers general algorithm design techniques including “divideand-conquer,” the greedy method, and dynamic programming. Integrates knowledge of data structures, algorithms, and programming.
CS 142Algorithm engineeringLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 100, CS 141; or equivalent. Covers the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental computational problems including sorting, searching, as well as a selection of problems in algebra, geometry, combinatorial optimization, and string processing. Emphasizes practical aspects of algorithm design, efficient implementation, and experimental methodology for performance evaluation.
CS 144Algorithms for BioinformaticsApproval pending
CS 145Combinatorial Optimization AlgorithmsLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 141; MATH 031 or MATH 131. The study of efficient algorithm design techniques for combinatorial optimization problems. Topics include shortest paths, minimum spanning trees, network flows, maximum matchings, stable matchings, linear programming, duality, two-person games, algorithmic techniques for integer programming problems, NP-completeness, and approximation algorithms.
CS/EE 147GPU ProgrammingLecture, 3 hours; discussion, 1 hour. Prerequisite(s): EE 120B or CS 120B. Introduces principles and practices of programming graphics processing units (GPUs) using the parallel programming environment. Covers memory/threading models, common data-parallel programming patterns and libraries needed to develop highperformance parallel computing applications. Examines computational thinking; a broader range of parallel execution models; and parallel programming principles. Cross-listed with EE 147.
CS 150Automata and Formal LanguagesLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 014 with a grade of “C-” or better; CS 111; MATH 009C (or MATH 09HC). A study of formal languages. Includes regular and context-free languages; computational models for generating these languages such as finite-state automata, pushdown automata, regular expressions, and context-free grammars; mathematical properties of the languages and models; and equivalence between the models. Also introduces Turing machines and decidability.
CS 152Compiler DesignLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 061, CS 100, CS 111, CS 150. Covers the fundamentals of compiler design. Includes lexical analysis, parsing, semantic analysis, compile-time memory organization, run-time memory organization, code generation, and compiler portability issues.
CS 153Design of Operating SystemsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 061, CS 100, CS 111, C++ programming proficiency. Covers the principles and practice of operating system design. Includes concurrency, memory management, file systems, protection, security, command languages, scheduling, and system performance.
CS 161Design and Architecture of Computer SystemsLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 120A/EE 120A. A study of the fundamentals of computer design. Topics include the performance evaluation of microprocessors; instruction set design and measurements of use; microprocessor implementation techniques including multicycle and pipelined implementations; computer arithmetic; memory hierarchy; and input/output (I/O) systems.
CS 160Concurrent Programming and Parallel SystemsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 061, CS 100, CS 111. A study of concurrent and parallel systems. Topics include modular structure and design, interprocess communication, synchronization, failures, persistence, and concurrency control. Also covers atomic transactions, recovery, language support, distributed interprocess communication, and implementation mechanisms. Provides preparation for the study of operating systems, databases, and computer networking.
CS 161LLaboratory in Design & Architecture of Computer SystemsLecture, 1 hour; laboratory, 3 hours. Prerequisite(s): CS 161 (may be taken concurrently). Covers the design and simulation of a complete computer system using hardware description language and simulator. Topics include instruction set architecture design; assemblers; datapath and control unit design; arithmetic and logic unit; memory and input/output (I/O) systems; and integration of all parts into a working computer system.
CS 164Computer NetworksLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100, CS 111, CS 153. Covers the fundamentals of computer networks. Topics include layered network architecture, communication protocols, local area networks, UNIX network programming, verification, network security, and performance studies.
CS 165Computer SecurityLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 141, CS 153. Examines the ways in which information systems are vulnerable to security breaches. Topics include attacks; security labels, lattices, and policies; safeguards and countermeasures; intrusion detection; authorization and encryption techniques; networks; digital signatures, certificates, and passwords; privacy issues, firewalls, and spoofing; Trojan horses and computer viruses; CERT Coordination Center; and electronic commerce.
CS 166Database Management SystemsLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100, CS 111. Covers architecture of database management systems; relational, network, and hierarchical models; distributed database concepts; query languages; implementation issues; and privacy and security of the database.
CS 167Introduction to Big Data ManagementLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100, CS 111; CS 167 online section: enrollment in the online Master-of-Science in Engineering program. Introduces the architecture of big-data systems and their applications in data management and processing. Describes the common functionality in big-data processing such as distributed storage, resource management, query processing, fault-tolerance, and programming APIs. Covers the popular big-data technologies such as distributed shared-nothing systems, NoSQL processing model, and semi-structured data management.
CS/EE 168Introduction to Very Large Scale Integration (VLSI) DesignLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 120A/EE 120A or consent of instructor. Studies integrated circuit fabrication, device characterization, and circuit simulation. Introduces basic device physics and physical design rules, MOS logic design, and timing and clock schemes. Covers layout generation, subsystem designs, and circuits for alternative logic styles. Also covers design and simulation using hardware description language and CAD tools. Crosslisted with EE 168
CS 169Mobile Wireless NetworksLecture, 3 hours; laboratory, 2 hours; extra reading, 1 hour. Prerequisite(s): CS 153 or consent of instructor. Introduces the fundamentals of wireless and mobile networks. Covers wireless channel models, MAC protocols, and wireless network architectures. Also covers cellular, WLAN and ad hoc networks, and routing in multi-hop wireless networks. Includes wireless security and the impact of wireless links on TCP and other transport layer solutions.
CS 170Introduction to Artificial IntelligenceLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 100 with a grade of “C-” or better, CS 111. An introduction to the field of artificial intelligence. Focuses on discretevalued problems. Covers heuristic search, problem representation, and classical planning. Also covers constraint satisfaction and logical inference.
CS 171/EE 142Introduction to Machine Learning and Data MiningLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 100, MATH 010A or MATH 031. Introduces formalisms and methods in data mining and machine learning. Topics include data representation, supervised learning, and classification. Covers regression and clustering. Also covers rule learning, function approximation, and margin-based methods.
CS 172Introduction to Information RetrievalLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 100; CS 111; EE 114 or STAT 155. Introduces information retrieval (IR) principles and techniques for indexing and searching document collections. Topics include Web search, text processing, ranking algorithms, search in social networks, and search evaluation. Also studies scalability issues in search engines. Satisfactory (S) or No Credit (NC) grading is not available.
CS 173Introduction to NLPLecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 150, may be taken concurrently. An overview of modern approaches for natural language processing. Focuses on major algorithms used in NLP for various applications such as part-of-speech tagging, parsing, named entity recognition, coreference resolution, sentiment analysis, and machine translation.
CS 175Entrepreneurship in ComputingLecture, 3 hours; individual study, 3 hours. Prerequisite(s): CS 100, junior or senior standing. Introduces business and technological concepts to create companies based on computer technology. Covers technical aspects of real world IT projects. Includes developing software and services; understanding user requirements; designating usable systems; technological assessment. Also covers market analysis and strategy; legal and intellectual property, ethics and communication business issues; financial analysis.
CS 178AProject Sequence in CSELecture, 1 hour; laboratory, 3 hours; practicum, 6 hours. Prerequisite(s): CS 141, ENGR 180W; restricted to class level standing of senior. Under the direction of a faculty member, teams propose, design, build, test, and document software and/or hardware devices or systems. Emphasizes professional and ethical responsibilities and the need to stay current on technology and its global impact on economics, society, and the environment. Completed together, CS 178A and CS 178B may be applied as a substitute for the CS 179 (E-Z) CS major requirement. Graded In Progress (IP) until CS 178A and CS 178B are completed, at which time, a final letter grade is assigned.
CS 178BProject Sequence in CSELecture, 1 hour; laboratory, 3 hours; practicum, 6 hours. Prerequisite(s): CS 178A; restricted to class level standing of senior. Under the direction of a faculty member, teams propose, design, build, test, and document software and/or hardware devices or systems. Emphasizes professional and ethical responsibilities and the need to stay current on technology and its global impact on economics, society, and the environment.
CS 179EProject in Computer Science - CompilersDiscussion, 1 hour; laboratory, 3 hours; research, 3 hours; extra reading, 3 hours. Prerequisite(s): CS 100 and CS 152 with grades of “C-” or better; ENGR 180W; 8 additional upper-division units in Computer Science. Covers the planning, design, implementation, testing, and documentation of a compiler-related system. Incorporates techniques from previous related courses. Emphasizes professional and ethical responsibilities; the need to stay current on technology; and its global impact on economics, society, and the environment.
CS 179FProject in Computer Science - Operating Systems Discussion, 1 hour; laboratory, 3 hours; research, 3 hours; extra reading, 3 hours. Prerequisite(s): CS 153 with a grade of “C-” or better; ENGR 180W; 8 additional upper-division units in Computer Science. CS 160 is recommended. Covers the planning, design, implementation, testing, and documentation of an operating systems-related system. Incorporates techniques from previous related courses. Emphasizes professional and ethical responsibilities; the need to stay current on technology; and its global impact on economics, society, and the environment.
CS 179GProject in Computer Science - Database SystemsDiscussion, 1 hour; laboratory, 3 hours; research, 3 hours; extra reading, 3 hours.Prerequisite(s): CS 100 and CS 166 with grades of “C-” or better; ENGR 180W; 8 additional upper-division units in Computer Science. Covers the planning, design, implementation, testing, and documentation of a database-related system. Incorporates techniques from previous related courses. Emphasizes professional and ethical responsibilities; the need to stay current on technology; and its global impact on economics, society, and the environment.
CS 179IProject in Computer Science - NetworksDiscussion, 1 hour; laboratory, 3 hours; research, 3 hours; extra reading, 3 hours. Prerequisite(s): CS 100 and CS 164 with grades of “C-” or better; ENGR 180W; 8 additional upper-division units in Computer Science. Covers the planning, design, implementation, testing, and documentation of a network-related system. Incorporates techniques from previous related courses. Emphasizes professional and ethical responsibilities; the need to stay current on technology; and its global impact on economics, society, and the environment.
CS 179NProject in Computer Science - Graphics and Electronic GamesDiscussion, 1 hour; laboratory, 9 hours. Prerequisite(s): CS 130 with a grade of “C-” or better; ENGR 180W; 8 additional upper-division units in Computer Science. Covers the planning, design, implementation, testing, and documentation of a graphics- or electronic game-related system. Incorporates using techniques presented in previous related courses. Emphasizes professional and ethical responsibilities; the need to stay current on technology; and its global impact on economics, society, and the environment.
CS 180Introduction to Software EngineeringLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100. A study of software engineering techniques for the development, maintenance, and evolution of large software systems. Topics include requirements and specification; system design and implementation; debugging, testing, and quality assurance; reengineering; project management; software process; tools; and environments.
CS 181Principles of Programming LanguagesLecture, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 061, CS 100, CS 111, CS 150. Covers the principles of programming language design. Includes the study and comparison of several programming languages, their features, and their implementations.
CS 183UNIX System AdministrationSeminar, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 100. Explores the technical aspects of system administration on a Unix system, including advanced Unix. Includes managing system devices, operating system installation, communications, and networking.