Courses in Computer Engineering

I CEN 140 Introduction to Engineering Design (3)
This course explores the topic of engineering design and teaches about and formalizes the design process and problem solving. Using a combination of team and individual projects/labs, assignments, and classroom lectures and presentations, students will learn how to formulate, articulate, and solve problems, how to work on a team to design things, and how to present the results of engineering work in oral and written form. Students will also learn about the different disciplines of engineering and the multidisciplinary nature of modern engineering design. Corequisite(s): A MAT 112, A PHY 140, and I CEN/I CSI 201 or permission of Department Chair.

I CEN 150 Introduction to Engineering Analysis (3)
This course introduces students to techniques, skills, and modern engineering tools to teach students logical and systematic ways to analyze and solve engineering problems. This course leverages course work in physics, computer science and mathematics. Prerequisite(s): I CEN 140.

I CEN 201 (= I CSI 201) Introduction to Computer Science (4)
Computer algorithms and their representation. The principle of information hiding and its relation to program block structure. File structure and access methods. The efficient use of computational resources. Program development and style. Only one version may be taken for credit.

I CEN 210 (= I CSI 210) Discrete Structures (4)
Proofs by induction; mathematical reasoning, propositions, predicates and quantifiers; sets; relations, graphs, and trees; functions; counting, permutations and combinations. Only one version may be taken for credit. Prerequisite(s) or corequisite: I CEN/I CSI 201.

I CEN 213 (= I CSI 213) (formerly I CSI 310) Data Structures (3)
Commonly used abstract data structures and their implementation. The use of pointers and recursive programming. Stacks, queues, lists and trees, and their application to such problems as sorting and searching. Analysis of algorithms for using these structures. May not be taken by students with credit for I CSI 310. Prerequisite(s): I CEN/I CSI 201. For Computer Engineering majors only.

I CEN 333 (= I CSI 333) Programming at the Hardware Software Interface (4)
Instruction set architecture of contemporary computers; Boolean logic, memory, registers, instructions and interrupts. Assembly language programming; assembler passes, symbols, macros, function linkage and separate compilations. C language programming; syntax, control, types, abstractions, pointers and strings. Dynamic memory, standard and user written libraries. ANSI and C++ standards. Instruction set simulation. Only one version may be taken for credit. Prerequisite(s): a grade of C or better required in I CEN/I CSI 213.

I CEN 340 Digital Logic Design (3)
This course introduces students to Digital Logic Design. The course begins with binary (yes/no) phenomena and builds successively more complex components and systems, ending with a simple processor. Using a combination of team and individual projects/labs, students will discover how simple gates are built from switches, how components are built from gates, and how systems are built from components. Initial designs assume that there is no concept of time and that everything is immediately available. Time is then introduced, from which the concept of memory emerges, which greatly expands the devices that can be designed and used to create more complex systems. The final goal is to assemble a simple processor from the constituent components and to understand how software computations are performed on hardware. Prerequisite(s): I CEN/I CSI 210 or permission of instructor.

I CEN 350 Signals and Systems (3)
This course introduces students to Signals and Systems. The course is divided into three parts: introduction, theory, and applications of continuous-­time signals and systems, and theory and applications of discrete-time signals and systems. The course is organized so that students not only get a solid understanding of the theory — enhanced by analytic examples and software examples using MATLAB, learn about applications, but also develop confidence and proficiency in the material by working on analytic and computational problems. Prerequisites(s): A MAT 220, A MAT 311, I CEN/A PHY 415.

I CEN 353 (= A PHY 353) Microprocessor Applications (3)
Applications of microprocessors to data collection and process control; the capabilities of typical microprocessors and the techniques used to interface them to external devices; input/output programming, use of the data and address busses; interrupt handling, direct memory access, and data communications; characteristics of peripheral devices such as keyboards, printers, A/D and D/A converters, sensors, and actuators. Three class periods each week. Only one version may be taken for credit. Prerequisite(s): I CEN/I CSI 201 or I CSI 204 or equivalent. An elementary knowledge of electricity is helpful.

I CEN 360 Emerging Technologies (3)
This course will explore current emerging technologies and related technical management practices on a global basis. The content of this course will vary from semester to semester. Each offering will cover an advanced engineering topic in Computer Engineering. May be repeated for credit when content varies. Prerequisite(s): I CEN/A PHY 415, A MAT 214, or permission of instructor.      

I CEN 370 Digital Signal Processing (3)
This course covers the techniques of modern digital signal processing that are fundamental to a wide variety of application areas. The course covers the mathematical basis of discrete-time signal analysis, discusses the theory and implementation of fast Fourier transform algorithms, and discusses the design and implementation of digital filters. The coverage of the fundamentals is complemented with introductory treatments of several advanced techniques including linear prediction, adaptive filtering, and two-dimensional signal processing. The course concludes with a discussion of the application of digital signal processing techniques toward the solution of various types of practical problems. This course makes extensive use of MATLAB as an analysis, design, and visualization tool. Prerequisite(s): A MAT 220, I CEN/A PHY 415, A MAT 311.

I CEN 400 (= I CSI 400) Operating Systems (3)
Historical overview; operating system services; mass storage file organization; memory management in multiprogrammed systems; virtual memory; resource allocation; concurrent processes; deadlock detection and prevention; security; the design of contemporary operating systems such as UNIX. Only one version may be taken for credit. Prerequisite(s): I CEN/I CSI 333.

