Division ID
Skip links
 
Print this pageAdd this page to your favoritesSelect a font sizeSmall fontMedium fontLarge font
 

 

Computer Engineering and Computer Science - CECS Courses

College of Engineering

Courses (CECS)

LOWER DIVISION


100. Critical Thinking in the Digital Information Age (3)
Prerequisite/Corequisite: ENGL 100 or its equivalent.
Develop critical thinking skills with technical tools. Main topics include: identifying topics for investigation, developing planning strategies locating pertinent information, critically analyzing sources of information, testing hypotheses, synthesizing and organizing results for effective communication.
(2 hours lecture, 3 hours lab) Letter grade only (A-F).

105. Introduction to Computer Engineering and Computer Science (1)
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.
(Lecture 1 hour). Letter grade only (A-F).

110. Web Design I (3)
Overview of computer systems, networking, Internet, HTML, JavaScript, social implications of technology including privacy and security issues. Introduce computer applications and multimedia software such as video editing, creating graphics using interactivity and animation, and Web searching. Develop problem solving skills.
(Lecture 2 hours, laboratory 3 hours) Letter grade only (A-F).

174. Programming and Problem Solving I (3)
Prerequisite: MATH 117 (or equivalent.)
Introduction to basic concepts of computer science and fundamental techniques for solving problems using the C++ programming language. Structured problem solving, object-oriented programming, programming style. Applications to numerical and non-numerical problems.
Not open for credit to students with credit in CECS 175. Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

200. Web Design II (3)
Prerequisite: CECS 110.
Introductory web page design using modern tools. Development of web pages from layout to posting on the Internet. Web security and ethics.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

201. Computer Logic Design I (3)
Prerequisite: MATH 117 (or equivalent).
Basic topics in combinational and sequential switching circuits with applications to the design of digital devices. Laboratory projects with Small Scale Integration (SSI) implementations using Computer Aided Design (CAD).
(Lecture 2 hours, lab 3 hours.) Letter grade only (A-F).

202. The Digital Information Age (3)
Prerequisite: Completion of GE foundation requirements.
The design and use of common-place digital information systems. Introduction to how information is digitized, secured, compressed and transmitted. Students learn how digital age impacts them and the world they live in.
(3 hours lecture). Letter grade only (A-F).

211. Principles of Computer Engineering (3)
Prerequisites: MATH 122, CECS 201.
Basic principles used in analysis of computer-based circuits. CMOS switching circuit basics. Timing diagrams. Timing margins. Digital electronic devices. A/D and D/A data conversion. Data capture and processing for digital processing. Digital transforms. Digital displays.
(Lecture 2 hours, laboratory, 3 hours.) Letter grade only (A-F).

228. Discrete Structures with Computer Science Applications I (3)
Prerequisites: CECS 174 and one of the following: MATH 115, 119A, 122, PSY 310.
Specification, development and analysis of algorithms. Sets, relations and functions. Logic and mathematical structures used in computer science. Introduction to combinatorics. Programming projects to exemplify these concepts.
(Lecture 2 hours, laboratory/problem session 3 hours.) Letter grade only (A-F).

261. Computing with Java (3)
Prerequisite: CECS 174.
Comparison of basic Java constructs to similar constructs in C++. Object-oriented programming in Java. Applets and graphical user interfaces. Mouse, key, window events. Exception handling and files.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

271. Introduction to Numerical Methods (3)
Prerequisites: CECS 174 and MATH 222.
Introduction to numerical methods. Analysis of computational errors; iterative methods for finding roots and solving systems of equations. Numerical techniques for evaluating integrals, derivatives, and solving differential equations. Emphasis on numerical methods as used in computer modeling.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

274. Programming and Problem Solving II (3)
Prerequisite: CECS 174; Prerequisite/Corequisite: CECS 201.
Disciplined methods of design, coding and testing using the C++ programming language. Data abstraction, object-oriented design. Introduction to data structures (linked lists, stacks, queues and trees.) Recursion. Sorting and searching.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

