Teaching

I am teaching three courses in fall and three courses in spring semester at GIST. Please sign up for courses on the University website. 

EC3102: Computer Systems Theory and Laboratory(컴퓨터 시스템 이론 및 실험)

Semester: Spring

Credit: 4

The system-level understanding and practical programming experience will be built for computer systems. This class covers several topics for computer systems (CPU, memory, storage, I/O, ...), operating systems, and computer networking. Practical hands-on experiments will be also conducted to understand hardware and software components for diverse computer systems. In order to physically verify the upcoming impacts of Cloud-/BigData-ready computer systems for futuristic ICT infrastructure, this class targets to provide in-depth experimentation exercises with individually-arranged experimental computer systems for each participating student.



GS2408: Object-Oriented Programming(객체 지향 프로그래밍)

Semester: Spring

Credit: 3

Learn in-depth understanding of C++ with Object Oriented Programming, Exception Handling, STL, UML, and design patterns. There is a LAB attached to each chapter that closely follows the progress of the lecture and provides students with hands-on exercises. Students also gain a broader understanding of OOPs by executing a live project.


GS3402: Application and Practice of Algorithm((MOOC) 고급 알고리즘)

Semester: Spring

Credit: 1 

Learn how to reduce the time complexity of the normal brute force approach from 0(n^2) to O(n) or O(logn) by using stack, heap, binary tree, DP, sliding window, etc. with the help of 50 popular LeetCode examples. Learn some more classic algorithms including the Floyd-Warshall algorithm, Diameter of a Tree, Robin-Karp Matching Algorithm, Knuth-Morris-Pratt, K Queens, Graph Coloring, Computational Geometry problems NP-Complete and NP-Hard.


EC4206: Computer Networking 컴퓨터 네트워킹

Semester: Fall

Credit: 3 

Understand the fundamentals and the state-of-the-art developments of computer-based data communications. Reflecting the ubiquitous convergence toward IP-based (i.e., Internet) networking, we will study various aspects of network protocols and architecture, including architectural principles for designing IP-based networks; transport protocols; internet routing basics and router design; congestion control and network resource management; network security; overlay and peer-to-peer networks.  The course  also introduces you to several  network trouble shooting tools  including  Wireshark, NMAP,  SNMP Network Simulator and other command line tools .


EC2206: Introduction to Algorithms 알고리즘 개론

Semester: Fall

Credit: 3

Introduction to algorithms course introduces the fundamentals for algorithms. This course covers sorting, divide-and-conquer design paradigm, dynamic programming, strings, greedy-approach, graphs (minimum spanning trees, single-source shortest paths, all-pairs shortest paths), and B-trees. Coding practices' in this course will involve easy, medium and high complexity questions.



EC3204: Programming Languages and Compilers 프로그래밍 언어 및 컴파일러

Semester: Fall

Credit: 3

The goal of this course is to understand how programming languages work. Topics include design constructs (names, values, types, control flow, and abstraction), implementation techniques (syntactic and semantic analysis, interpretation, compilation, and optimization), and major language paradigms (imperative, object-oriented, functional). The course projects will let the students to understand the issues and solutions in designing and implementing programming languages.