Courses

Emphasizes elements of discrete mathematics appropriate for computer engineering. Topics: logic, proof techniques, algorithms, complexity, relations, and graph theory. Prerequisites: Requires prerequisite courses of ECEN 1310 or CSCI 1300 and APPM 1360 or MATH 2300 (all minimum grade C-). Restricted to College of Engineering students only.
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. CSCI 3302 and ECEN 3303 are the same course. Prerequisites: Requires prerequisite courses of CSCI 2270 and CSCI 2824 or ECEN 2703 or APPM 3170 (all minimum grade C-).
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. Recommended prereqs., PHYS 1120, CSCI 3656, and MATH 3130. Same as CSCI 4446 and ECEN 5423. Prerequisites: Requires prerequisite courses of APPM 1360 or MATH 2300 and ECEN 1310 or CSCI 1300 and PHYS 1110 (all minimum grade D-). Restricted to College of Engineering majors only.
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. Same as CSCI 4555 and ECEN 5523. Prerequisites: Requires prerequisite courses of ECEN 2703 and ECEN 3350 (all minimum grade D-). Restricted to College of Engineering majors only.
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. Prerequisites: Requires prerequisite course of CSCI 2270 (minimum grade C-). Restricted to College of Engineering majors only.
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. Recommended prereqs., ECEN 3250 and 4593. Same as ECEN 5613. Prerequisites: Requires prerequisite course of ECEN 3350 or CSCI 2400 (minimum grade D-). Restricted to students with 87-180 credits (Senior, Fifth Year Senior) College of Engineering majors only.
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. Recommended prereq., ECEN 4613. Same as ECEN 5623. Prerequisites: Requires prerequisite course of ECEN 3350 (minimum grade D-). Restricted to College of Engineering majors only.
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. Same as ECEN 5633. Prerequisites: Requires prerequisite courses of ECEN 3350 and ECEN 4593 (all minimum grade D-). Restricted to College of Engineering majors only.
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. ECEN 4643 and 5643 are the same course. Prerequisites: Requires prerequisite course of ECEN 4583 or ECEN 5543 (minimum grade D-). Restricted to College of Engineering majors only.
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. ECEN 4653 and 5653 are the same course. Prerequisites: Requires prerequisite course of ECEN 1030 or ECEN 1310 or CSCI 1300 (minimum grade D-). Restricted to College of Engineering majors only.
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. For ECEN 5743, recommended prereq., ECEN 4583 or ECEN 5543 or CSCI 5548. ECEN 4743 and 5743 are the same course. Prerequisites: Requires prerequisite course of ECEN 4583 or ECEN 5543 or CSCI 5548 (minimum grade D-). Restricted to College of Engineering majors only.
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). Also requires second-semester calculus. Recommended prereq., a course in statistics. Same as CSCI 4753, 5753, and ECEN 5753. Prerequisites: Requires prerequisite course of CSCI 3753 (minimum grade C-). Restricted to College of Engineering majors only.
Focusing on the design and implementation of network protocols and algorithms. Topics covered include the internet's layered protocol stack, TCP/IP, Web/HTTP, email/SMTP, DNS, Ethernet, wireless networks, secure networking, etc. Students will learn socket-based network programming. Familiarity with C and UNIX required. Same as CSCI 4273/5273. Prerequisites: Requires prerequisite course of CSCI 3753 (minimum grade C-).
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. Prerequisites: Restricted to graduate students only.

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.

Same as ECEN 4553 and CSCI 5525. Prerequisites: Restricted to any graduate students or Electrical/Computer Engineering or Electrical Engineering Concurrent Degree majors only.
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. Same as CSCI 5535. Prerequisites: Requires prerequisite course CSCI 3155 (minimum grade D-).
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. Same as CSCI 5548. Prerequisites: Requires prerequisite courses ECEN 1030, CSCI 1300 and CSCI 2270 (all minimum grade D-). Restricted to graduate students only.

Pages