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
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
Course Objective
- Understand the fundamentals of quantum computing and why it can outperform classical computing for certain hard problems.
- Learn core quantum algorithms and quantum machine learning techniques relevant to modern data science tasks.
- Build enough theoretical background to apply quantum computing principles to real-world big data and computational challenges.
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
Project (in groups of 3)
- Propose an original research idea that applies quantum computing techniques to a problem relevant to your domain expertise (e.g., data science, machine learning, AI, optimization, etc).
- Title: QAOA-based Qubit Assignment for Distributed Quantum Computing
References
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: Implement a simple combinational circuit using on Quartus II.
- Project 1-2: Design an 8-bit arithmetic logic unit (ALU).
- Project 2: Design a 64-bit single-cycle RISC-V microprocessor.
- Project 3: Design a 64-bit 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: Investigate behaviors and analyze packets of HTTP, TCP, and UDP protocols using Wireshark.
- Project 2: Investigate behaviors and analyze 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: Implement a simple shell in xv6-riscv.
- Assignment 2: Add 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: Replace the round-robin process scheduler of xv6-riscv with a fair-share scheduling algorithm.
- Assignment 4: Replace the next-fit free list management scheme of xv6-riscv's malloc library with the best-fit policy.
- Assignment 5: Modify the paging scheme of xv6-riscv to allocate physical frames belatedly on their first write access, referred to as copy-on-write.
- Assignment 6: Implement 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)
- Design 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: Implement a simple filter on 1D array using Pthread.
- Assignment 2: Implement a hash table using open addressing method using Pthread.
- Assignment 3: Implement a matrix multiplication kernel using OpenMP.
- Assignment 4: Implement a matrix multiplication kernel using CUDA.
- Assignment 5: Implement 7 versions of sum reduction kernels using CUDA.
- Assignment 6: Implement the VGG16 DNN model using CUDA.
7. MScCompiler Design and Optimization
Course Objective
- Understand the full design flow of a modern compiler, from lexical/syntactic parsing and semantic analysis to code generation and runtime support.
- Learn key optimization techniques (control/data-flow analysis, register allocation, loop optimization, instruction scheduling) used to improve program performance.
- Gain hands-on experience by implementing a complete compiler for a small programming language.
Textbook
Paper Presentation
- Title: EnerJ: Approximate Data Types for Safe and General Low-Power Computation
References
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: Perform a linear regression for classification using the dataset
from sklearn.datasets import load_iris. - Project 2: Train 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: Implement a program that solves the value function of a simple gridworld problem by matrix inversion.
- Project 2: Implement the DP algorithm to solve a gridworld problem.
- Project 3: Implement the Monte Carlo Control On Policy Simulation to solve a gridworld problem.
- Project 4: Implement the Q-learning Simulation to solve a 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: Perform classification using the linear regression model and reduced multivariate (RM) model and compare the accuracies using the experimental data of Gaussian distribution.
- Project 2: Perform 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.
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)
-
Implement 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.txtfile, and quit.
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
-
Implement 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)
-
Design 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.
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)
- Design, verify, and synthesize 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
-
Design a two stage amplifier based on bipolar junction transistors (BJTs).
- Find the parameters and small signal model of BJTs.
- Design a common emitter amplifier with a voltage gain higher than 45 dB.
- Design an amplifier to drive a low impedance load.
References
Course Objective
- Verify the theoretical content of circuit theory through experiments and perform application projects.
Projects
-
Design electrocardiogram (ECG) readout circuit.
- Design ECG readout circuit using instrumentation amplifier (IA), notch filter, low-pass filter, and high-pass filter.
- Verify the design through PSpice simulation.
- Implement the design with breadboards and measuring ECG signals.
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: Plot continuous-time, discrete-time, and Fourier transformed signals.
- Project 2: Verify the Paley Wiener theory, properties of Fourier transform, and the Nyquist-Shannon sampling theorem.
- Project 3:
- Restore the music signal* sampled at 4000 Hz to the original signal using a low-pass filter (LPF).
- Remove noise from a music signal** using an LPF.
- Project 4: Verify Fourier transform, Laplace transform, and z-transform on different examples.
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: Solve a consumer's utility maximization problem.
- Coding 2: Solve a dynamic stochastic general equilibrium model. Implement value function iteration, policy function iteration, and endogenous grid method.
- Coding 3: Solve an income fluctuation problem where assets are stochastic and denoted as a finite Markov matrix.
- Coding 4: Simulate a lake model of labor markets.
- Coding 5: Solve a McCall model with separation and stochastic offers.
- Coding 6: Solve 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:
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: Analyze demographic data and financial data.
- Coding 2: Dynamics of population distribution by age. Find equilibria of competitive markets.
- Coding 3: Simulate Friedman-Hall consumption smoothing model and present value model of asset pricing theory. Find 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