ECEN-2703 (3) Discrete Mathematics for Computer Engineers

Emphasizes elements of discrete mathematics appropriate for computer engineering. Topics: logic, proof techniques, algorithms, complexity, relations, and graph theory. Prereqs., ECEN 1030/CSCI 1300 and APPM 1360.

ECEN-3303 (3) Introduction to Robotics

Introduces students to fundamental concepts in autonomous, mobile robotics: mechanisms, locomotion, kinematics, control, perception and planning. The course consists of lectures and lab sessions that are geared toward developing a complex robot controller in a realistic, physics-based multi-robot simulator. Prereqs., CSCI 2270 and 2824. CSCI 3302 and ECEN 3303 are the same course.

ECEN-4423 (3) Chaotic Dynamics

Explores chaotic dynamics theoretically and through computer simulations. Covers the standard computational and analytical tools used in nonlinear dynamics and concludes with an overview of leading-edge chaos research. Topics include time and phase-space dynamics, surfaces of section, bifurcation diagrams, fractal dimension, and Lyapunov exponents. Prereqs., two semesters calculus, ECEN 1030 or CSCI 1300 or equivalent, and PHYS 1110. Recommended prereqs., PHYS 1120, CSCI 3656, and MATH 3130. Same as CSCI 4446 and ECEN 5423.

ECEN-4553 (3) Compiler Construction

Introduces the principles and techniques for compiling high-level programming languages to assembly code. Topics include parsing, instruction selection, register allocation, and compiling high-level features such as polymorphism, first-class functions, and objects. Students build a complete compiler for a simple language. Prereqs., ECEN 2703 and ECEN 3350. Same as CSCI 4555 and ECEN 5523. Prerequisites: Restricted to College of Engineering majors only.

ECEN-4583 (3) Software System Development

Lectures deal with techniques for product requirements definition, project planning, coding, verification, validation, performance evaluation, and maintenance of medium-scale (2-3000 line) systems. Primary emphasis is on practical application of these techniques to a specified software project. Students work in teams to produce appropriate documents for each phase and are responsible for project completion according to specification and schedule. Course project is written in C on a Unix look-alike system; prior knowledge of C or Unix is not required. Prereq., CSCI 2270 or instructor consent.

ECEN-4613 (3) Embedded System Design

Introduces system hardware and firmware design for embedded applications. Students independently design and develop a hardware platform encompassing a microcontroller and peripherals. Firmware is developed in C and assembly. A significant final project is designed, developed, documented, and presented. Prereqs., ECEN 2350 and 3350, or instructor consent. Recommended prereqs., ECEN 3250 and 4593. Same as ECEN 5613. Prerequisites: Restricted to students with 87-180 credits (Senior, Fifth Year Senior) College of Engineering majors only.

ECEN-4623 (3) Real-Time Embedded Systems

Design and build a microprocessor-based embedded system application requiring integration of sensor/actuator devices, a real-time operating system and application firmware and software. Real-time rate monotonic theory and embedded architecture are covered. Prereq., ECEN 2350 and ECEN 3350, or instructor consent. Recommended prereq., ECEN 4613. Same as ECEN 5623. Prerequisites: Restricted to students with 87-180 credits (Senior, Fifth Year Senior) College of Engineering majors only.

ECEN-4633 (3) Hybrid Embedded Systems

Introduces system hardware and design techniques for embedded and hybrid reconfigurable systems. Intended for those interested in developing projects using hardware description languages to build application-specific computing systems. Industry standards are used for design, development, and debugging. Prereqs., ECEN 2350, 3350, and 4593, or equivalent. Same as ECEN 5633. Prerequisites: Restricted to students with 87-180 credits (Senior, Fifth Year Senior) College of Engineering majors only.

ECEN-4643 (3) SW Engineering of Concurrent Systems