277. Programming and Problem Solving III (3)
Prerequisite: CECS 274.
Advanced introduction to the fundamentals of computer science and software engineering methodology. Advanced programming techniques and design methodology typically used in large programming projects using the C++ programming language.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

285. Computer Organization and Assembly Language Programming (3)
Prerequisites: CECS 201, 274.
Study of computer organization and assembly language programming using embedded processor based systems to solve practical problems. Laboratory projects using embedded system software development and hardware simulation tools. Hands-on projects using hardware prototyping boards.
(Lecture 2 hours, laboratory 3 hours) Letter grade only (A-F).

UPPER DIVISION


300. Web Design III (3)
Prerequisite: CECS 200.
Web page design using modern tools. Design and development of web pages from layout to posting on the Internet. Website usability, accessibility, security, and ethics.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

301. Computer Logic Design II (3)
Prerequisites: CECS 174, 201; Corequisite: CECS 211.
Sequential logic, programmable logic design, basic Arithmetic Logic Unit (ALU) design and memory devices. Laboratory projects with Medium Scale to Very Large Scale Integration (MSI to VLSI) implementations and Computer Aided Design (CAD).
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

310. Computer-Based Learning Resources (3)
Prerequisite: Some Internet experience.
Explore and learn to use the many existing web-based education tools that focus on teaching technology. Evaluation of resources for age appropriateness and gender preferences. Students will develop a web-based tool to teach a technical subject of their choice. Field work required.
(Lecture 2 hours, laboratory 3 hours.) Not open for credit to students with credit in CECS 310A. Letter grade only (A-F).

311. Data Acquisition, Processing, and Display (3)
Prerequisite: CECS 211.
Hardware and software used to acquire, process and display real time signals. Interfacing with PC. Parallel and serial communication using PC ports. PC motherboard functionality and timing. Bus structures. Capture and display of information from peripherals.
(Lecture 2 hours, laboratory, 3 hours.) Letter grade only (A-F).

312. Introduction to Distributed Operating Systems (3)
Prerequisite: CECS 174.
The Basics of Operating Systems, Processes, Threads, Concurrent Programming, Protection and Security, Distributed System Structures, Distributed File Systems, Distributed Coordination, Internet Applications.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

323. Database Fundamentals (3)
Prerequisites: CECS 228, 274, MATH 222.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

325. Computer Organization and Assembly Language Programming (3)
Prerequisites: CECS 201 and 274.
Basic computer organization, representation of information and instruction, addressing techniques, input/output, assembly language programming, macros and macro processing. Introduction to software systems, including assemblers, linkage editors and loaders. Programming assignments in assembly language.
(Lecture 2 hours, lab 3 hours.) Letter grade only (A-F).

326. Operating Systems (3)
Prerequisites: CECS 277 and 285 or 346 or 325.
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++.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

327. Net-centric Computing (3)
Prerequisite: CECS 326.
Introduction to Distributed Computing and Interprocess Communication. Client Server Paradigm. Sockets and the Socket API. Unicasting and Multicasting. Distributed Objects. CORBA. Internet Applications.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

328. Discrete Structures with Computer Science Applications II (3)
Prerequisite: CECS 228. 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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

340. Discrete Event Systems Modeling and Simulation (3)
Prerequisites: CECS 201, 228 and 274.
Modeling/simulation of discrete event systems specific to computer science and computer engineering including networks, queuing systems, digital logic, and computer architecture. General purpose and specialized languages for systems will be explored. Methods for system input data (stochastic and deterministic) explored.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

341. Computer Architecture and Organization (3)
Prerequisites: CECS 201, 285 or 325.
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.
(Lecture 2 hours, laboratory, 3 hours.) Letter grade only (A-F).

343. Introduction to Software Engineering (3)
Prerequisites: CECS 277 and 228.
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.
(Lecture 2 hours, lab 3 hours.) Letter grade only (A-F).

