Electrical and Electronic Engineering
Quantum Computing
1. BScQuantum Computer and Simulation 1
Course Objective
- Understand the basic concepts of quantum computing and quantum information.
- Learn quantum algorithms and practice quantum coding using IBM Qiskit.
- Understand the physical systems that constitute qubits.
- Learn quantum error correction essential for NISQ devices.
Textbook
Quantum Coding Practice Materials
2. BScQuantum Machine Learning
Course Objective
- Understand the basic principles of quantum information theory and its applications on quantum computing.
- Learn basic oracle-based quantum algorithms.
- Understand near-term quantum machine learning algorithms.
Textbook
- An Introduction to Quantum Computing (Oxford University Press) by Phillip Kaye, Raymond Laflamme, and Michele Mosca
- Quantum Computation and Quantum Information (Cambridge University Press) by Michael A. Nielsen and Isaac L. Chuang
- Machine Learning with Quantum Computers (Springer) by Maria Schuld and Francesco Petruccione
3. BScElectrical and Electronic Engineering Capstone Design
Course Objective
- Cultivate creative engineers with synthetic research ability.
- Develop an engineering program considering industry requirements.
- Summarize the undergraduate programs of EE.
Capstone Topic
- Title: HS-Table: A Table-Based Algorithm for Optimizing Quantum Circuits through Qubit Reuse
In the noisy intermediate-scale quantum (NISQ) era, resources to build and execute quantum computers are valuable, and saving the resources is a crucial matter.
Recently, mid-circuit measurement is being utilized to optimize quantum circuits.
Using the technique, the qubits of a quantum circuit can be reused during the execution, and it can reduce the resources and improve the fidelity of the circuit.
However, finding reusable qubits and transforming a circuit to an optimized form are challenging since the quantum gates in a quantum circuit are dependent each other.
We devised HS-Table (Hyungseok-Table) which represents a quantum circuit in a tabular format.
HS-Table shows the dependency in an orderly fashion, compared to representing a circuit as a directed acyclic graph (DAG), which has been used so far.
We designed a complete algorithm to optimize a quantum circuit through qubit reuse using HS-Table.
Using the HS-Table algorithm, the optimal form of a quantum circuit whose qubits are reused can be found.
The algorithm can be applied as a part of the compiler that compiles a written quantum program to an executable form.
By utilizing the algorithm, the following advantages can be obtained: (a) qubit usage is maximally reduced, (b) average circuit depth is decreased, and (c) SWAP gate insertion is reduced.
We verified the effects using practically used quantum applications and show that the qubit usage is reduced by 55%, average circuit depth is decreased by 61%, and SWAP gate insertion is reduced by 63% on regular applications.
For QAOA applications, we demonstrated the tradeoff between the reduction ratios and the topologies of the target graphs.
Using the scalable quantum applications, we showed that the algorithm is also effective to large-scale quantum circuits.
Capstone Team
- Members: 1 student
- Role: Team Leader
- Responsibility: Every aspect of the project from planning to execution.
Research Lab
- Lab: Embedded Systems and Computer Architecture Lab (eSCaL)
- Advisor: Prof. Won Woo Ro
- Teaching Assistant: Enhyeok Jang
Course Objective
- Acquire a firm understanding of the quantum-mechanical foundations of qubit superposition, entanglement, and interference at the heart of all quantum computations.
- Understand the early quantum algorithms such as Deutsch’s Problem, Bernstein-Vazirani, and Quantum FFT, and be able to code and execute them on a QPU.
- Know recent near-term quantum algorithms like the quantum simulation of Hamiltonian dynamics.
- Understand and control, in principle, the quantum circuit compilation pipeline and error mitigation techniques to execute near-term quantum workloads on QPUs.
Textbook
Computer Architecture
Course Objective
- Understand the basic principles of digital circuits and analysing simple digital systems.
- Learn Boolean algebra, Karnaugh map, combinational circuit, and sequential circuit.
Textbook
Course Objective
- Understand the basic principles of computer architecture.
- Learn the structure of RISC CPU.
- Learn the CPU pipeline structure.
- Learn cache and memory structure.
Textbook
- Computer Organization and Design RISC-V Edition (Morgan Kaufmann) by David A. Patterson and John L. Hennessy
Projects
- Project 1-1: Implementing a simple combinational circuit using on Quartus II.
- Project 1-2: Designing an 8-bit arithmetic logic unit (ALU).
- Project 2: Designing a 64-bit single-cycle RISC-V microprocessor.
- Project 3: Designing a 64-bit pipelined RISC-V microprocessor.

