This course provides theory and practice for modeling and simulation of discrete event systems which include communication networks, manufacturing systems, and high-level computer systems. Topics include system taxonomy and discrete event systems (DES) characteristics; three entities in modeling and simulation; model representation and formalism construction; DEVS (Discrete Event systems Specification) formalism and DES modeling; simulation algorithm for DES; Petri Net modeling and analysis; statistics for modeling, simulation and analysis; model validation; output analysis and performance evaluation; advanced topics in DES modeling and simulation.
The goal of this course is to understand the principles and organization of computer systems and to learn the performance enhancing techniques and quantitative analysis methods used in advanced processors. This course covers high-performance techniques such as pipelining and out-of-order processing, memory hierarchy including a cache memory and virtual memory, interrupt processing, and how to design a processor based on quantitative analysis. In addition, recent important topics such as SIMD and multiprocessors will be introduced and design and simulation for a virtual processor are to be practiced for a comprehensive understanding of computer systems.
(Prerequisite: EE303, EE312)
Lecture on Operating System and Network System handles network middleware. Network middleware is a distributed software layer that works above the network operating system and below the application layer and abstracts the heterogeneity of the underlying environment. The role of middleware in network systems will become increasingly important, especially in emerging technology areas such as mobile computing where the integration of different applications and services from different wired and wireless networks becomes important. Since middleware is represented with providing useful building blocks for the construction of software component, the lecture will introduce basic principles, architectures, interactions in distributed systems, and a broad sense of content in the computing infrastructure.
Every scientific research starts with finding new problems. Likewise, the most important step in security research is to discover new attacks. Today, media is filled with attacks on various systems: Web servers, DNS, Internet banking, e-voting systems, cellular networks, social networks, mobile phones, nuclear power plants, and implantable medical devices. These attacks are originated from various vulnerabilities, such as user interface design, ignorance or security by obscurity, deployment mistakes, and physical exposure. The main objective of this course is to learn how to think like an adversary. In other words, we will look at various ingenious attacks and discuss why and how such attacks were possible. This is the first crucial step to design and deploy systems robust against various attacks. (Prerequisite: EE323, EE415)