345. Fundamentals of Embedded Systems (3)
Prerequisite: CECS 202.
Beginning course in embedded system design and technology. Examines embedded systems market, their fundamental basis, key hardware and software technology drivers, critical applications and component segments. Provides up-to-date analysis of recent developments and current trends in market space.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

346. Microprocessors and Controllers I (3)
Prerequisites: CECS 274 and 211; Corequisite CECS 311.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

347. Microprocessors and Controllers II (3)
Prerequisites: CECS 301, 343 and 346.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

360. Integrated Circuit Design Software (3)
Prerequisites: CECS 301, 325 (or 346), MATH 123 or 222.
Introduction to Computer Aided Design tools used in the design and fabrication of integrated circuits. Discussion of the IC fabrication process, the layout and routing of basic gates, transistor level design of gates, synthesis and RTL level design, floor planning, and IC development costs.
(Lecture 2 hours, lab 3 hours.) Letter grade only (A-F).

381. GUI Programming (3)
Prerequisite: CECS 174.
Introduction to programming in a graphical user interface (GUI) environment. Menus, dialog boxes, forms, textboxes, toolbars and other controls. Properties, methods and events of objects. Program control statements including if, case, while, loop, and do. System objects including the mouse, screen and printer.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

400. Engineering for Teachers (3)
Prerequisite: MATH 119A or three years of high school mathematics including algebra, geometry, and intermediate algebra.
Learn how engineers solve problems for humanity. Explore the various engineering disciplines and learn how they relate to mathematics and science. Discover how things work. Build engineering projects.
(Lecture 2 hours, laboratory 3 hours.) Not open for credit to students with credit in ENGR 400E. Letter grade only (A-F).

*401. Programming Robots – For Educators (3)
Prerequisite: Some programming experience.
Learn how to inspire interest in engineering and computer science among children ages 9 through 16. Using robotic kits, gain hands-on experience in problem solving and computer programming while constructing and programming unique robot inventions.
May not be used to satisfy any MSCS requirements. (Lecture 2 hours, laboratory 3 hours). Not open for credit to students with credit in CECS 401E. Letter grade only (A-F).

*405. Special Topics in Computer Science (3)
Prerequisite: Senior standing in computer science major.
Selected topics from recent advances in computer science and technology. Course content will vary from year to year.
(Lecture-problems 3 hours.) May be repeated to a maximum of 6 units with different topics. Letter grade only (A-F).

*406. Special Topics in Computer Science (3)
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.
Repeatable to a maximum of 6 units with different topics in different semesters. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*410. Computers and Networks (3)
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.
(Lecture 2 hours, laboratory 3 hours.) Not open for credit to students with credit in CECS 410E. Letter grade only (A-F).

412. Introduction to Computer Network Architectures (3)
Prerequisite: CECS 410.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

414. Introduction to Network and System Security Issues (3)
Prerequisites: CECS 174, 310.
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. Topics in Network Security.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*419. Theory of Computation (3)
Prerequisite: CECS 328.
Finite automata and regular expressions. Pushdown automata and context-free languages. Turing machines and computability. Computational complexity.
(Lecture-problems 3 hours.) Letter grade only (A-F).

*423. Database Applications (3)
Prerequisites: CECS 323 or 421 and 471.
Prep for work on commercial database systems. Advanced modeling/analysis, data definition, constraints, retrieval, manipulation, security, usability. Commercial tools, distributed/multi-tier environments and integration of databases with intra & internets. Projects may include cooperation with students from other departments.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*424. Organization of Programming Languages (3)
Prerequisites: CECS 326 and 328.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*428. Analysis of Algorithms (3)
Prerequisite: CECS 328.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*429. Information Retrieval (3)
Prerequisites: CECS 323 and 328, MATH 380 or EE 380.
Models, algorithms, and evaluation of the retrieval of information from a collection of documents. Document preprocessing. Indexing and Searching. Retrieval evaluation. Search engines.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

440. Computer Architecture (3)
Prerequisites: CECS 340 and 325 (or 346).
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