The block diagram of a pipelined RISC-V microprocessor.
Course Objective
- Understand the basic principles of communication networks.
- Learn protocols of communication networks.
- Learn control algorithms of communication networks.
Textbook
Projects
- Project 1: Investigating behaviors and analysing packets of HTTP, TCP, and UDP protocols using Wireshark.
- Project 2: Investigating behaviors and analysing packets of IPv4, Ethernet, and 802.11 Wi-Fi protocols using Wireshark.
Course Objective
- Understand the basic principles of process and scheduling.
- Learn the basic concepts of memory virtualization, multi-threading, and file systems.
- Programming practice of operating systems using xv6-riscv.
Textbook
Projects
- Assignment 1: Implementing a simple shell in xv6-riscv.
- Assignment 2: Adding a new system call to xv6-riscv that probes processes and prints out their information, including process ID, execution state, runtime, and program name.
- Assignment 3: Replacing the round-robin process scheduler of xv6-riscv with a fair-share scheduling algorithm.
- Assignment 4: Replacing the next-fit free list management scheme of xv6-riscv's malloc library with the best-fit policy.
- Assignment 5: Modifying the paging scheme of xv6-riscv to allocate physical frames belatedly on their first write access, referred to as copy-on-write.
- Assignment 6: Implementing multi-threading features in xv6-riscv.
Course Objective
- Understand parallel architectures and major peripheral devices.
- Learn ARM processor and ARM assembly language for mobile SoCs.
- Learn the solid-state drive (SSD) architecture.
Project (in groups of 2)
- Designing garbage collection and wear-leveling algorithm of block associative sector translation (BAST) flash translation layer (FTL) for an SSD.
- Team Member: James Jihyun Moon
6. BScMulticore and GPU Programming
Course Objective
- Understand programming models for multi-threading (Pthread).
- Understand programming models for multicore CPUs (OpenMP).
- Understand programming models for GPUs (CUDA).
Textbook
- Programming Massively Parallel Processors: A Hands-on Approach (Morgan Kaufmann) by Wen-mei W. Hwu, David B. Kirk, and Izzat El Hajj
- Parallel Programming: Concepts and Practice (Morgan Kaufmann) by Bertil Schmidt, Jorge Gonzalez-Dominguez, Christian Hundt, and Moritz Schlarb
- C++ Concurrency in Action (Manning) by Anthony Williams
Projects
- Assignment 1: Implementing a simple filter on 1D array using Pthread.
- Assignment 2: Implementing a hash table using open addressing method using Pthread.
- Assignment 3: Implementing a matrix multiplication kernel using OpenMP.
- Assignment 4: Implementing a matrix multiplication kernel using CUDA.
- Assignment 5: Implementing 7 versions of sum reduction kernels using CUDA.
- Assignment 6: Implementing the VGG16 DNN model using CUDA.
Machine Learning
1. BScIntroduction Artificial Intelligence
Course Objective
- Understand the basic concepts and components of artificial intelligence (AI) and machine learning (ML).
- Learn to formulate and to prepare the data for learning processing.
- Learn to utilize and to implement programs for recognition applications and to evaluate the performance.
Textbook
Projects
- Project 1: Performing a linear regression for classification using the dataset
from sklearn.datasets import load_iris
. - Project 2: Training a decision tree regressor using the dataset
from sklearn.datasets import fetch_california_housing
.
Course Objective
- Understand reinforcement learning through programming.
- Learn various reinforcement learning methods such as Markov Decision Process (MDP), Dynamic Programming (DP), Monte Carlo, Temporal-Difference (TD) learning, and Q-learning.
- Implement various reinforcement learning techniques through Python/PyTorch coding and compare their strengths and weaknesses.
Textbook
- Reinforcement Learning, second edition: An Introduction (Bradford Books) by Richard S. Sutton and Andrew G. Barto
Projects
- Project 1: Implementing a program that solves the value function of a simple gridworld problem by matrix inversion.
- Project 2: Implementing the DP algorithm to solve a gridworld problem.
- Project 3: Implementing the Monte Carlo Control On Policy Simulation to solve a gridworld problem.
- Project 4: Implementing the Q-learning Simulation to solve a gridworld problem.

