ENEB - Embedded Systems & Internet of Things

ENEB302 Analog Circuits (4 Credits)

Foundations of circuits, focusing on applications including signal amplification, power amplification, instrumentation and filters. Fundamental concepts of analog circuits including analysis methods in time and complex domains, with emphasis on circuit topologies relevant in embedded systems. Intensive application of simulations and hands-on laboratory exercises.

Prerequisite: Minimum grade of C- in PHYS260 and PHYS261; and 1 course with a minimum grade of C- from (MATH246, MATH241, MATH240); and permission from the Embedded Systems & Internet of Things program required.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB304 Microelectronics and Sensors (3 Credits)

An overview of basic Internet of Things (IOT) architecture, core IOT hardware enablers, and IOT sensors and their implementation. This course covers commonly used analog amplifier designs and biasing, as well as characterization in the frequency and time domains. In addition, this course discusses the physical principles in RF communications as it relates to wireless personal and local networks (WPAN/WLAN) and short-range communication systems.

Prerequisite: Minimum grade of C- in ENEB302; and permission from the Embedded Systems & Internet of Things program required.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB340 Intermediate Programming Concepts and Applications for Embedded Systems (2 Credits)

Principles of programming for embedded systems development. Includes principles of software development in Unix, C and other high level languages, input/output, data types and variables, operators and expressions, program selection, repetition, functions, arrays, strings, introduction to algorithms, software projects, debugging, documentation. Includes hands-on applications in microprocessor environments.

Prerequisite: Completion of approved introductory programming course with a minimum grade of a "C-"; and permission of the Embedded Systems & Internet of Things program required.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB341 Introduction to Internet of Things (3 Credits)

An introduction to the foundations of Internet of Things (IoT), including IoT devices, communications, connection considerations, back-end services/applications, and business models. This course looks at the IoTs as the general theme of physical/real-world things becoming increasingly visible and actionable via Internet and Web technologies. It also covers networking protocols and gateways, security and privacy, data analytics and cloud computing platforms.

Prerequisite: Permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB344 Digital Logic Design for Embedded Systems (4 Credits)

Hands on approach on foundations of digital logic for embedded systems applications; including input/output, logic gates, Karnaugh maps, latches, flip-flops and state-machines. This course also covers design and analysis of synchronous sequential systems, implementation with PLA's, multiplexers, decoders, encoders, binary arithmetic units such as adders and subtractors, conversions between decimal and arbitrary radix numbers, especially octal, hexadecimal, and binary representations, radix and diminished radix arithmetic, and character codes.

Corequisite: ENEB340; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB352 Introduction to Networks and Protocols (3 Credits)

An introduction to the principles of computer networking and covers the architecture and operation of the TCP/IP protocol stack. Topics will include fundamental networking concepts, the layers of the TCP/IP protocol stack, the packet structure and operation of each layer with detailed discussion on reliable data transfer, flow control, congestion control, routing algorithms, error detection, Local Area Networks (LANs), and multiple access protocols. The course will also cover wireless protocols relevant to Internet of Things (IoT) such as WLAN (IEEE 802.11), Zigbee (IEEE 802.15.4), and Bluetooth as well as some popular IoT application-layer and network-layer protocols including CoAP, AMQP, MQTT, XMPP and 6LoWPAN. As a part of the course work, the students will attend lab sessions where they will learn how to capture and analyze network traffic, how to configure networking functions on Linux systems, and how to operate and configure routers using Juniper Networks devices in a real-world lab environment.

Prerequisite: Minimum grade of C- in ENEB341; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB353 Computer Organization for Embedded Systems (3 Credits)

Overview of the basic principles of computer organization and design with emphasis on low resource microcontrollers common in IoT applications. The topics include assembly and machine instructions, data-path and controller design, pipelining and memory hierarchy.

Prerequisite: Minimum grade of C- in ENEB344 and ENEB354; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB354 Discrete Mathematics for Information Technology (3 Credits)

Foundations of discrete mathematics for information technology and embedded computing. Topics include sets, relations, functions and algorithms, proof techniques and induction, number theory, counting and combinatorics, and Graph theory.

Prerequisite: Minimum grade of C- in MATH141.

Restriction: Must be in the Embedded System and Internet of Things program.

ENEB355 Algorithms in Python (3 Credits)

