Many of key technique now being applied in building services and service-based applications were developed in the areas of databases, distributed computing, and multiagent systems. These are generally established bodies of work that can be readily adapted for service composition. Lecture on service-oriented computing will cover the principles and practice of service-oriented computing. Especially, it introduces architecture, theories, techniques, standards, and infrastructure necessary for employing services.
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)