The gridworld problem.
References
3. BScSpecial Topics in Pattern Recognition
Course Objective
- Focus on a special topic about "elements of learning from data" by going through important components in the field and link among these learning elements in pattern recognition.
- Cover recent and advanced learning algorithms from literatures of machine learning, neural network, and pattern recognition with particular attention paying towards relationships among the learning components.
Textbook
- The Elements of Statistical Learning: Data Mining, Inference, and Prediction (Springer) by Trevor Hastie, Robert Tibshirani, and Jerome Friedman
Projects
- Project 1: Performing classification using the linear regression model and reduced multivariate (RM) model and comparing the accuracies using the experimental data of Gaussian distribution.
- Project 2: Performing a 5-fold cross validation test for the 3 data sets which are Mushroom, Iris, and Optical Recognition of Handwritten Digits, using the following algorithms: 3-layer multi-layer perceptron (MLP) at different hidden node sizes, support vector machine (SVM) using different kernels, and RM Model for orders 1 to 5.

Project 1: The decision boundary line at order 5.
References
Software Engineering
1. BScEngineering Information Processing
Course Objective
- Understand the basic concepts of programming.
- Learn problem solving methods using the C programming language.
- Improve the ability of solving some engineering-related subjects using the C programming language through various tasks.
Project (in groups of 2)
-
Implementing a household account book program with the following functions:
print the contents of all entries, add a new entry, delete or modify an entry,
find some item from entry, calculate the current balance, display verbal histogram,
sort entries, display the sum of card and cash, write the contents to
account_book_new.txt
file, and quit.

The initial screen of the household account book program.
2. BScData Structure and Algorithms
Course Objective
- Understand abstract data types using the C programming language.
- Analyze and design basic algorithms.
- Introduction to the discrete mathematics system that is the basis of computer science and coding theory.
Textbook
Digital System Design
1. BScIntroductory Digital Labs
Course Objective
- Learn basic digital logic design skills through laboratory experiments and projects.
Projects
-
Implementing a simple running game on a XILINX PYNQ-Z2 board.
- Characters: Yonsei University Eagle, MIT Beaver, and Caltech Beaver.
- Background music: The Skaters' Waltz from Antarctic Adventure (1983) by KONAMI. Originally composed by Émile Waldteufel.
2. BScDigital Microelectronics
Course Objective
- Understand CMOS transistors.
- Learn combinational and sequential VLSI circuit design.
- Learn subsystems of a computer such as data path, array, I/O, and clock.
Textbook
Project (in groups of 2)
-
Designing a 6-bit decoder and digitally controlled delay line (DCDL) using combinational circuit.
- Pre-/main- decoder structural analysis and design considering metal resistance and capacitance.
- DCDL structural analysis and design considering uniform step-delay.

