Apr 29, 2024  
2018-2019 Undergraduate and Graduate Catalog 
    
2018-2019 Undergraduate and Graduate Catalog [ARCHIVED CATALOG]

Computer Engineering and Computer Sciences (CECS) Courses


Computer Engineering and Computer Science

Courses

Computer Engineering and Computer Science

  • CECS 100 - Critical Thinking in the Digital Information Age


    (3 units)

    Prerequisite/Corequisite: ENGL 100  or GE Composition (Area A1).

    Help students develop critical thinking skills using technical software. Main topics include: identifying engineering issues for investigation, developing planning and problem solving strategies, locating pertinent information and examples, critically analyzing these sources, forming and testing hypotheses, synthesizing and organizing results for effective communication, and developing transferable problem solving skills.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 105 - Introduction to Computer Engineering and Computer Science


    (1 unit)

    Introduction to the fields of computer engineering and computer science. Current and future trends and challenges in various fields of computing. Social, ethical and economical issues related to computing technology. Exploration of career and professional development opportunities.

    Letter grade only (A-F). (Lecture 1 hour) Same Course as CECS 105H . Not open for credit to students with credit in: CECS 105H .
  • CECS 105H - Introduction to Computer Engineering and Computer Science


    (1 unit)

    Introduction to the fields of computer engineering and computer science. Current and future trends and challenges in various fields of computing. Social, ethical and economical issues related to computing technology. Exploration of career and professional development opportunities.

    Letter grade only (A-F). Same course as CECS 105 . Open to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 105 . (Lecture 1 hour).
  • CECS 110 - Beginning Web Design


    (3 units)

    Introduction to HTML and CSS using modern tools, following the W3C guidelines for coding. Web sites designed with basic components and layouts. Overview of graphics, video, sound and commonly used tools.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 174 - Introduction to Programming and Problem Solving


    (3 units)

    Prerequisite: CECS 100  and MATH 113  (or equivalent) all with a grade of “C” or better.
    Introduction to basic concepts of computer science and fundamental techniques for solving problems using the Python programming language. Variables, data types, conditional statements, loops and arrays. Programming style. Applications to numerical and non-numerical problems.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 200 - Intermediate Web Design


    (3 units)

    Prerequisite: CECS 110  with a grade of “C” or better.
    Intermediate HTML and CSS using modern tools, following the W3C guidelines for coding. Web sites designed with popular frameworks and content management systems such as Bootstrap and WordPress. 

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 201 - Computer Logic Design I


    (3 units)

    Prerequisite: MATH 113  or equivalent all with a grade of “C” or better.
    Basic topics in combinational and sequential switching circuits with applications to the design of digital devices. Introduction to Electronic Design Automation (EDA) tools. Laboratory projects with Field Programmable Gate Arrays (FPGA).

    Letter grade only (A-F). (Lecture 2 hours, lab 3 hours)
  • CECS 202 - The Digital Information Age


    (3 units)

    Prerequisite: GE Foundation requirements.
    The introduction and use of common-place digital and electronic devices and how this technology affects our society. Topics include advances in 3D imaging, 3D printing, Processors, Memory, Security and Privacy.

    Letter grade only (A-F). (Lecture 3 hours)
  • CECS 211 - Principles of Computer Engineering I


    (3 units)

    Prerequisite: MATH 122  with a grade of “C” or better.
    Basic principles of analysis and design of computer-based circuits. Application of transistors, logic families, digital, devices in computer and embedded processor interfacing, importance of phasors and the complex plane. Basic DC/AC circuit fundamentals. Laboratory safety.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 225 - Digital Logic and Assembly Programming


    (3 units)

    Prerequisite: CECS 174  or equivalent with a grade of “C” or better
    An introductory course in Digital Logic and Assembly Programming covering number representation, digital codes, Boolean Algebra, combinatorial logic design, sequential logic design, programmable logic devices, internal organization of microprocessor and microcontroller systems and programming in assembly language.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours)
  • CECS 228 - Discrete Structures with Computing Applications


    (3 units)

    Prerequisites: CECS 174  and MATH 113  or equivalent all with a grade of “C” or better.
    An introduction to discrete mathematics with applications towards computing. Topics include sets, functions, logic, relations, graphs, trees, recursion, combinatorics, and mathematical reasoning.

    Letter grade only (A-F). (Lecture 2 hours, laboratory/problem session 3 hours). Same course as CECS 228H . Not open for credit to students with credit in CECS 228H .
  • CECS 228H - Discrete Structures with Computing Applications


    (3 units)

    Prerequisites: CECS 174  and MATH 113  or equivalent all with a grade of “C” or better.
    An introduction to discrete mathematics with applications towards computing. Topics include sets, functions, logic, relations, graphs, trees, recursion, combinatorics, and mathematical reasoning.

    Letter grade only (A-F). (Lecture 2 hours, laboratory/problem session 3 hours) CECS 228H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 228 .
  • CECS 229 - Discrete Structures with Computing Applications II


    (3 units)

    Prerequisites: MATH 123  and CECS 228  both with a Grade of “C” or better
    This is the second course in a two-course sequence in computing applications of discrete structures. Topics include applications of computer arithmetic and matrices in computer systems. Programming assignments in Python will be provided.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours). Same course as CECS 229H . Not open for credit to students with credit in CECS 229H .
  • CECS 229H - Discrete Structures with Computing Applications II


    (3 units)

    Prerequisites: MATH 123  and CECS 228  both with a Grade of “C” or better
    This is the second course in a two-course sequence in computing applications of discrete structures. Topics include applications of computer arithmetic and matrices in computer systems. Programming assignments in Python will be provided.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 229H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 229 .
  • CECS 262 - Introduction to Embedded System Programming


    (3 units)

    Prerequisites: CECS 174  and CECS 201  all with a grade of “C” or better.
    Introduction to embedded system architecture, memory organization and programming using C. Interfacing with external I/O devices, Use of internal special function registers. Development tools and extended C instructions unique to embedded systems. Course will be taught using an embedded processor development board.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours.)
  • CECS 271 - Introduction to Numerical Methods


    (3 units)

    Prerequisites: CECS 229  or MATH 247  with a grade of “C” or better.
    Numerical methods for algebraic equations, computer arithmetic, error propagation, fixed and arbitrary precision, numerical integration and differentiation, ordinary differential equations, Fourier Transform, discrete Fourier Transform. Programming assignments for implementation.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 274 - Object Oriented Programming and Data Structures


    (3 units)

    Prerequisite: CECS 174  with a grade of “C” or better.
    Disciplined methods of design, coding and testing using the Java programming language. Data abstraction, object-oriented design. Introduction to data structures (linked lists, stacks, queues and trees.) Recursion. Sorting and searching.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours). Same course as CECS 274H . Not open for credit to students with credit in CECS 274H .
  • CECS 274H - Object Oriented Programming and Data Structures


    (3 units)

    Prerequisite: CECS 174  with a grade of “C” or better.
    Disciplined methods of design, coding and testing using the Java programming language. Data abstraction, object-oriented design. Introduction to data structures (linked lists, stacks, queues and trees.) Recursion. Sorting and searching.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 274H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 274 .
  • CECS 275 - Programming and Data Structures in C++


    (3 units)

    Prerequisite: CECS 174  or equivalent with a grade of “C” or better
    Disciplined methods of design, coding and testing using the C++ programming language. Data abstraction and class design. Introduction to data structures (linked lists, stacks, queues and trees.) Recursion. Sorting and searching.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 277 - Object Oriented Application Development


    (3 units)

    Prerequisite: CECS 274  with a grade of “C” or better.
    Disciplined methods of design, coding and testing using the Java programming language. Topics include the structure and semantics of Java classes, data abstraction, encapsulation, cohesion, coupling, information hiding, object-oriented design, inheritance, interfaces, composition, delegation, polymorphism and design patterns.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 278 - Cyber Security Principles


    (3 units)

    Prerequisite: CECS 100 
    Principles, mechanisms, implementation, and sound practices of computer security and data protection. Cryptography. Authentication and access control. Internet security. Malicious software. Common vulnerabilities. Practical security in everyday life.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 282 - C++ for Java Programmers


    (3 units)

    Prerequisite: CECS 274  with a grade of “C” or better.
    Structured and Object Oriented Programming in C++. Common features and differences between Java and C++. Pointers, references, and memory management, stream I/O, classes, operator overloading, exception handling, STL.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 282H . Not open for credit to students with credit in CECS 282H .
  • CECS 282H - C++ for Java Programmers


    (3 units)

    Prerequisite: CECS 274  with a grade of “C” or better.
    Structured and Object Oriented Programming in C++. Common features and differences between Java and C++. Pointers, references, and memory management, stream I/O, classes, operator overloading, exception handling, STL.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 282H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 282 .
  • CECS 300 - Design of Dynamic Web Sites


    (3 units)

    Prerequisite: CECS 200  with a grade of “C” or better.
    Design of dynamic web sites using modern tools. Interdisciplinary group project with a focus on creating an accessible Web site for a client. Software used will give students experience in local web hosting and understanding of portability.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 301 - Computer Logic Design II


    (3 units)

    Prerequisites: CECS 174 , CECS 201  all with a grade of “C” or better.
    Sequential logic emphasizing Finite State Machine design & analysis, timing analysis of sequential logic, Introduction to Data Path, Control and Memory. Use of Electronic Design Automation (EDA) tools for design, simulation, verification. Laboratory projects with Field Programmable Gate Arrays (FPGA’s).

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 301H . Not open for credit to students with credit in CECS 301H .
  • CECS 301H - Computer Logic Design II


    (3 units)

    Prerequisites: CECS 174 , CECS 201  all with a grade of “C” or better.
    Sequential logic emphasizing Finite State Machine design & analysis, timing analysis of sequential logic, Introduction to Data Path, Control and Memory. Use of Electronic Design Automation (EDA) tools for design, simulation, verification. Laboratory projects with Field Programmable Gate Arrays (FPGA’s).

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 301H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 301 .
  • CECS 302 - Introduction to Computer Forensics


    (3 units)

    Prerequisite: CECS 100 
    Introduction to principles of digital forensics, evidence collection, preservation and analysis. Topics include investigation principles, data acquisition, OS and memory recovery/analysis, computer network forensics, mobile forensics, legal consideration, ethics, digital evidence control and documentation.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours).
  • CECS 303 - Networks and Network Security


    (3 units)

    Prerequisite: CECS 278 
    An examination of common computer security threats; fundamental techniques for implementing secure software systems and networks; practical experience in attacking and defending networked systems.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours).
  • CECS 311 - Principles of Computer Engineering II


    (3 units)

    Prerequisites: CECS 201  and CECS 211  all with a grade of “C” or better.
    Embedded system components. Bipolar and MOS devices and switching circuits. Embedded systems signal processing with operational amplifiers. Digital/analog interfacing including A/D and D/A converters. Schematic capture, analysis and implementation of embedded signal processing algorithms. Fundamentals of digital communication.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 323 - Database Fundamentals


    (3 units)

    Prerequisites: CECS 228  and (CECS 277  or CECS 282 ) all with a grade of C or better.
    Fundamental topics on database management. Topics include entity-relationship models, database design, data definition language, the relational model, data manipulation language, database application programming and normalization.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 326 - Operating Systems


    (3 units)

    Prerequisites: CECS 275  or CECS 282  and CECS 341  or CECS 346  all with a grade of “C” or better.
    The structure and functions of operating systems. Interrupt handling, processes and interprocess communication, memory management, resource scheduling, information sharing and protection. Project implementation in C/C++.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 327 - Introduction to Networks and Distributed Computing


    (3 units)

    Prerequisite: CECS 326  with a grade of “C” or better.
    Introduction to Distributed Computing and Interprocess Communication. Networking Protocols. Client Server Paradigm. Peer to Peer Networking. Sockets and the Socket API. Distributed Objects. Coordination, Agreements and Distributed Transactions.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 327H . Not open for credit to students with credit in CECS 327H .
  • CECS 327H - Introduction to Networks and Distributed Computing


    (3 units)

    Prerequisite: CECS 326  with a grade of “C” or better.
    Introduction to Distributed Computing and Interprocess Communication. Networking Protocols. Client Server Paradigm. Peer to Peer Networking. Sockets and the Socket API. Distributed Objects. Coordination, Agreements and Distributed Transactions.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 327H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 327 .
  • CECS 328 - Data Structures and Algorithms


    (3 units)

    Prerequisite: CECS 228  and (CECS 274  or CECS 275 ), all with a grade of “C” or better.
    Corequisite: CECS 277 .
    A broad view of data structures and the structure-preserving operations on them. Abstract data types, algorithms, complexity. Programming projects to exemplify these concepts.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours.) Same course as CECS 328H . Not open for credit to students with credit in CECS 328H .
  • CECS 328H - Data Structures and Algorithms


    (3 units)

    Prerequisite: CECS 228  and (CECS 274  or CECS 275 ), all with a grade of “C” or better.
    Corequisite: CECS 277 .
    A broad view of data structures and the structure-preserving operations on them. Abstract data types, algorithms, complexity. Programming projects to exemplify these concepts.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 328H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 328 .
  • CECS 341 - Computer Architecture and Organization


    (3 units)

    Prerequisites: CECS 225  or CECS 285 with a grade of “C” or better.
    Review of logic design. Instruction set architecture. Arithmetic logic units. Data path and control. Pipelining and performance. Memory system organization and design. Virtual memory and paging. I/O interfacing. Vector and array processing. Distributed computing and supercomputing. Contemporary computer designs.

    Letter grade only (A-F). (Lecture 2 hours, laboratory, 3 hours)
  • CECS 343 - Introduction to Software Engineering


    (3 units)

    Prerequisites: CECS 277  or CECS 282  or CECS 275  all with a grade of “C” or better.
    Principles of software engineering, UML, modeling large software systems, requirements elicitation, object oriented analysis and design using UML, introduction to design patterns, implementation of large systems, software testing, project management, the software lifecycle. Semester long programming project.

    Letter grade only (A-F). (Lecture 2 hours, lab 3 hours)
  • CECS 346 - Microprocessors and Controllers I


    (3 units)

    Prerequisites: CECS 211  and CECS 262  all with a grade of “C” or better.
    Intro microprocessor/controller, embedded programming and design. Basic computer organization, representation of information and instruction, addressing techniques, input/output, assembly language programming. Introduction to assemblers, linkage editors and loaders. Study of the 8051. Design of microprocessor-based systems.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 346H . Not open for credit to students with credit in CECS 346H .
  • CECS 346H - Microprocessors and Controllers II


    (3 units)

    Prerequisites: CECS 211  and CECS 262  all with a grade of “C” or better.
    Intro microprocessor/controller, embedded programming and design. Basic computer organization, representation of information and instruction, addressing techniques, input/output, assembly language programming. Introduction to assemblers, linkage editors and loaders. Study of the 8051. Design of microprocessor-based systems.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 346H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 346 .
  • CECS 347 - Microprocessors and Controllers II


    (3 units)

    Prerequisites: CECS 311 , and CECS 346  all with a grade of “C” or better.
    Study of embedded processor applications and interfacing. Embedded systems design, control of external devices, embedded programming in C and assembly. A/D and D/A converters, digital signal processing, motor and LCD controllers. Laboratory implementation of embedded designs and hardware-assisted debugging.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 361 - Digital Design Techniques and Verification


    (3 units)

    Prerequisites: CECS 301  and CECS 311 , all with a grade of “C” or better.
    Discussion of advanced techniques for synchronous digital design, verification of digital designs utilizing test fixtures, and the confirmation of meeting the physical constraints of timing, area and power, with an emphasis on timing.

    Letter grading only (A-F). (Lecture 2 hours, laboratory 3 hours).
  • CECS 378 - Introduction to Computer Security Principles


    (3 units)

    Prerequisites: CECS 229  and CECS 274  or CECS 275  all with a grade of “C” or better.
    An introduction to the fundamentals of cryptography and information and computer security. Basic concepts, theories and protocols in computer security. Basic cryptography, software security, operating system security, database security, network security, human factors, social engineering, digital forensics, privacy and anonymity.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours)
  • CECS 406 - Selected Topics in Computer Science


    (3 units)

    Prerequisite: Senior standing in the computer science major.
    Each offering is based upon an area of computer science and technology in which recent advances have been made.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) May be repeated to a maximum of 6 units with different topics in different semesters. Topics announced in the Schedule of Classes.
  • CECS 410 - Computers and Networks


    (3 units)

    Prerequisite: Course design assumes familiarity with computers.
    Gain practical, hands-on experience in installing hardware and software on a PC. Learn what a computer network is and how it is similar to the telephone network. Learn the parts that make up a computer and a network.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 412 - Introduction to Computer Network Architectures


    (3 units)

    Prerequisite: Familiarity with computers
    Beginning course in computer networking designed to provide a grasp of network architectures through lecture/hands-on laboratory assignments. Overview of networking concepts and design essentials. Networking media and NICs. Network communications/protocols focusing on TCP/IP. Local area networks. Networking administration. Networking problems.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 419 - Theory of Computation


    (3 units)

    Prerequisite: CECS 328  with a grade of “C” or better.
    Finite Automata and regular expressions. Pushdown automata and context-free languages. Turing machines and computability. Computational complexity.

    Letter grade only (A-F). (Lecture-problems 3 hours) CECS 519  Additional projects required for CECS 519 .
  • CECS 424 - Organization of Programming Languages


    (3 units)

    Prerequisites: CECS 326  and CECS 328  all with a grade of “C” or better.
    Understanding the variety of programming languages and the design trade-offs between current programming language paradigms. Comparison of programming languages in their design, implementation, and run-time supports. Includes programming projects.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 424H . Not open for credit to students with credit in CECS 424H .
  • CECS 424H - Organization of Programming Languages


    (3 units)

    Prerequisites: CECS 326  and CECS 328  all with a grade of “C” or better.
    Understanding the variety of programming languages and the design trade-offs between current programming language paradigms. Comparison of programming languages in their design, implementation, and run-time supports. Includes programming projects.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 424H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 424 .
  • CECS 428 - Analysis of Algorithms


    (3 units)

    Prerequisite: CECS 328  with a grade of “C” or better.
    Applications of standard combinatorial techniques to applied programming problems. Rigorous analysis of correctness/complexity of algorithms. Advanced graph algorithms are emphasized. Topics include shortest paths on graphs, sorting, string matching, union find problem, divide-and-conquer technique, and weighted-edge problem.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 429 - Search Engine Technology


    (3 units)

    Prerequisites: CECS 323  and CECS 328 , MATH 380  or E E 381  all with a grade of “C” or better.
    Models, algorithms, and evaluation of the retrieval of information from a collection of documents. Document preprocessing. Indexing and searching. Retrieval evaluation. Search engines.

    Letter grade only (A-F). Additional projects required for CECS 529 . (Lecture 2 hours, laboratory 3 hours) CECS 529 
  • CECS 440 - Computer Architecture


    (3 units)

    Prerequisites: CECS 346  and CECS 361 , all with a grade of “C” or better.
    Review of logic design. Register transfer and micro-operations. Basic computer organization. Central processor organization. Microprogram control organization. Arithmetic processor design. Arithmetic algorithms. Input-output organization. Memory organization.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 440H . Not open for credit to students with credit in CECS 440H .
  • CECS 440H - Computer Architecture


    (3 units)

    Prerequisites: CECS 346  and CECS 361 , all with a grade of “C” or better.
    Review of logic design. Register transfer and micro-operations. Basic computer organization. Central processor organization. Microprogram control organization. Arithmetic processor design. Arithmetic algorithms. Input-output organization. Memory organization.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 440H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 440 .
  • CECS 444 - Compiler Construction


    (3 units)

    Prerequisites: CECS 328  and CECS 341 , all with a grade of “C” or better.
    Syntax directed compiler study. Organization of a compiler and overall design: parsing, semantic analysis, optimization and code generation.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 445 - Software Design and Architecture


    (3 units)

    Prerequisites: CECS 343  with a grade of “C” or better and senior standing.
    In-depth look at software design, design patterns, frameworks, architectures and middleware architectures. Component based design including COM, Corba, and .Net. Fundamentals of software metrics, measuring software qualities. Basics of software evolution, reengineering, and reverse engineering. A semester long team project.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 447 - Microprocessors and Controllers III


    (3 units)

    Prerequisite: CECS 347  with a grade of “C” or better.
    Embedded system applications and techniques. Real-time multitasking systems, schedulers, kernels, and operating systems for embedded processors. Advanced I/O technologies - CAN, I2C, Ethernet. Embedded Internet applications. Polling vs. interrupt handling. Lab implementation of embedded designs and hardware-assisted debugging.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 448 - User Interface Design


    (3 units)

    Prerequisite: CECS 343  with a grade of “C” or better or consent of instructor.
    Evaluation, design and programming of user interface systems. Fundamentals of human cognition, system characteristics, and the interaction between humans and systems. Usability methods and user/task-centered design. Tools for designing and building user interfaces, with emphasis on rapid applications development.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 449 - Computer Graphics


    (3 units)

    Prerequisites: CECS 328  and CECS 229  or MATH 247  all with a grade of “C” or better.
    Introduction to the theory and practice of computer graphics, Graphics systems, 2-D and 3-D modeling, transformations, viewing transformations, projections, rendering techniques.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 450 - Data Visualization


    (3 units)

    Prerequisite: CECS 343  with a grade of “C” or better
    Introduction to various techniques in data visualization supporting the analytical process of turning data into wisdom. Introduction to general concepts, principles, and practices with specific visualization designs. Overview of analytical techniques, analytical interaction, and navigation design. Programming assignments.

    Letter grading only (A-F). (Lecture 2 hours, laboratory 3 hours).
  • CECS 451 - Artificial Intelligence


    (3 units)

    Prerequisites: CECS 328  with a grade of “C” or better.
    Introduction to the history and implementation of artificial intelligence agents. Topics include search, constraint satisfaction, game-playing, logical agents, belief networks, optimal sequential decision systems. Project implementation.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 453 - Mobile Application Development


    (3 units)

    Prerequisite: CECS 328  with a grade of “C” or better or consent of the instructor.
    Languages and application programming interfaces for mobile device platforms. Development of thick and thin client applications for mobile devices.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours)
  • CECS 455 - Introduction to Game Programming


    (3 units)

    Prerequisite: CECS 328  with a grade of “C” or better or consent of instructor.
    Introduction to game programming and graphics. “Slow” games. Realtime games with no adversary. Adversarial real-time games in 2-D.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 456 - Machine Learning


    (3 units)

    Prerequisites: E E 381  or STAT 381  with a grade of “C” or better.
    An introduction to machine learning and its applications, including supervised, unsupervised learning and deep learning. Main topics include regression, classification and neural networks. Programming assignments.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours).
  • CECS 460 - System on Chip Design


    (3 units)

    Prerequisite: CECS 361  with a grade of “C” or better.
    Complete System on Chip (SOC) design flow from design specification to working SOC. Creation of RTL level modules designed for reuse, integration of Intellectual Property (IP) for RTL and physical level IP, IC verification, creation of self-checking test benches for designs.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 460H . Not open for credit to students with credit in CECS 460H .
  • CECS 460H - System on Chip Design


    (3 units)

    Prerequisite: CECS 361  with a grade of “C” or better.
    Complete System on Chip (SOC) design flow from design specification to working SOC. Creation of RTL level modules designed for reuse, integration of Intellectual Property (IP) for RTL and physical level IP, IC verification, creation of self-checking test benches for designs.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 460H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 460 .
  • CECS 461 - Hardware/Software Co-design


    (3 units)

    Prerequisite: CECS 341  or CECS 440  all with a grade of “C” or better.
    Introduction to top-down methods for hardware/software system-on-chip co-design. Design flow - system specification, software implementation, hardware synthesis, system design, and verification. Process optimization with various design decisions emphasized. Projects/case studies using system-level design methods and tools.

    Letter grade only (A-F). Additional projects required for CECS 561 . (Lecture 2 hours, laboratory 3 hours) CECS 561 
  • CECS 463 - System on Chip (SOC) Applications


    (3 units)

    Prerequisite: CECS 361 with a grade of “C” or better.
    System on Chip (SOC) design applications. Study of a variety of signal processing SOC designs and ASIC algorithms. Class projects emphasizing hardware/software integration with use of FPGA/CPLD devices. Design reviews, specification, team design implementation with project planning and tracking for system level design applications.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 470 - Web Programming and Accessibility


    (3 units)

    Prerequisites: CECS 323  and CECS 343  all with a grade of “C” or better.
    Introduction to World-Wide Web development. Accessibility issues. Web architecture, standards, and programming, emphasizing XML technologies and cascading style sheets. Visual design principles and information architecture. Client-side and server-side programming and protocols. Development for adaptive technologies and mobile devices.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 474 - Computer Network Interoperability


    (3 units)

    Prerequisite: CECS 326  with a grade of “C” or better.
    Overview of computer network theory and practice from a systems perspective. Topics include network infrastructure, local area network (LAN) protocols, wide area network (WAN) protocols, switching technologies, Internet Protocol (IP), Transmission Control Protocol (TCP), network security, and network configuration, design, and performance.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 475 - Software Development with Frameworks


    (3 units)

    Prerequisite: CECS 343  with a grade of “C” or better.
    Introduction to enterprise application development utilizing a modern software framework. Topics include large-scale software design, framework components, data management, events, extensibility, user interfaces, web services, and web applications. Includes programming projects.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 476 - System and Network Administration


    (3 units)

    Prerequisites: CECS 326  with a grade of “C” or better.
    Introduction to the management and administration of Unix systems and TCP/IP networks. Managing users, local and network file systems, electronic mail, print queues. Establishing and managing a network.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 478 - Introduction to Computer Security


    (3 units)

    Prerequisite: CECS 328  or CECS 346  with a grade of “C” or better.
    Controlling the risk of computer security. Security threats and vulnerabilities in the development and use of computer systems. Tools and controls that can reduce or block these threats. Law, privacy and ethics.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) Same course as CECS 478H . Not open for credit to students with credit in CECS 478H .
  • CECS 478H - Introduction to Computer Security


    (3 units)

    Prerequisite: CECS 328  or CECS 346  with a grade of “C” or better.
    Controlling the risk of computer security. Security threats and vulnerabilities in the development and use of computer systems. Tools and controls that can reduce or block these threats. Law, privacy and ethics.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours) CECS 478H is open only to students in the Engineering Honors Program. Additional assignments/projects adding depth to the course materials required for Engineering Honors students. Not open for credit to students with credit in CECS 478  .
  • CECS 490A - Computer Engineering Senior Project I


    (3 units)

    Prerequisites: CECS 347  with a grade of “C” or better, senior standing.
    The first in a two-course capstone senior project in computer engineering that fulfills GE integrative learning. Students work in teams to define a problem, complete a design and provide both a written report and a multimedia presentation at the end of the semester.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 490B - Computer Engineering Senior Project II


    (3 units)

    Prerequisites: CECS 490A  with a grade of “C” or better.
    Second of a two-semester capstone senior project in computer engineering that fulfills GE integrative learning. Student teams will build, program and verify operation of project started in prior design course. Student teams must submit a written report, give an oral multimedia presentation and provide a working demonstration.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 491A - Software Engineering Project I


    (3 units)

    Prerequisites: CECS 323 , CECS 343  and ENGR 350 , all with a grade of “C” or better.
    First course in a two-course capstone design sequence that fulfills integrative learning. Design of a commercial grade software application including requirements analysis, functional, architectural and detailed design, emphasizing written communication, teamwork and the Object-Oriented Methodology.

    Letter grade only (A-F) (Lecture 2 hours, laboratory 3 hours)
  • CECS 491B - Software Engineering Project II


    (3 units)

    Prerequisite: CECS 491A  with a grade “C” or better.
    Second course in a two-course capstone design sequence that fulfills integrative learning. Implementation, testing, packaging and deployment of the system designed in CECS 491A  emphasizing written communication, teamwork and the Object- Oriented Methodology.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 492A - Distributed and Cloud Computing Project I


    (3 units)

    Prerequisites: CECS 326 , CECS 343  and ENGR 350 , all with a grade of “C” or better.
    First course in a two-course capstone design sequence. Design of a distributed or cloud computing application. Design experience, including detailed requirement analysis, design decisions, teamwork, written reports and oral presentation.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 492B - Distributed and Cloud Computing Project II


    (3 units)

    Prerequisite: CECS 492A  with a grade “C” or better.
    Second course in a two-course capstone design sequence. Implementation of a distributed or cloud computing application. Implementation experience, including detailed documentation, testing and evaluation of the implementation, teamwork, written reports and oral presentation.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 493A - Database Web Application Project I


    (3 units)

    Prerequisites: CECS 323 , CECS 343  and ENGR 350 , all with a grade of “C” or better.
    First of a two-course capstone senior project in computer science that fulfills GE integrative learning. Propose, design, and prototype a data-intensive web application. Object-oriented modeling, analysis and software engineering. Teamwork, written report and oral presentation required.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 493B - Database Web Application Project II


    (3 units)

    Prerequisite: CECS 493A  with a grade “C” or better .
    Second of a two-course capstone senior project in computer science that fulfills GE integrative learning. Design, implement, test and deploy a data-intensive web application. Requires object oriented and test-driven development. Teamwork, written report and oral presentation required.

    Letter grade only (A-F). (Lecture 2 hours, laboratory 3 hours)
  • CECS 495 - Computational Physiology


    (3 units)

    Prerequisite: E E 381  with a grade of “C” or better.
    This course will introduce students to cardiovascular (heart) and cerebrovascular (brain) systems and signals, and the computational methods to analyze related signals, and detect/predict a physiological event of interest.

    Letter Grade only (A-F). (Lecture 2 hours, Laboratory 3 hours). Same course as: E E 495 . Not open for credit to students with credit in E E 495 .
  • CECS 496 - Computer Science Problem Solving


    (1 unit)

    Prerequisites: CECS 274  with a grade of “C” or better and consent of instructor.
    Problem solving in Computer Science. Theory necessary to solve computer science problems and the solutions to the problems. Problems studied will involve applications of graph theory, data structures, recursion, and algorithms.

    Letter grade only (A-F). (Lecture 1 hour) May be repeated to a maximum of 6 units in different semesters.
  • CECS 497 - Directed Studies


    (1-3 units)

    Prerequisite: Consent of instructor.
    Assigned study in topics in current computer literature or computer-related projects with a final report.

    May be repeated to a maximum of 6 units with written consent of the Department Chair.
  • CECS 519 - Theory of Computation


    (3 units)

    Prerequisite: CECS 328  with a grade of “C” or better.
    Finite Automata and regular expressions. Pushdown automata and context-free languages. Turing machines and computability. Computational complexity.

    Letter grade only (A-F). Additional projects required for CECS 519. (Lecture-problems 3 hours) CECS 419 
  • CECS 521 - Database Architecture


    (3 units)

    Prerequisites: CECS 328  and CECS 323  or CECS 421 all with a grade of “C” or better.
    Relational database design theory-a rigorous approach. Security, recovery, transaction management, distributed databases and query optimization. Master’s students register in CECS 521 or CECS 621 ; Ph.D. students register in CECS 621 .

    Letter grade only (A-F). Additional projects required for CECS 621 . (Lecture-problems 3 hours) CECS 621 
  • CECS 524 - Advanced Topics in Programming Languages


    (3 units)

    Prerequisite: CECS 424 with a grade of “C” or better.
    Intensive study of languages of current interest which support object-oriented, client-server, and multimedia applications (e.g. JAVA). Master’s students register in CECS 524 or CECS 624 ; Ph.D. students register in CECS 624 .

    Letter grade only (A-F). Additional projects required for CECS 624 . (Lecture 2 hours, Laboratory 3 hours) CECS 624 
  • CECS 526 - Advanced Operating Systems


    (3 units)

    Prerequisites: CECS 228 and CECS 326 all with a grade of “C” or better.
    Theoretical foundations of concepts applied in the design of operating systems. Control of concurrent processes, deadlocks, mutual exclusion, virtual memory, resource management and scheduling. Master’s students register in CECS 526 or CECS 626; Ph.D. students register in CECS 626.

    Letter grade only (A-F). Additional projects required for CECS 626. (Lecture 2 hours, Laboratory 3 hours) CECS 626
  • CECS 528 - Advanced Analysis of Algorithms


    (3 units)

    Prerequisites: CECS 328 , MATH 380  or E E 381  all with a grade of “C” or better.
    Theoretical analysis of algorithms. Divide and conquer, dynamic programming and greedy algorithms; basic search and traversal techniques including search trees; sorting; matrix manipulations; NP-completeness. Master’s students register in CECS 528 or CECS 628 ; Ph.D. students register in CECS 628 .

    Letter grade only (A-F). Additional projects required for CECS 628 . (Lecture 2 hours, Laboratory 3 hours) CECS 628 
  • CECS 529 - Search Engine Technology


    (3 units)

    Prerequisites: CECS 323  and CECS 328 , MATH 380  or E E 381  all with a grade of “C” or better.
    Models, algorithms, and evaluation of the retrieval of information from a collection of documents. Document preprocessing. Indexing and searching. Retrieval evaluation. Search engines.

    Letter grade only (A-F). Additional projects required for CECS 529. (Lecture 2 hours, laboratory 3 hours) CECS 429 
  • CECS 530 - Advanced Computer Architecture I


    (3 units)

    Prerequisite: CECS 341  or CECS 440  all with a grade of “C” or better.
    Fundamentals of computer architecture. Parallelism, Instruction Level Parallelism, Pipelining. Hazards and their management, Branch Prediction, Dynamic Scheduling, Multiple Instructions, Multithreading, Data Level Parallelism, SIMD, Graphic Processing Units, Memory Hierarchy, Cache, Virtual Memory, Protection. Master’s students register in CECS 530 or CECS 630 ; Ph.D. students register in CECS 630 .

    Letter grade only (A-F). Additional projects required for CECS 630 . (Lecture 2 hours, Laboratory 3 hours) CECS 630 
  • CECS 531 - Advanced Computer Architecture II


    (3 units)

    Prerequisite: CECS 530  with a grade of “C” or better.
    Processor Level Parallelism, Interconnection of Processors, Shared and Distributed Memory, Cache Coherence Protocols and Synchronization, Multicomputers, Network Topologies, Shared Media versus Switched Media, Routing, Arbitration and Switching, Clusters, Warehouse Scale Computers, Cloud Computing, Memory Hierarchy, Improving Cache Performance. Master’s students register in CECS 531 or CECS 631 ; Ph.D. students register in CECS 631 .

    Letter grade only (A-F). Additional projects required for CECS 631 . (Lecture 2 hours, Laboratory 3 hours) CECS 631 
  • CECS 532 - Memory Design and Implementation


    (3 units)

    Prerequisite: CECS 341  or CECS 440  all with a grade of “C” or better.
    Logic design and operation, physical design and operation, performance characteristics, design trade-offs, energy consumption of modern memory hierarchies, memory errors and error correction.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours)
  • CECS 542 - Requirements Engineering


    (3 units)

    Prerequisite: Graduate Standing
    This course aims to equip students to develop techniques of software-intensive systems through successful requirements analysis techniques and requirements engineering. Students learn systematic process of developing requirements through cooperative problem analysis, representation, and validation.

    Letter grade only (A-F). (Lecture 2 hours, Laboratory 3 hours).
  • CECS 543 - Advanced Software Engineering


    (3 units)

    Prerequisite: CECS 343  with a grade of “C” or better.
    Study of software engineering as a broad, problem-solving discipline. Includes structured programming and software project management. Master’s students register in CECS 543 or CECS 643 ; Ph.D. students register in CECS 643 .

    Letter grade only (A-F). Additional projects required for CECS 643 . (Lecture 2 hours, Laboratory 3 hours) CECS 643 
  • CECS 544 - Software Testing and Verification


    (3 units)

    Prerequisite: CECS 543  with a grade of “C” or better.
    Testing/verification techniques for software development including black box, white box, incremental, top-down and bottom-up, static and dynamic, performance, regression, thread, and stress testing. Object-oriented software testing with a hierarchical approach. Metrics for test, and verification will be introduced. Master’s students register in CECS 544 or CECS 644 ; Ph.D. students register in CECS 644 .

    Letter grade only (A-F). Additional projects required for CECS 644 . (Lecture 2 hours, Laboratory 3 hours) CECS 644 
  • CECS 545 - Software Architecture


    (3 units)

    Prerequisite: CECS 543  with a grade of “C” or better.
    Includes architectural styles, pipes and filters, data abstraction and object-oriented organization, event-based, implicit invocation, layered systems, repositories, interpreters, process control, distributed processes, domain-specific software & heterogeneous architectures. Component-based design patterns & case studies. Master’s students register in CECS 545 or CECS 645 ; Ph.D. students register in CECS 645 .

    Letter grade only (A-F). Additional projects required for CECS 645 . (Lecture-problems 3 hours) CECS 645 
  • CECS 546 - Fault Tolerant Computing Systems


    (3 units)

    Prerequisite: CECS 341  or CECS 440  with a grade of “C” or better.
    Fault tolerant techniques are studied as tools to assure the reliability and continuous availability of computing systems. Case studies of modern fault tolerant systems reviewed. Software fault tolerant systems studied as alternatives to verification and validation approaches to software reliability. Master’s students register in CECS 546 or CECS 646 ; Ph.D. students register in CECS 646 .

    Letter grade only (A-F). Additional projects required for CECS 646 . (Lecture 2 hours, Laboratory 3 hours) CECS 646 
  • CECS 547 - Software Maintenance, Reengineering and Reuse


    (3 units)

    Prerequisite: CECS 343  or equivalent with a grade of “C” or better.
    Introduction to software maintenance, defect management, corrective, adaptive and perfective maintenance. Evolution of legacy software systems. Program comprehension techniques, reverse engineering, restructuring, refactoring of software systems. Software re-engineering, data reverse engineering. Software reuse. Impact analysis, regression testing. Master’s students register in CECS 547 or CECS 647 ; Ph.D. students register in CECS 647  .

    Letter grade only (A-F). Additional projects required for CECS 647 . (Lecture-problems 3 hours) CECS 647 
  • CECS 550 - Pattern Recognition


    (3 units)

    Prerequisite: CECS 328  with a grade of “C” or better or consent of the instructor.
    General concepts of pattern recognition and trainable classifiers, decision theory, supervised learning, non-parametric techniques, rule-based systems and neural networks. Master’s students register in CECS 550; Ph.D. students register in CECS 650 .

    Letter grade only (A-F). Additional projects required for CECS 650 . (Lecture-problems 2 hours, laboratory 3 hours) CECS 650 
  • CECS 551 - Advanced Artificial Intelligence


    (3 units)

    Prerequisite: CECS 451  with a grade of “C” or better.
    Advanced concepts in artificial intelligence. Topics include knowledge acquisition and representation, fuzzy logic, logical reasoning, multi-sensor integration, Dempster-Shafer’s theory of evidential reasoning, real-time expert systems and neural networks. Master’s students register in CECS 551 or CECS 651 ; Ph.D. students register in CECS 651 .

    Letter grade only (A-F). Additional projects required for CECS 651 . (Lecture 2 hours, Laboratory 3 hours) CECS 651 
Page: 1 | 2