443. Software Engineering (3)
Prerequisite: CECS 326.
Software life cycle. Functional decomposition, data flow and object-oriented development. Reusability and portability.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*444. Compiler Construction (3)
Prerequisites: CECS 325 and 328.
Syntax directed compiler study. Organization of a compiler and overall design: parsing, semantic analysis, optimization and code generation.
(Lecture 3 hours, laboratory 3 hours.) Letter grade only (A-F).

*445. Software Design and Architecture (3)
Prerequisites: CECS 343 and Senior status.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*447. Microprocessors and Controllers III (3)
Prerequisite: CECS 347.
Embedded system applications and techniques. Real-time multi-tasking systems, schedulers, kernels, and operating systems for embedded processors. Advanced I/O technologies - CAM, I2C, Ethernet. Embedded Internet applications. Polling vs. interrupt handling. Lab implementation of embedded designs and hardware-assisted debugging.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*448. User Interface Design (3)
Prerequisites: CECS 323 (or 421), and any one of CECS 471, 475, 481.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*449. Computer Graphics (3)
Prerequisites: MATH 247, CECS 261 and 274.
Basic software and hardware of 2-D computer graphics. Applications.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*451. Artificial Intelligence (3)
Prerequisites: CECS 228, 274, MATH 380 or EE 380.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*455. Introduction to Game Programming (3)
Prerequisite: CECS 328 or consent of instructor.
Introduction to game programming and graphics. “Slow” games. Real-time games with no adversary. Adversarial real-time games in 2-D.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*460A. System on Chip Design I (3)
Prerequisite: CECS 360.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*460B. System on Chip Design II (3)
Prerequisite: CECS 460A.
System on Chip (SOC) design applications. Variety of SOC designs built as class project involving both hardware & software with hardware/software integration problems. Design reviews, specification, team design implementation stressed with project planning & tracking for system level design problems.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*461. Hardware/Software Co-design (3)
Prerequisites: CECS 460A, 274.
Introduction to top-down methods for hardware/software system-on-chip co-design. Design flow - system specification, software implementation, hardware synthesis, system design, & verification. Process optimization with various design decisions emphasized. Projects/case studies using system-level design methods and tools.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*470. Web Programming and Accessibility (3)
Prerequisite: CECS 277. Prerequisite/Corequisite: CECS 323, ENGR 350.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*471. Internet Applications Using Java (3)
Prerequisites: CECS 261 and 277.
Threads, images, and animation. User interface component libraries. Streams, readers and writers. Client-server applications. Java beans. Internationalization. Introduction to remote method invocation, Java database connectivity, and multimedia applications.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*472. Computer Network Programming (3)
Prerequisites: CECS 326 and 328.
Fundamentals of computer network programming. Client-server programming. Concepts of computer network programming including the RPC Procedure Call, CORBA, multicasts, and broadcasts.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*474. Computer Network Interoperability (3)
Prerequisite: CECS 326.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*475. Object-Oriented Programming and C++ (3)
Prerequisite: CECS 277 or CECS 326.
Object-oriented programming, graphical user interface (GUI) concepts, multithreading, graphics and multimedia. Application interfaces to XML documents, databases, web services and networks.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*476. System and Network Administration (3)
Prerequisites: CECS 326 and 328.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*478. Introduction to Computer Security (3)
Prerequisites: CECS 323, 328, and one course selected from 472, 474, 476.
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.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