Addresses engineering of applications requiring multiple software processes running concurrently, sharing data, and communicating as a system in a single environment. Topics include performance analysis of architecture design; analysis of requirements, design and testing of synchronization and communication; the interplay of system design and performance with the impact of memory management, input/output, and file system support. Prereq., ECEN 4583 or 5543. ECEN 4643 and 5643 are the same course. Prerequisites: Restricted to students with 87-180 credits (Senior, Fifth Year Senior).

ECEN-4653 (3) Real-Time Digital Media

Learn how to design and build Linux-based real-time system applications for digital media encode/decode and transport. Course focus is on the process as well as fundamentals of designing, coding, and testing Linux-based real-time systems often used in industry for digital media systems. Students use POSIX kernel-mapped threads and drivers to implement real-time digital media solutions. Prereqs., ECEN 1030 or CSCI 1300, and CSCI 3753 or equivalent. Restricted to engineering students. ECEN 4653 and 5653 are the same course.

ECEN-4743 (3) SW Engineering of Distributed Systems

Addresses engineering of networked applications and self-contained embedded system products involving multiple processors. The fundamental concepts of software engineering are complicated by an application running simultaneously and asynchronously on multiple processors over a network. Topics: specification, analysis, design, and testing of distributed components including concerns of security, synchronization, transaction coordination, data replication, web services, and service oriented architectures. Prereq., ECEN 4583 or 5543 or CSCI 5548. Recommended prereq., ECEN 5643. ECEN 4743 and 5743 are the same course. Prerequisites: Restricted to students with 87-180 credits (Senior, Fifth Year Senior).

ECEN-4753 (3) Computer Performance Modeling

Presents a broad range of system modeling techniques,emphasizing applications to computer systems. Covers stochastic processes, queuing network models, stochastic Petri nets, and simulation (including parallel processing techniques). Prereq., CSCI 3753 or equivalent and second-semester calculus. Recommended prereq., a course in statistics. Same as CSCI 4753, 5753, and ECEN 5753.

ECEN-5322 (3) Search Engine & Analysis of High-dimensional Dataset

Provides students with an exposition of the novel algorithmic methods for searching and analyzing big data. The class includes a project: students design a content-based music information retrieval system similar to those used by Gracenote, Shazam, or Pandora. Restricted to graduate students. Prerequisites: Restricted to Graduate Students only.

ECEN-5503 (3) Computer Systems Design and Architecture

Covers digital logic circuits, assembly language programming, and gate-level computer design and architecture. Also discusses computer arithmetic algorithms, I/O, peripheral device performance, networking, and the Internet. Limited to graduatestudents. For ECE/CS majors with nontraditional backgrounds.

ECEN-5523 (3) Compiler Construction

Same as ECEN 4553 and CSCI 5525. Prerequisites: Restricted to any graduate students or Electrical/Computer Engineering or Electrical Engineering Concurrent Degree majors only.

ECEN-5533 (3) Fundamental Concepts of Programming Languages

Considers concepts common to a variety of programming languages--how they are described (both formally and informally) and how they are implemented. Provides a firm basis for comprehending new languages and gives insight into the relationship between languages and machines. Prereq., CSCI 3155 or instructor consent. Same as CSCI 5535.

ECEN-5543 (3) Software Engineering of Standalone Programs

Applies engineering principles to phases of software product development, project planning, requirements definition, design, design patterns, validation, and maintenance. Emphasizes practical methods for communicating and verifying definitions and designs---prototyping, inspections, and modeling (primarily UML). Includes relation to embedded systems and object-oriented design. Prereqs., ECEN 1030/CSCI 1300, CSCI 2270, or instructor consent. Same as CSCI 5548. Prerequisites: Restricted to Graduate Students only.

ECEN-5553 (3) Parallel Processing

Examines a range of topics involved in using parallel operations to improve computational performance. Discusses parallel architectures, parallel algorithms and parallel programming languages. Architectures covered include vector computers, multiprocessors, network computers, and data flow machines. Prereq., background in computer organization, introduction to programming languages, elementary numerical analysis, ECEN 4593 and CSCI 3656, or instructor consent. Same as CSCI 5551.