Theory of Hacking

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)


  • The aims of this course are to make the student understand the principles and fundamental concepts of circuit analysis; to develop the student's familiarity and understanding in modeling and analyzing circuits through a variety of real-world examples. Another important aim is to extend the student's ability to apply system analysis to other branches of engineering.

  • This course is an introduction to continuous-time and discrete-time signals and systems. The course covers Fourier series, Fourier transform, Laplace transform, and z-transform. Various types of systems with emphasis on linear time invariant system is studied.

  • This course covers data structures, algorithms, JAVA for electron electronics engineering. We study object-oriented programming techniques and use programming language C, JAVA.

  • Experiments related to electronics are performed. Focus is made for both hands-on experience and design practice. (Prerequisite: EE201, EE304)


  • In this design experiment laboratory, knowledge learned in many other courses in this division are brought to bear on performing a project combining analog/digital and hardware/software. Hence, a chip stone design experiment will be performed, which establishes a synthesized application of undergraduate theory courses. For example, analog AM radio will be designed using various analog circuits, and voice recorder will be designed using Linux based embedded system.

  • This course is to provide EE students with understanding and ability for design and implementation of data structure for problems solving in the EE area using computer programming. It deals with information representation using data abstraction, object-oriented programming, Algorithm analysis. Basic data structures to be covered are Array and Linked list, Stack and Queue, Tree, Graph, Sorting, and Hashing. Applications of such basic structures in EE problems using C++ are also covered.

  • In this course, we discuss such various topics in probability theory and introductory random processes as probability, random variables, expectations, characteristic functions, random vectors, random processes, correlation functions, and power spectrum. From time to time, homework problems will be assigned, usually not for mandatory submission.

  • Much of the basic discrete mathematical tools useful in electrical and computer engineering will be presented, with applications. Students will learn actively the art of creating real-world proofs in these areas, preparing them for diverse regions of electrical and computer engineering such as communication, architecture, networking, algorithms, cryptography, etc.

  • The objective of this course is to understand the basic principles and hardware structures of computer systems including personal computers and workstations, and to learn how to design computers. This course covers data representation, CPU organization, instruction classification, language processing of assemblers and compilers, pipelining for performance enhancement, memory hierarchy, cache memory, and IO peripheral devices. In addition, high-performance computer systems are to be introduced.

  • This course will help the students learn how to design and implement computer networks, and their protocols, services, and applications. This course will include both principles and practice, but more importantly, is designed to let the students have hands-on experience. Most of the topics will be connected to the Internet, i.e., how the Internet works.

  • This is an introductory networking course based on the Cisco Networking Academy Program and provides knowledge and practical experience with the design, configuration, management, and maintenance of computer networks. Topics include OSI 7-layer architectures, cabling, Ethernet, routing, TCP / IP protocols, IP addressing, routing protocols, WANs, network troubleshooting, and access control lists.

  • In this lecture, various hardware and software components and system implementation aspects of an embedded system are covered. Covered topics include bus-based expandable ARM processor-based board, open-source embedded Linux operating system, PC-based software development environment, digital and analog interface techniques, ARM assembly language, device drivers. Hands-on experience is gained to enhance firm understanding.
    (Prerequisite: EE303)

  • This course provides students with the knowledge and skills necessary to build a foundation in system programmings for Electrical Engineering, especially focused on operating systems and implementation. Topics include an overview of the components of an OS, concurrency, synchronization, processes, memory management, I/O devices, and file systems.

  • This course emphasizes practical implementation aspects of digital communication systems. A physical-layer software implementation project will be assigned for a selected commercially-deployed communication system. Topics covered in this digital communication course include (1) Digital modulation and demodulation, Optimum receivers, (2) Adaptive equalization and Synchronization, (3) Channel capacity, Error control codes.
    (Prerequisite: EE321)

Show List