*481. Event Driven Programming (3)
Prerequisites: CECS 261 or 381.
A rigorous introduction to Graphical User Interface (GUI) programming as provided in a number of popular software development products. Topics include Windows API (Application Programming Interface) using C and C++, Visual Basic and other development tools.
(Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

490A. Senior Project (3)
Prerequisites: CECS 347, Senior Standing.
A design course where the student will define a problem and provide a report containing a complete design solution.
(Seminar 3 hours.) Letter grade only (A-F).

490B. Senior Project II (3)
Prerequisites: CECS 490A or 491 and consent of instructor.
Implementation of previously completed design project from CECS 490A or CECS 491. A formal demonstration with an oral and written presentation is required.
(Seminar 3 hours.) Letter grade only (A-F).

491. Software Development Project (3)
Prerequisites: CECS 343 and Senior status.
Selected topics from recent advances in applied computing. Application of selected topics to the design and implementation of a software system within a team setting. Techniques for project management, documentation, and technical presentations. Software design, implementation, and evaluation strategies.
(Seminar 3 hours.) Letter grade only (A-F).

492. Computer Networking Project Course (3)
Prerequisite: CECS 474 or consent of instructor.
Selected topics from recent advances in computer networking. Design, implementation, and performance analysis of enterprise networks. Network modeling and simulation. Application of selected topics to a semester-long team project focusing on the design and implementation of a large-scale network system.
(Seminar 3 hours.) Letter grade only (A-F).

496. Computer Science Problem Solving (1)
Prerequisites: CECS 274 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.
(Lecture 1 hour.) May be repeated to a maximum of 6 units in different semesters. Letter grade only (A-F).

*497. Directed Studies (1–3)
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.

GRADUATE LEVEL


521./621. Database Architecture (3)
Prerequisites: CECS 328 and 323 or 421.
Relational database design theory-a rigorous approach. Security, recovery, transaction management, distributed databases and query optimization.
Master’s students register in CECS 521 or 621; Ph.D. students register in CECS 621. Additional projects required for CECS 621. (Lecture-problems 3 hours.) Letter grade only (A-F).

524./624. Advanced Topics in Programming Languages (3)
Prerequisite: CECS 424.
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 624; Ph.D. students register in CECS 624. Additional projects required for CECS 624. (Lecture-problems 3 hours.) Letter grade only (A-F).

526./626. Advanced Operating Systems (3)
Prerequisites: CECS 228 and 326.
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 626; Ph.D. students register in CECS 626. Additional projects required for CECS 626. (Lecture–problems 3 hours.) Letter grade only (A-F).

528./628. Advanced Analysis of Algorithms (3)
Prerequisites: CECS 328, MATH 380 or EE 380.
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 628; Ph.D. students register in CECS 628. Additional projects required for CECS 628. (Lecture–problems 3 hours.) Letter grade only (A-F).

530./630. Advanced Computer Architecture I (3)
Prerequisite: CECS 341 or 440.
Fundamentals of computer architecture. Description of architecture and description languages. Basic computer design and central processor implementation. Memory hierarchy and input/output. Pipelining. Vector processor, multiprocessor systems and dataflow machines.
Master’s students register in CECS 530 or 630; Ph.D. students register in CECS 630. Additional projects required for CECS 630. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

531./631. Advanced Computer Architecture II (3)
Prerequisite: CECS 530.
Advanced computer architecture with emphasis on parallel processing. Vector processors and multiprocessor systems. Dataflow computation. RISC/CISC. Hypercube. Parallel software. Applications in artificial intelligence, signal/image processing, neural network and optical computing.
Master’s students register in CECS 531 or 631; Ph.D. students register in CECS 631. Additional projects required for CECS 631. (Lecture–problems 3 hours.) Letter grade only (A-F).

543./643. Advanced Software Engineering (3)
Prerequisite: CECS 343 or 443.
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 643; Ph.D. students register in CECS 643. Additional projects required for CECS 643. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

544./644. Software Testing and Verification (3)
Prerequisite: CECS 543.
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.
Additional projects required for CECS 644. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

545./645. Software Architecture (3)
Prerequisite: CECS 543.
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.
Additional projects required for CECS 645. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

546./646. Fault Tolerant Computing Systems (3)
Prerequisite: CECS 530.
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 646; Ph.D. students register in CECS 646. Additional projects required for CECS 646. (Lecture–problems 3 hours.) Letter grade only (A-F).

549./649. Advanced Computer Graphics (3)
Prerequisite: CECS 449.
Three-dimensional representations, transformations and viewing. Color models and modeling methods. Hidden-line and hidden-surface removal. Lighting and shading. Visual realism. Topics of current interest.
Master’s students register in CECS 549 or 649; Ph.D. students register in CECS 649. Additional projects required for CECS 649. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

550./650. Pattern Recognition Using Artificial Intelligence (3)
Prerequisite: CECS 451 or consent of instructor. (Master’s students register in CECS 550; Ph.D. students register in CECS 650.)
General concepts of pattern recognition and trainable classifiers, decision theory, supervised learning, non-parametric techniques, rule-based systems and neural networks. Additional projects required for Ph.D. students.
(Lecture-problems 2 hours, laboratory 3 hours.) Not open for credit to students with credit in CECS 750. Letter grade only (A-F).

551./651. Advanced Artificial Intelligence (3)
Prerequisite: CECS 451.
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 651; Ph.D. students register in CECS 651.Additional projects required for CECS 651. (Lecture-problems 3 hours.) Letter grade only (A-F).

552./652. Computer Simulation and Modeling (3)
Prerequisites: EE 380 (or MATH 380) and CECS 326.
Studies of general purpose and special simulation software. Model verification including graphical models Applications in various areas.
Master’s students register in CECS 552 or 652; Ph.D. students register in CECS 652. Additional projects required for CECS 652. (Lecture-problems 3 hours.) Letter grade only (A-F).

553./653. Machine Vision (3)
Prerequisite: Graduate standing in engineering or computer science.
Discussion and laboratory implementation of current research in vision and image understanding. Topics include image formation, early processing, segmentation, relational structures in 2-D and 3-D, motion, stereo, 3-D reconstruction, morphological methods and computer architecture for machine vision.
Master’s students register in CECS 553 or 653; Ph.D. students register in CECS 653. Additional projects required for CECS 653. (Lecture-problems 2 hours, laboratory 3 hours.) Letter grade only (A-F).

570./670. Concurrent Parallel Programming (3)
Prerequisite: CECS 328, or 341, or 440. (Master’s students register in CECS 570 or 670; Ph.D. students register in CECS 670.)
Introduction to concurrent and parallel programming for multiprocessing and distributed systems. Computational models and paradigms. Parallel programming languages and programming tools. Portable parallel programming and mapping techniques. Heterogeneous concurrent programming. Concurrent programming on local networks on workstations and personal computers.
Additional projects required for CECS 670. (Lecture-problems 2 hours, laboratory 3 hours.) Letter grade only (A-F).

572./672. Advanced Computer Networking (3)
Prerequisite: CECS 327 or 474.
Advanced concepts in computer network theory and practice. Computer network design and standards for local area networks (LANs) and wide area networks (WANs). Computer network configuration and performance issues.
Master’s students register in CECS 572 or 672; Ph.D. students register in CECS 672. Additional projects required for CECS 672. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

574./674. Topics in Distributed Computer Systems (3)
Prerequisite: CECS 526 or 572 or 626 or 672. (Master’s students register in CECS 574; Ph.D. students register in CECS 674.)
Network operating systems vs distributed operating systems, research and design issues of distributed operating systems, resources and resource management in distributed systems, communication security and user authentication.
Additional projects required for Ph.D. students. (Lecture–problems 3 hours.) Letter grade only (A-F). Not open for credit to students with credit in CECS 673.

575./675. Object–Oriented Analysis and Design (3)
Prerequisites: CECS 475 and CECS 343 or 443 or 543. Master’s students register in CECS 575 or 675; Ph.D. students register in CECS 675.
An object–oriented approach to software development based on modeling objects from the real world. Object–oriented methodology from problem statement through analysis, system design, and object design. Implementation of object–oriented designs in various target environments. Case studies.
Additional projects required for CECS 675. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

590./690. Special Topics in Computer Science (3)
Prerequisites: Graduate standing and consent of instructor.
Each offering is based on an area in computer science and technology in which recent advances have been made.
Master’s students register in CECS 590 or 690; Ph.D. students register in CECS 690. Additional projects required for CECS 690. (Lecture-problems 3 hours.) May be repeated to a maximum of 6 units with consent of department. Letter grade only (A-F).

621./521. Database Architecture (3)
Prerequisites: CECS 328 and 323 (or 421).
Relational database design theory-a rigorous approach. Security, recovery, transaction management, distributed databases and query optimization.
Master’s students register in CECS 521 or 621; Ph.D. students register in CECS 621. Additional projects required for CECS 621. (Lecture-problems 3 hours.) Letter grade only (A-F).

624./524. Advanced Topics in Programming Languages (3)
Prerequisite: CECS 424.
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 624; Ph.D. students register in CECS 624. Additional projects required for CECS 624. (Lecture-problems 3 hours.) Letter grade only (A-F).

626./526. Advanced Operating Systems (3)
Prerequisites: CECS 228 and 326.
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 626; Ph.D. students register in CECS 626. Additional projects required for CECS 626. (Lecture–problems 3 hours.) Letter grade only (A-F).

628./528. Advanced Analysis of Algorithms (3)
Prerequisites: CECS 328, MATH 380 or EE 380.
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 628; Ph.D. students register in CECS 628. Additional projects required for CECS 628. (Lecture–problems 3 hours.) Letter grade only (A-F).

630./530. Advanced Computer Architecture I (3)
Prerequisite: CECS 341 or 440.
Fundamentals of computer architecture. Description of architecture and description languages. Basic computer design and central processor implementation. Memory hierarchy and input/output. Pipelining. Vector processor, multiprocessor systems and dataflow machines.
Master’s students register in CECS 530 or 630; Ph.D. students register in CECS 630. Additional projects required for CECS 630. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

631./531. Advanced Computer Architecture II (3)
Prerequisite: CECS 530.
Advanced computer architecture with emphasis on parallel processing. Vector processors and multiprocessor systems. Dataflow computation. RISC/CISC. Hypercube. Parallel software. Applications in artificial intelligence, signal/image processing, neural network and optical computing.
Master’s students register in CECS 531 or 631; Ph.D. students register in CECS 631. Additional projects required for CECS 631. (Lecture–problems 3 hours.) Letter grade only (A-F).

643./543. Advanced Software Engineering (3)
Prerequisite: CECS 343 or 443.
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 643; Ph.D. students register in CECS 643. Additional projects required for CECS 643. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

644./544. Software Testing and Verification (3)
Prerequisite: CECS 543.
Various types of software testing and 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. Discussion of object-oriented software testing with a hierarchical approach. Metrics in complexity for testing, test, and verification plan will be introduced. Automatic software testing and some case studies.
Additional projects required for CECS 644. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

645./545. Software Architecture (3)
Prerequisite: CECS 543.
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.
Additional projects required for CECS 645. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

646./546. Fault Tolerant Computing Systems (3)
Prerequisite: CECS 530.
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 646; Ph.D. students register in CECS 646. Additional projects required for CECS 646. (Lecture–problems 3 hours.) Letter grade only (A-F).

649./549. Advanced Computer Graphics (3)
Prerequisite: CECS 449.
Three-dimensional representations, transformations and viewing. Color models and modeling methods. Hidden-line and hidden-surface removal. Lighting and shading. Visual realism. Topics of current interest.
Master’s students register in CECS 549 or 649; Ph.D. students register in CECS 649. Additional projects required for CECS 649. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

650./550. Pattern Recognition Using Artificial Intelligence (3)
Prerequisite: CECS 451 or consent of instructor. (Master’s students register in CECS 550; Ph.D. students register in CECS 650.)
General concepts of pattern recognition and trainable classifiers, decision theory, supervised learning, non-parametric techniques, rule-based systems and neural networks.
Additional projects required for Ph.D. students. (Lecture-problems 2 hours, laboratory 3 hours.) Letter grade only (A-F).

651./551. Advanced Artificial Intelligence (3)
Prerequisite: CECS 451.
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 651; Ph.D. students register in CECS 651. Additional projects required for CECS 651. (Lecture-problems 3 hours.) Letter grade only (A-F).

652./552. Computer Simulation and Modeling (3)
Prerequisites: EE 380 or MATH 380 and CECS 326.
Studies of general purpose and special simulation software. Model verification including graphical models Applications in various areas.
Master’s students register in CECS 552 or 652; Ph.D. students register in CECS 652. Additional projects required for CECS 652. (Lecture-problems 3 hours.) Letter grade only (A-F).

653./553. Machine Vision (3)
Prerequisite: Graduate standing in engineering or computer science.
Discussion and laboratory implementation of current research in vision and image understanding. Topics include image formation, early processing, segmentation, relational structures in 2-D and 3-D, motion, stereo, 3-D reconstruction, morphological methods and computer architecture for machine vision.
Master’s students register in CECS 553 or 653; Ph.D. students register in CECS 653. Additional projects required for CECS 653. (Lecture-problems 2 hours, laboratory 3 hours.) Letter grade only (A-F).

670./570. Concurrent Parallel Programming (3)
Prerequisite: CECS 328, or 341, or 440. (Master’s students register in CECS 570 or 670; Ph.D. students register in CECS 670.)
Introduction to concurrent and parallel programming for multiprocessing and distributed systems. Computational models and paradigms. Parallel programming languages and programming tools. Portable parallel programming and mapping techniques. Heterogeneous concurrent programming. Concurrent programming on local networks on workstations and personal computers.
Additional projects required for CECS 670. (Lecture-problems 2 hours, laboratory 3 hours.) Letter grade only (A-F).

672./572. Advanced Computer Networking (3)
Prerequisite: CECS 327 or 474.
Advanced concepts in computer network theory and practice. Computer network design and standards for local area networks (LANs) and wide area networks (WANs). Computer network configuration and performance issues.
Master’s students register in CECS 572 or 672; Ph.D. students register in CECS 672. Additional projects required for CECS 672. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

674./574. Topics in Distributed Computer Systems (3)
Prerequisite: CECS 526 or 572 or 626 or 672. (Master’s students register in CECS 574; Ph.D. students register in CECS 674.)
Network operating systems vs distributed operating systems, research and design issues of distributed operating systems, resources and resource management in distributed systems, communication security and user authentication.
Additional projects required for Ph.D. students. (Lecture–problems 3 hours.) Letter grade only (A-F). Not open for credit to students with credit in CECS 773.

675./575. Object–Oriented Analysis and Design (3)
Prerequisites: CECS 475 and CECS 343 or 443 or 543. Master’s students register in CECS 575 or 675; Ph.D. students register in CECS 675.
An object–oriented approach to software development based on modeling objects from the real world. Object–oriented methodology from problem statement through analysis, system design, and object design. Implementation of object–oriented designs in various target environments. Case studies.
Additional projects required for CECS 675. (Lecture 2 hours, laboratory 3 hours.) Letter grade only (A-F).

690./590. Special Topics in Computer Science (3)
Prerequisites: Graduate standing and consent of instructor.
Each offering is based on an area in computer science and technology in which recent advances have been made.
Master’s students register in CECS 590 or 690; Ph.D. students register in CECS 690. Additional projects required for CECS 690. (Lecture-problems 3 hours.) May be repeated to a maximum of 6 units with consent of department. Letter grade only (A-F).

694. Seminar in Computer Science (3)
Prerequisite: 6 units of 500 or 600 level CECS courses.
Intensive study of a broad selection of conceptual and theoretical problems in computer science. A written student research project and an oral presentation are required.
Letter grade only (A-F).

697. Directed Research (1-3)
Prerequisite: Classified Graduate standing.
Theoretical and experimental problems in computer science and engineering requiring intensive analysis.
Independent Study. Letter grade only (A-F).

698. Thesis or Industrial Project (2-6)
Prerequisite: Advancement to Candidacy.
Planning, preparation, completion of thesis or equivalent industrial project report on a suitable topic in computer engineering and computer science following the library's prescribed format. Requires consultation with Graduate Advisor and submission of Agreement for Independent Study form each semester.
May be repeated to a total of 6 units.