ENEB - Cyber-Physical Systems Engineering

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 Cyber-Physical Systems Engineering program required.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program required.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

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 approved introductory programming course with a minimum grade of a "C-"; and permission of the Cyber-Physical Systems Engineering program required.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

ENEB345 Probability & Statistical Inference (3 Credits)

This is a foundational course on probability and statistics for data science and connected embedded systems. This covers basic statistics and probability theory, including random variables, standard distributions, moments, law of large numbers and central limit theorem, sampling methods, estimation of parameters, testing of hypotheses. The course also includes the mathematical theory of randomness, and applications to big data analysis and analysis in the presence of uncertainty, and applications to machine learning algorithms.

Prerequisite: MATH141.

Restriction: Must be in the Embedded Systems & Internet of Things program; and must receive permission from the Embedded Systems & Internet of Things program.

ENEB346 Linear Algebra for Machine Learning Applications (3 Credits)

Foundations of linear algebra for machine learning and data science applications with emphasis on implementing machine learning data science algorithms in a computer programming environment with linear algebra software tools and libraries as this course aims to provide a hands-on experience and learning environment for students. Students will learn the fundamental concepts in linear algebra that are directly relevant to machine learning and big data modeling and computations. These include vector and matrix operations, determinants, factorization methods, principal component analysis, eigenvalues, and singular value decomposition.

Prerequisite: MATH140.

Restriction: Must be in the Cyber-Physical Systems Engineering program and must receive permission from the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

Credit Only Granted for: ENEB355 or ENBC322.

ENEB408 Capstone Design Lab (3 Credits)

This course is the first of a two-semester sequence of capstone design laboratory experiences required for Cyber-Physical Systems Engineering students. Students will learn the principles of design, project planning, and project management. They will develop an ability to apply engineering solutions considering public health, safety, and welfare. Students will develop a consciousness of ethical and professional responsibilities and recognition of global, cultural, social, environmental, and economic factors in the design process. Students will also develop an ability to communicate in written and oral forms and to function effectively on a team. Projects will involve hardware, including a combination of off-the-shelf and custom-made components supported by hardware descriptive language software. The projects meet specific design challenges with applications in industry, healthcare, transportation, environmental sensing, cyber-security, and machine learning.

Prerequisite: Minimum grade of C- in all required 300-level ENEB courses.

Restriction: Must be in the Cyber-Physical Systems Engineering program; and must receive permission from the Cyber-Physical Systems Engineering program.

Repeatable to: 6 credits.

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 Cyber-Physical Systems Engineering program; and minimum grade of C- in ENEB454.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

ENEB451 Network Security (3 Credits)

The foundations of modern cryptography including IoT security aspects, IoT features leading to security issues, as well as design considerations. Various cryptographic algorithms are discussed including the lightweight cryptography used in IoT applications. 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. Students will implement cryptographic algorithms using industry-standard tools and programming languages. Furthermore, students will analyze various encryption algorithms using cryptanalysis tools.

Prerequisite: Minimum grade of C- in ENEB352.

Restriction: Must be in the Cyber-Physical Systems Engineering program and must receive permission from the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program; and senior standing.

ENEB453 Web-Based Application Development (3 Credits)

Introduction to cloud computing, 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. This course provides a practical introduction to full-stack web development using PHP and JavaScript. The course will start with HTML/CSS/JavaScript to cover the client-side of applications. Then, it will move on to the server-side with PHP and integrating with a MySQL database to create a complete web application.

Prerequisite: ENEB340 and ENEB341.

Restriction: Must be in the Cyber-Physical Systems Engineering program; and permission of the Cyber-Physical Systems Engineering program.

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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

ENEB456 Machine Learning Tools (3 Credits)

A broad introduction to machine learning and statistical pattern recognition tools. The course will teach students to model existing data and to forecast future behaviors, outcomes, and trends. It will be taught using the Azure Machine Learning Studio that provides an integrated, end-to-end data science and advanced analytics solution. It will enable students to prepare data, develop experiments, and deploy models at cloud scale. Topics include: supervised learning (Bayesian learning and classifier, parametric/non-parameteric 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. Hands-on: implementation of Tensorflow Algorithm on TPU board.

Prerequisite: ENEB345 and ENEB346.

Restriction: Must be in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

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

Provides students in the Cyber-Physical Systems Engineering 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 Cyber-Physical Systems Engineering program.

Restriction: Must be in the Cyber-Physical Systems Engineering program.

Repeatable to: 5 credits if content differs.