A uniform step-delay DCDL.
References
Course Objective
- Understand system IC design flow.
- Learn structural and behavioral modeling.
- Learn synthesis and verification.
- Learn design for testability and low power.
Project (in groups of 3)
- Designing, verifying, and synthesising a modified advanced encryption standard (AES) 128 decryptor.
References
Projects
- Midterm Project
-
Abstract:
This report introduces a methodology of designing a liquid-crystal display (LCD) controller utilizing a fieldprogrammable gate array (FPGA) board. The controller controls two LCDs: a Text-LCD and a thin-film-transistor LCD (TFT-LCD). Instead of merely displaying texts, it interlocks data of two LCDs and implements effects such as blinking and color. Effects can be controlled through external buttons. The controller is designed through Verilog hardware description language (HDL) and implemented on an FPGA board. By operating the designed LCD controller, it can be verified that LCDs display and exchange characters in the form of American standard code for information interchange (ASCII) codes.A block diagram of the LCD controller.
-
Abstract:
- Final Project
-
Abstract:
This report introduces the methodology of designing an interrupt clock using a field-programmable gate array (FPGA) board. The interrupt clock has two functions: retrieving the initial time from the real-time clock (RTC) and setting the time. The clock receives push button signals as interrupts, and these interrupts control the clock functions. The time is displayed on the 7-segment. The input/output (I/O) part is designed in Verilog hardware description language (HDL) and the firmware which handles interrupts is designed in the C programming language. By operating the designed interrupt clock, it can be verified that the clock manages interrupts using the interrupt device handler.A block diagram of the interrupt clock.
-
Abstract:
5. MScSemiconductor Memory Design
Course Objective
- Learn the relevant design and technology topics for the current and emerging semiconductor memories.
- Instructors from SK Hynix deliver weekly lectures on the following topics:
- SK Hynix & Memory Tech Overview
- DRAM Design & Operation
- Computing DRAM
- Mobile DRAM
- I/O Interface
- HBM Technology
- Advanced Package Technologies
- NAND Flash Design & Operation
- Flash Solution Products
- Memory and Storage Solution for Generative AI
- CMOS Image Sensor Design
- Emerging Memory Design Technologies
Analog System Design
Course Objective
- Learn fundamental components comprising the analog circuits.
- Build the proper equations governing the circuit behaviors.
- Learn algebraic equations explaining the static characteristics.
- Learn differential equations explaining the dynamic characteristics.
Textbook
Course Objective
- Understand electronic circuits using Diode and Transistors.
- Understand the physics of semiconductor.
- Understand the physics of bipolar (BJT) and field effect (FET) transistors.
- Design BJT and FET amplifiers.
- Design multi-stage amplifiers.
Textbook
Projects
-
Designing a two stage amplifier based on bipolar junction transistors (BJTs).
- Finding the parameters and small signal model of BJTs.
- Designing a common emitter amplifier with a voltage gain higher than 45 dB.
- Designing an amplifier to drive a low impedance load.

Full circuit of the two-stage amplifier.
References
Course Objective
- Verify the theoretical content of circuit theory through experiments and perform application projects.
Projects
-
Designing electrocardiogram (ECG) readout circuit.
- Designing ECG readout circuit using instrumentation amplifier (IA), notch filter, low-pass filter, and high-pass filter.
- Verifying the design through PSpice simulation.
- Implementing the design with breadboards and measuring ECG signals.

The ECG readout result.
Telecommunications Engineering
Course Objective
- Learn signal and system characteristics and models.
- Learn time-domain analysis of continuous-time signals.
- Understand frequency-domain of continuous-time signals.
- Understand analysis of continuous-time systems using Laplace transform.
- Understand analysis of discrete-time systems using z-transform.
Textbook
MATLAB Onramp
Projects
- Project 1: Plotting continuous-time, discrete-time, and Fourier transformed signals.
- Project 2: Verifying the Paley Wiener theory, properties of Fourier transform, and the Nyquist-Shannon sampling theorem.
- Project 3:
- Restoring the music signal* sampled at 4000 Hz to the original signal using a low-pass filter (LPF).
- Removing noise from a music signal** using an LPF.
- Project 4: Verifying Fourier transform, Laplace transform, and z-transform on different examples.



Project 3(1): Original signal (left), Sampled at 4000 Hz (middle), and Restored using LPF (right).
Project 3(1): Original signal (top) and Restored using LPF after sampled (bottom).


