Signals and Systems (ENGIN 321)

The concepts of signals and systems arise in all areas of technology. This course provides an introduction to the analysis of linear systems in the time and frequency domain (e.g., what is the output of a system if we know the input and the impulse response function or the transfer function of the system, how to characterize a system by stimulating it and measuring the output signals, etc.). Students will learn about the input/output differential or difference equation, the convolution theorem and its applications, the continuous-time and discrete-time Fourier and Laplace transforms, and how to use Matlab in solving problems.

Semesters Taught: Fall 2017, Fall 2018, Fall 2019, Fall 2021, Fall 2022

Probability and Random Processes (ENGIN 322)

An introduction to probabilistic description via the probability density function or distribution function and statistical description via the ensemble average, variance, etc. of random signals as applied to the analysis of linear systems. Key topics and concepts also include: conditional probability, statistical independence, correlation, sampling theory, confidence intervals, hypothesis testing, stationary and ergodic processes, autocorrelation and cross-correlation functions, spectral density, and their interconnections.

Semesters Taught: Spring 2018, Spring 2019, Spring 2020, Spring 2021, Spring 2022

Advanced Digital Design (ENGIN 341)

An introduction to the tools and methodologies for top-down design of complex digital systems. Important topics include minimization, mixed logic, algorithmic state machines, microprogrammed controllers, creating and using a gold model, data and control path design, and data movement and routing via buses. Design methodologies covered include managing the design process from concept to implementation, gold model validation, and introduction to design flow. A hardware description language is used extensively to demonstrate models and methodologies and is also used in design exercises and projects.

Semesters Taught: Fall 2019, Spring 2021, Spring 2022

Computer Communications and Security (ENGIN 342)

This course introduces the communication methods of modern computers and devices along with the associated data privacy/security concerns and methods to address such concerns. Students develop an introductory understanding of network hierarchy and modular design of computer communication systems. The course first covers physical layer modulation schemes for wired/wireless data communications and data link layer standards for error detection/correction and medium access in wired networks, wireless local area networks (WLANs), and cellular networks. Network and Transport layer protocols are then introduced and evaluated. Performance metrics for capacity, fairness, security, and reliability are also introduced at different layers of the network stack.

Semesters Taught: Fall 2022

Computer Architecture (ENGIN 446)

An introduction to computer architectures; analysis and design of computer subsystems including central processing units, memories and input/output subsystems; important concepts include datapaths, computer arithmetic, instruction cycles, pipelining, virtual and cache memories, direct memory access and controller design.

Semesters Taught: Fall 2018

Computer Communication Networks (EC541)

Graduate-level course on performance analysis of communication networks. The objective of the course is to introduce popular mathematical models of computer communications and analytic techniques to quantify critical performance issues. Topics covered include fundamental concepts in computer networking, the Poisson process, Queuing and delay models in communication networks, and Markov chains.

Semesters Taught: Spring 2017 (Boston University)