# CES Elective Course Descriptions

## Main page content

Computer Engineering and Systems Elective Course Descriptions

TCSS 343 - Design and Analysis of Algorithms
There are two distinct but related parts to this course. In this class, students will learn techniques in analyzing the running time of an algorithm. Often the technique used to analyze an algorithm depends on the style of algorithm that is used. Students will also learn a number of algorithm design techniques, as illustrated by a large number of common algorithms that have been developed to solve fundamental problems such as searching, sorting, polynomial evaluation, matrix multiplication, and graph traversal. Analysis and design are connected because after developing several algorithms to solve a problem, one must be able to analyze their running times to determine which algorithm is best.
Algorithm design techniques that will be covered in the course include brute force, decrease and conquer, divide and conquer, transform and conquer, dynamic programming, and greedy. In addition, NP-completeness will be briefly introduced. Pseudocode will be the primary way algorithmic ideas will be expressed, but students will implement some of the algorithms discussed in the course. Students will apply their knowledge of data structures and discrete mathematics in this course. By the end of the course, students should be able to take a description of a problem and then formulate it as a computational problem, devise one or more algorithms to solve that problem, and then analyze the algorithms to determine which is best.
TCES 421 - Digital Integrated Circuit Design
Covers digital integrated circuit manufacturing process; design rules; diodes; MOS(FET) transistors; interconnect wires; analysis and design of CMOS inverters; combinational and sequential circuits; arithmetic operators and memory; implementation strategies; timing issues; and CAD tools. Prerequisite: minimum grade of 2.0 in both TCES 230 and TCES 312.
TCES 430 - Microprocessor System Design
Introduces hardware and software design techniques for microprocessor-based systems. Gives experience designing and implementing a system using current technology and components. Provides the opportunity to interface microprocessors to external devices. Gives experience using state-of-the-art development systems and procedures. Prerequisite: a minimum grade of 2.0 in TCES 372.
TCES 431 - Essentials of VLSI Circuit Testing and Hardware Security
Covers topics related to testing VLSI circuits and hardware security including; manufacturing test fundamentals, fault modeling and simulation, automatic test pattern generation algorithms; enhancing testability of digital systems; design for testability; encryption hardware; testability vs security; misuse of test infrastructure to attack encryption hardware and countermeasures; and trustworthiness of integrated circuits.
TCES 455 - Devices and Controls
Teaches how to control motors and other physical actuators by delving into their theories of operation. Examines automatic control theory and provides experience using computers to control devices. Requires team projects in the laboratory. Prerequisite: a minimum grade of 2.0 in each of TCES 310; TCES 312; and TCES 330.
TCES 460 - Embedded Systems Design
Guides integration of knowledge learned in prior courses in preparation for completion of the senior project in TCES 482. Covers the analysis, design, and prototyping of an embedded control application. Prerequisite: minimum grade of 2.0 in each of TCES 420, TCES 430, and TCES 455.
TCES 461 - Hardware for Cryptography
Examines zero knowledge proofs, commitment schemes, oblivious transfer, secret sharing, identification schemes, secure two-party protocols, electronic elections, and digital cash. Includes hardware and embedded implementation of secure protocols. Prerequisite: minimum grade of 2.0 in TCES 430.
TCES 480 - Senior Project I
Covers the preparation for conducting the senior project systems analysis and design and implementation, testing, and delivery. Includes case studies of engineering projects. Prerequisite: minimum grade of 2.0 in TCES 430.
TCES 481 - Senior Project II
Provides guidance to project teams to analyze client needs, develop problem statements, specifications, and plans for implantation of project deliverables. Prerequisite: minimum grade of 2.0 in TCES 480; recommended: Prerequisite: minimum grade of 2.0 in TCSS 480.
TCES 482 - Senior Project III
Focuses on design and implantation, testing, and demonstration of the capstone design project. Prerequisite: a minimum grade of 2.0 in TCES 481.
TCES 490 - Special Topics
Examines current topics and issues associated with computing engineering and systems.
TCES 491 - Digital Signal Processing
Examines basics of discrete-time signal and systems, including discrete-time Fourier transform. Introduces key features of digital signal processor architectures. Studies finite/infinite impulse response digital filters. Teaches digital filters design and implementation. Enhances digital processing skills through course projects. Prerequisite: TCES 310
TCES 497 - Internship
Gives experience working in real-world engineering environment. Demonstrates how engineering processes are conducted within an organization. Prerequisite: minimum grade of 2.0 in either TCES 330 or TCES 372.