Embedded Systems and Internet of Things

Course Descriptions

The Embedded Systems and Internet of Things Bachelor's of Science program is a two-year program (4 semesters) equaling 62 credits, with a minimum of 60 credits completed prior to starting the program.  The ESIOT program is located at the Universities at Shady Grove campus in the Biomedical Sciences and Engineering Building (BSE). Interested in the ESIOT courses? Read the course descriptions below. 

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: completion of approved MATH2xx course and PHYS260/261 with a grade of "C-" or better.

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: ENEB302 with a grade of "C-" or better.
ENEB340 Intermediate Programming Concepts and Applications for Embedded Systems (3 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 required programming course (see first/second-year course requirements for details) with a grade of "C-" or better.
ENEB341 Introduction to Internet of Things (3 credits)
An introduction to the foundations of the 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. Topics include Communication aspects involved in IoT system (wired and wireless connectivity and technologies), Power and Energy Management & Optimization, Network Topologies for IoT, IoT Protocols, IoT – Technologies & Software and applications, like Microsoft Azure IoT and Amazon Web Services IoT. Case studies for industrial IoT (M2M), home automation, and healthcare will be discussed.
ENEB344 Digital Logic Design for Embedded Systems (4 credits)
Hands-on approach to learning foundations of digital circuits, including input/output, logic gates, Karnaugh maps, latches, flip-flops, and state machines. This course also covers the 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. Students are exposed to Verilog HDL design synthesis tool. Co-requisite: ENEB340.
ENEB345 Probability and Statistical Inference (3 credits)
Simple tests of statistical hypotheses; applications to before-and-after and matched pair studies. Events, probability, combinations, independence. Binomial probabilities, confidence limits. Random variables, expected values, median, variance, standard distributions, moments, law of large numbers, tests based on ranks, normal approximation, central limit theorem. Sampling methods, estimation of parameters, testing of hypotheses.
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 the 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: completion of ENEB341 with a grade of "C-" or better.
ENEB353 Computer Organization for Embedded Systems (3 credits)
An 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: completion of ENEB344 and ENEB354 with a grade of "C-" or better.
ENEB 354 Discrete Mathematics for Information Technology (3 credits)
Foundations of discrete math for information technology. Topics include sets, relations, functions and algorithms, proof techniques and induction, Number theory, Counting and combinatorics, and Graph theory.
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. Students will also learn to analyze the cost of algorithms, according to how their running time or space requirements grow as data size grows. Pre/co-requisites:ENEB340 and ENEB354       


ENGL 393 Technical Writing (3 credits)
The writing of technical papers and reports. This course teaches students how to make the technologies they work with understandable to many different types of readers. (Offered by the English department)


ENEB408 Capstone Design Lab I
A culminating design experience with specific attention to real-world requirements in terms of constraints and component selection, optimization, security, and integration into systems. Prerequisite: Senior level standing in the program.
ENEB409 Capstone Design Lab II
A culminating design experience with specific attention to real-world requirements in terms of constraints and component selection, optimization, security, and integration into systems. Prerequisite: Senior level standing in the 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 secure 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 to how to develop embedded software and properly utilize platform components to ensure the highest levels of security. Prerequisite: completion of ENEB454 with a grade of "C-" or better.
ENEB444 Operating System 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: completion of ENEB340 and ENEB344 with a grade of "C-" or better.
​​​​​​​ENEB451 Network Security (3 credits)
This course covers the foundations of modern cryptography and the current efforts from both academia and industry in building trustworthy computing. We will focus on the technology advances, industrial standards, and law enforcement that have been or have to be made to establish trust in four key areas to establish the trust in computing: security, privacy, reliability, and business integrity. Prerequisite:  completion of ENEB352 with a grade of "C-" or better.
ENEB452 Advanced Software for Embedded 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: completion of ENEB454 with a grade of "C-" or better. Senior-level standing in the program.
​​​​​​​ENEB453 Web-based Applications Development (3 credits)
Introduction to computer programming in the context of developing full-featured dynamic websites. Uses a problem-solving approach to teach basics of program design and implementation using JavaScript; relates these skills to the creation of dynamic websites; then explores both the potential and limits of web-based information sources for use in research. Prerequisite: completion of ENEB355 and ENEB341 with a grade of "C-" or better.
​​​​​​​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. Students 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: completion of ENEB353 with a grade of "C-" or better.

​​​​​​​ENEB455 Advanced FPGA System Design using Verilog (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: completion of ENEB344 and ENEB340 with a grade of "C-" or better.

ENEB456 Machine Learning Tools (3 credits)
A broad introduction to machine learning and statistical pattern recognition.  Topics include: Supervised learning (Bayesian learning and classifier, parametric/non-parametric learning, discriminant functions, support vector machines, neural networks, deep learning networks); Unsupervised learning (clustering, dimensionality reduction, auto-encoders). The course will also discuss recent applications of machine learning, such as computer vision, data mining, autonomous navigation, and speech recognition. Prerequisite: completion of ENEB345 and ENEB341 with a grade of "C-" or better.
​​​​​​​ENEB457 Foundation of Databases for Web Applications (3 credits)
An introduction to database systems and their 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 non-relational structured data storage (Big Data). Concepts will be illustrated with well-known DBMS products such as MS Access, MS SQL Developer, Oracle Database XE, and MySQL Community Server.  Prerequisite: completion of ENEB345, ENEB352, and ENEB355 with a grade of "C-" or better.



Apply Today!