I CEN 404 (= I CSI 404) Computer Organization (3)
An introduction to the logical organization of the hardware components of computing systems. Topics include logic design from a functional point of view, data representation and processing, description of major components such as the central processing unit and memory, and control and communication within the components and in the system. Only one version may be taken for credit. Prerequisite(s): I CEN/I CSI 210 and I CEN/ I CSI 333.

I CEN 415 (= A PHY 415) Electronics (3)
Transistors and their characteristics; electronic circuits, field effect transistors and applications, amplifiers, low and high frequency response; operational amplifiers; consideration of control-circuit design; fast-switching and counting devices; integrated circuits and their designs. Two class periods and one three-hour laboratory each week. Only one version may be taken for credit. Prerequisite(s): A PHY 150.

I CEN 416 (= I CSI 416) Computer Communication Networks (3)
Introduction to computer communication networks. Equal emphasis on all layers of the ISO reference model and the TCP/IP protocol suite. Topics include physical networks, sliding window protocols, remote procedure call, routing, naming and addressing, security, authentication, performance, and applications. Only one version may be taken for credit. Prerequisite(s): I CSI/I CEN 400 or I CSI 402, and A MAT 367 or A MAT 370.

I CEN 430 Systems Analysis and Design (3)
The application of information technology has extended to all quarters of the business world. While the nature and the scope of information systems vary widely depending on the business context, the fundamental knowledge underlying their development remains the same. This course aims to provide technology students with a solid understanding of the important methodologies and tools and techniques related to the development of information systems in a variety of contexts. It is designed to complement and enhance the content of I CEN 440 (Design Lab I) by providing a framework for the analysis and design of the Design Lab project. Corequisite(s): I CEN 440.

I CEN 440 Design Lab I (3)
This course is part one of a two-semester-long capstone design lab that serves as a significant educational experience for the student to enhance their professional skills and the application of their growing engineering and technical expertise. The two-semester-long capstone design lab provides the opportunity for teams of computer engineering students to propose, prototype/design, build, test, demonstrate, present and fully document a working prototype of a sophisticated electronic system. The two-semester-long capstone design lab represents a complex project that demonstrates the engineering design process and project engineering as practiced in industry. Student teams apply the design process by developing a project under the guidance of industry sponsors and/or faculty through design, fabrication, test and evaluation. In addition to technical feasibility studies, students also explore the concept of the engineer as an entrepreneur by considering their design for technology transfer for commercial use. Prerequisite(s): I CEN 350, I CEN/I CSI 400, and I CEN/A PHY 454. Corequisite: I CEN 430.

I CEN 450 Design Lab II (6)
This course is part two of the final capstone design lab, where teams of computer engineering students build, test, demonstrate, and document the electronic system they proposed, specified, modeled, and designed during part one of capstone design lab (I CEN 440). Students conduct a product demonstration that shows how their physical design meets all engineering specifications, standards, and constraints. Students also will continue the validation of their design for technology transfer. This includes finalized go-forward business and marketing plans of their design for commercial use. This course fully familiarizes students with realistic design and project constraints that include economic, environmental, social, political, ethical, health, safety, manufacturability, sustainability and social impacts as practiced in industry. Prerequisite(s): I CEN 440.

I CEN 454 (= A PHY 454) Microprocessor Applications Laboratory (3)
Complements the theoretical development presented in I CEN/A PHY 353. Centers around practical laboratory applications in both hardware and software of a particular microprocessor. Students prototype a minimum system and expanded system. Applications include keyboard, printer, display, A/D, D/A, and control functions. A knowledge of a microprocessor and digital logic functions is desirable. Only one version may be taken for credit. Prerequisite(s): I CEN/A PHY 353 or A PHY 415 or permission of instructor.

I CEN 460 Mobile Design Engineering (3)
Building on students' basic knowledge of wired computer networks, this course will explore mobile wireless networks. Students will learn about current protocols and technologies in mobile networks. Through hands-on exercises students will gain experience in wireless networks operation and configuration. Successful completion of the course will require detailed prior understanding of network-based communications, Internet protocol operations, strong systems programming skills and familiarity with UNIX. Prerequisite(s): I CEN/I CSI 400 and I CEN/I CSI 416.

I CEN 470 Human Computer Interaction (3)
In this online course, students will learn how to design technologies that bring people joy, rather than frustration. Students will learn several techniques for rapidly prototyping and evaluating multiple interface alternatives -- and why rapid prototyping and comparative evaluation are essential to excellent interaction design. A unique aspect of this course is that it imbeds the 9-Week "Human-Computer Interaction" course in it. Students sign up for this UC San Diego class, which includes a series of video lectures, assignments, quizzes and other elements, which are designed to enhance the overall student learning experience. Prerequisite(s): I CEN/I CSI 333.

I CEN 480 VLSI Design and Fabrication (3)
This course provides a survey of VLSI technology and very large-scale integrated systems. It considers problems that occur when ordinary circuits are replicated to involve millions of devices. It covers CMOS technology, and design styles up to the point of submission for fabrication. Computerized methods with high-density circuits with optimized speed and power consumption are utilized. Students perform simple layouts and simulations suitable for extension to a very large scale. Prerequisite(s): I CEN 454/A PHY 454.

I CEN 497 Independent Research in Computer Engineering (1-3)
Independent research project under faculty guidance. Students will present their research as appropriate. May be repeated for credit up to a total of 6 credits with permission of department. Prerequisite(s): permission of instructor.