A study of fundamental algorithmic problem-solving techniques in Python for today's large-scale computer systems as well as microcontrollers. Algorithms are instructions for solving problems and data structures are strategies for organizing information on computers. Efficient algorithms require appropriate data structures, and vice versa. Students will learn about the algorithms and data structures that form the building blocks of Python programming language. Student will also learn to analyze the cost of algorithms, according to how their running time or space requirements grows as data size grows.

Prerequisite: Minimum grade of C- in ENEB340 and ENEB354; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB443 Hardware/Software Security for Embedded Systems (3 Credits)

This course will provide an in-depth understanding of systems level software and hardware in designing industry-standard secured embedded systems. It aims to provide a comprehensive systems view of security, including hardware, platform software such as operating systems and integrated development environments, software development process, data protection protocols, and some aspects of cryptography. To goal is to expose students on how to develop embedded software and properly utilize platform components to ensure the highest levels of security.

Prerequisite: Permission from the Embedded Systems & Internet of Things program; and minimum grade of C- in ENEB454.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB444 Operating Systems for Embedded Systems (3 Credits)

Theory, design, implementation and analysis of low-resource computer operating systems for IoT applications. Through classroom lectures, homework, and projects, students learn the fundamentals of concurrency, process management, interprocess communication and synchronization, job scheduling algorithms, memory management, input-output devices, file systems, and real-time operating systems. Optional topics may include communications protocols and computer security.

Prerequisite: Minimum grade of C- in ENEB340 and ENEB344; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB452 Advanced Software for Connected Embedded Systems (3 Credits)

Hardware and software foundations, evaluations and validation, application mapping, optimization and testing of cyber-physical systems, namely, embedded systems and communication technologies.

Prerequisite: Minimum grade of C- in ENEB454; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program; and senior standing.

ENEB454 Embedded Systems (3 Credits)

This course will provide students with the essential knowledge base that will enable them to tackle complex problems encountered in embedded systems design. The course will provide an overview of associated hardware components and software methodologies as well as the tools used in the development of modern embedded systems. Student will be exposed to the theoretical foundations which will be reinforced with carefully selected hands-on laboratory exercises, thereby getting a sense of how the theoretical concepts connect with the real-world embedded systems applications.

Prerequisite: Minimum grade of C- in ENEB353; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB455 Advanced FPGA System Design using Verilog for Embedded Systems (3 Credits)

A project-oriented course on digital system design using Verilog hardware description language (HDL) in an industry-standard design environment appropriate for embedded systems. Students will implement real-world designs in field programmable gate arrays (FPGAs) as well as test and optimize the FPGA. Students will also work in teams on multiple, medium-scale digital system design projects and make oral presentations and written reports.

Prerequisite: Minimum grade of C- in ENEB344 and ENEB340; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB457 Foundations of Databases for Web Applications (3 Credits)

An introduction to database systems and its applications to the Internet. It develops the database approach as a means to model the real world. The course will cover the fundamentals of the relational model, structured query language (SQL), data modeling, and database administration. This will cover an in-depth coverage of the relational model, logical database design, query languages, and other DB concepts including query optimization, concurrency control, transaction management, and log based crash recovery. In addition, students will be exposed to web-based database processing, data warehouse structures and fundamental concepts of nonrelational structured data storage (Big Data). Concepts will be illustrated with well-known Database Management System (DBMS) products such as MS Access, MS SQL Developer, Oracle Database XE, and MySQL Community Server.

Prerequisite: Minimum grade of C- in ENEB345, ENEB352, and ENEB355; and permission from the Embedded Systems & Internet of Things program.

Restriction: Must be in the Embedded Systems & Internet of Things program.

ENEB499 Senior Research Projects in Embedded Systems & Internet of Things (1-5 Credits)

Provides students in the Embedded Systems & Internet of Things (ESIOT) program with an opportunity to engage in independent research projects on advanced embedded systems topics. Projects are selected by students and supervised by faculty and other qualified mentors. While students may be required to acquire new skills or information in the course of completing an ENEB499 project, the focus is to conduct an independent investigation of a technical theme by the student.

Prerequisite: Permission of the Embedded System and Internet of Things program.

Restriction: Must be in the Embedded System and Internet of Things program.

Repeatable to: 5 credits if content differs.