Computer Engineering Courses

Lower Division Courses

COMPE 160. Introduction to Computer Programming (3)

Prerequisite: Credit or concurrent registration in Mathematics 150.

Computer organization and operation. Binary representation of information. Fundamentals of computer programming using a C family language: data types, selection and iteration structures, functions, arrays, pointers, scope and duration of variables. Systematic design and development of computer programs.

COMPE 260. Data Structures and Object-Oriented Programming (3)

Prerequisite: Computer Engineering 160 with a grade of C (2.0) or better. Credit or concurrent registration in Mathematics 245.

Data structures using object-oriented programming. Disciplined approach to design, coding, and testing using OOP, teach use and implementation of data abstractions using data structures. Arrays, linked lists, stacks, queues, trees. Sorting, searching, recursive algorithms.

COMPE 270. Digital Systems (3)

Prerequisite: Credit or concurrent registration in Mathematics 151.

Modelling, analysis and design of digital systems, primarily at the Logic Design level. Combinational and sequential networks. Not open to students with credit in Electrical Engineering 370.

COMPE 271. Computer Organization (3)

Prerequisite: Computer Engineering 160 with a grade of C (2.0) or better. Grade of C- (1.7) or better in Computer Engineering 270.

Organization and operation of computer hardware and software. Operating system shell and services. Program design and development. Input-output programming. Multi-module and mixed-language programming. Assembler and C language.

Upper Division Courses (Intended for Undergraduates)

COMPE 361. Windows Programming (3)

Prerequisite: Computer Engineering 260 and 271 with a grade of C- (1.7) or better in each course.

Object Oriented Programming (OOP) using C# and .NET Framework. Graphical User Interface (GUI) and event-driven programming. Visual Studio Integrated Development Environment (IDE). Graphics programming.

COMPE 375. Embedded Systems Programming (3)

Prerequisite: Computer Engineering 271 with a grade of C- (1.7) or better.

Embedded system architecture; IO programming using parallel ports, serial ports, timers, and D/A and A/D converters; interrupts and real-time programming; program development and debugging tools; C language and assembler.

COMPE 470. Digital Circuits (3)

Prerequisite: Computer Engineering 270 with a grade of C- (1.7) or better.

Design of digital electronic systems using commercially available high-speed digital devices and circuits.

COMPE 470L. Digital Logic Laboratory (1)

Prerequisite: Computer Engineering 470 and Electrical Engineering 330L.

Hands-on experience in characterization and application of standard digital integrated circuit devices.

COMPE 475. Microprocessors (3)

Prerequisite: Computer Engineering 375 with a grade of C- (1.7) or better. Computer Engineering 470.

Bus design, memory design, interrupt structure, and input/output for microprocessor-based systems.

COMPE 491. Senior Design Project-A (2)

Prerequisite: Computer Engineering 361 and 375, Electrical Engineering 330L. Credit or concurrent registration in Computer Engineering 470.

Senior design project preparation to include building a team, finding an advisor, identifying a project, giving a professional presentation, preparing descriptive information and design documentation, securing funding. Design using CAD PCB tools. Ethics and professionalism in a work environment.

COMPE 492. Senior Design Project-B (2)

Prerequisite: Computer Engineering 491.

Supervised team-based capstone design project to provide integrative design experience for seniors to demonstrate a working project.

COMPE 499. Special Study (1-3)

Prerequisite: Approval of project adviser and department chair.

Individual study. Maximum credit six units.

Upper Division Courses (Also Acceptable for Advance Degrees)

COMPE 560. Computer and Data Networks (3)

Prerequisite: Computer Engineering 271 and Electrical Engineering 410 with a grade of C- (1.7) or better in each course.

Wide area and local area networks, multi-layered protocols, telephone systems, modems, and network applications.

COMPE 561. Windows Database and Web Programming (3) Prerequisite: Computer Engineering 361 with a grade of C- (1.7) or better.

Programming applications involving file systems, relational databases, Structured Query Language (SQL), ADO.NET, clientserver architecture, multithreading sockets, web servers, web browsers, web services, ASP.NET, Hypertext Markup Language (HTML), and Extensible Markup Language (XML).

COMPE 565. Multimedia Communication Systems (3)

Prerequisite: Credit or concurrent registration in Computer Engineering 560.

Design and implementation of multimedia communication systems. Image compression, JPEG, VQ, cell- B standards. Video and audio compression standards, MPEG, MPEG-2, H.26X, G.72X. Data storage systems and multimedia requirements. Networking requirements and networks as multimedia carriers. Transport and network protocols for carrying multimedia over data networks. Multimedia system design, scheduling, congestion control, traffic shaping, buffer management.

COMPE 570. VLSI System Design (3) Prerequisite: Computer Engineering 470 with a grade of C (2.0) or better.

VLSI systems at the architectural level for digital signal processing applications: feedforward and feedback systems, fixed-point and floating-point representations, folding, iteration bound, parallel architectures, pipelining, retiming, unfolding, wave and asynchronous pipelining. (Formerly Electrical Engineering 672.)
COMPE 571. Embedded Operating Systems (3) Prerequisite: Computer Engineering 260 with a grade of C- (1.7) or better. Computer Engineering 375.

Real-time kernel, basic kernel services, threading and synchronization, preemptive multithreading, mutexes, spin locks, critical sections, priority scheduling, interrupts, RTOS implementation, memory management, task management, intertask communications.

COMPE 572. VLSI Circuit Design (3) Prerequisite: Computer Engineering 271 with a grade of C- (1.7) or better. Electrical Engineering 330.

Design of digital integrated circuits based on CMOS technology; characterization of field effect transistors, transistor level design and simulation of logic gates and subsystems; chip layout, design rules, introduction to processing; ALU architecture.

COMPE 596. Accelerated Computing (3) Prerequisite: Computer Engineering 260 and Electrical Engineering 410.

Use of hardware accelerators and parallel programming patterns to decrease runtime of computationally demanding regions in software used in numerical scientific and engineering applications. Design of kernels on GPUs, DPUs, and FPGAs. Programming with the Nvidia CUDA and OpenCL frameworks.

COMPE 596. Cyber-Physical Systems (3) Prerequisite: Credit or concurrent registration in Computer Engineering 571.

Core principles of building CPSs, hardware and software components of CPSs, formal CPS modeling and verification, real-time control and timing analysis of CPSs, data processing for CPSs, practical CPS examples and applications.

COMPE 596. Machine Learning for Engineering (3) Prerequisite: Computer Engineering 260 and Mathematics 254.

Bayesian estimation, clustering, decision trees, dimension reduction, linear regression, logistic regression, neural networks, point estimation, and probability theory.