Project 3(2): Noise contained (left) and Noise removed using LPF (right).
Project 3(2): Noise contained (top) and Noise removed using LPF (bottom).
2. BScElectricity & Magnetism (1)
Course Objective
- Learn the basic characteristics of electric and magnetic fields.
- Understand the meaning and phenomenon of electromagnetic waves through Maxwell's equations, which combine electric and magnetic fields in the time domain.
Textbook
Economics
Econometrics
Course Objective
- Introduction to popular skills for analysing economic data.
- Get familiar with the well-known economic analysis and relate this to the knowledge about the numerical outputs generated by standard statistical packages.
- Understand the implicit assumptions behind economic data analysis.
Textbook
Course Objective
- Learn economic methods for modeling, analysing, and forecasting financial data.
- Understand different estimation methodologies.
- Critically evaluate empirical results and implications.
Textbook
DSGE Modeling
1. BADynamic Analysis of Macroeconomy
Course Objective
- Learn the dynamic stochastic general equilibrium (DSGE) model.
- Understand business cycle theory, dynamic changes in the macro labor market, and the effects of monetary policy applying DSGE.
Textbook
- Macroeconomics by Matthias Doepke, Andreas Lehnert, and Andrew Sellgren
- Macroeconomics (MIT Press) by Robert J. Barro
- Advanced Macroeconomics (McGraw-Hill/Irwin) by David Romer
- Elements of Dynamic Optimization (Waveland Pr Inc) by Alpha C. Chiang
- Fundamental Methods of Mathematical Economics (McGraw-Hill) by Alpha C. Chiang and Kevin Wainwright
2. BAQuantitative Macroeconomics
Course Objective
- Introduction to dynamic macroeconomic models that have been widely employed in modern macroeconomic analyses.
- Provide an oppertunity to learn and practice numerical techniques to implement the theories.
Projects
- Coding 1: Solving a consumer's utility maximization problem.
- Coding 2: Solving a dynamic stochastic general equilibrium model. Implementing value function iteration, policy function iteration, and endogenous grid method.
- Coding 3: Solving an income fluctuation problem where assets are stochastic and denoted as a finite Markov matrix.
- Coding 4: Simulating a lake model of labor markets.
- Coding 5: Solving a McCall model with separation and stochastic offers.
- Coding 6: Solving a Lucas tree model of asset pricing with Tauchen's method.
References
Financial Engineering
1. BAIntroduction to Financial Engineering
Course Objective
- Understand the types of derivatives.
- Learn derivatives pricing principles.
- Learn the risk management of derivatives.
References
- John C. Cox, Stephen A. Ross, and Mark Rubinstein, Option pricing: A simplified approach, Journal of Financial Economics, Volume 7, Issue 3, 1979, Pages 229-263, ISSN 0304-405X.
- Fischer Black and Myron Scholes. "The Pricing of Options and Corporate Liabilities," Journal of Political Economy, vol. 81, no. 3, 1973, pp. 637-54.
- "NOVA: Trillion Dollar Bet," PBS, 2000.
Datacamp Accomplishments
- Introduction to Python
- Intermediate Python
- Python Data Science Toolbox (Part 1)
- Supervised Learning with scikit-learn
- Introduction to Deep Learning in Python
- Advanced Deep Learning with Keras
Projects
-
Deep Hedging on Fixed Strike Asian Options
-
Abstract:
The Black-Scholes model is highly important and widely used strategy for the risk hedging of options. However, the Black-Scholes model has many limitations, and it is often unsuitable for application. This report introduces the method of option pricing using deep learning, which is called deep hedging, and applies the method on fixed strike Asian options.
-
Abstract:

Result of deep hedging on Asian option using sigmoid function.
Course Objective
- Analyze the balance of a model economy by applying quantitative analysis algorithms to various economic theories.
- Perform numerical analysis of changes in balance according to changes in the economic environment.
Datacamp Accomplishments
- Manipulating Time Series Data in Python
- Introduction to Portfolio Analysis in Python
- Introduction to Portfolio Risk Management in Python
- Quantitative Risk Management in Python
- Credit Risk Modeling in Python
Projects
- Coding 1: Analyzing demographic data and financial data.
- Coding 2: Dynamics of population distribution by age. Finding equilibria of competitive markets.
- Coding 3: Simulating Friedman-Hall consumption smoothing model and present value model of asset pricing theory. Finding general equilibrium of an economic model with nonlinear demands and supplies using Newton's method.
Course Objective
- Learn basic Python programming, data analysis, and object-oriented programming.
- Learn the basic concepts of deep hedging.
- Virtual trading of financial products using the open trading API.
Datacamp Accomplishments
- Introduction to Python
- Intermediate Python
- Introduction to Functions
- Python Toolbox