Undergraduate Courses

Digital Logic and Systems

Making Digital Computers from Scratch!

  • This course provides an introduction to elements and theories of modern digital systems such as computers, smartphones, tablets, and more. The course includes number systems, number/character representation, logic gates, flip-flops, and their applications to digital circuits. As the subtitle, Making Digital Computers from Scratch, said, this course help students understand basic elements and operations of modern digital computers. Finally students will implement a simple CPU by their hands using Logisim-evolution.
  • Course code: 109842/109843 (for 2nd-year CSE students)
  • History: 2021-Spring, 2022-Spring, 2023-Spring, 2024-Spring

Open Source Software (shortly OSS)

Starting My Open-source Project!

  • This course provides an introduction to open-source software (shortly OSS) which has been significantly utilized in recent IT industries. This course explains about representative OSS tools/examples and stimulates students to start their own OSS project. At first, this course starts with learning Python programming language and tries to build experiences of Python-based OSS such as NumPy/SciPy (for scientific computing), scikit-learn (for machine learning), and PyTorch (for deep learning). Beyond usage of those OSS tools, this course aims students to understand important mathematical concepts intuitively and build basic background of machine learning and deep learning.
  • Course materials: OSS/Git, prog_meets_math, dl_tutorial
  • Course code: 109075/109833 (for 2nd- and 3rd-year CSE students)
  • History: 2021-Fall, 2022-Fall, 2023-Fall

Computer Vision (shortly CV)

Understanding CV and Making My CV Project!

  • This course provides theories and applications of computer vision. This course help students to understand image processing, camera projection, camera pose estimation, and their applications to cartoon rendering, distortion correction, and augmented reality. In addition, this course also includes recent learning-based techniques for image classification, object detection, object tracking, and so on. Finally, this course will motivate students to start their project using computer vision.
  • Prerequisite: Open Source Software (109075)
  • Course materials: cv_tutorial
  • Course code: 109079 (for 3rd- and 4th-year CSE students)
  • History: 2023-Spring, 2024-Spring

Graduate Courses

3D Computer Vision (shortly 3DV)

3D Computer Vision from Fundamental to Applications

  • This course covers fundamental theories of classic visual geometry and recent learning-based 3D vision techniques. This course provides single-view geometry, two-view geometry, multi-view geometry, and correspondence problems including camera calibration, relative pose estimation, triangulation, bundle adjustment, Bayesian filtering, structure-from-motion, and visual SLAM. This course also deals with 3D object detection/tracking, neural radiance field (NeRF), and so on.
  • Course code: 9441076 (for graduate students)
  • Course materials: 3dv_tutorial, filtering_tutorial
  • History: 2022-Fall, 2023-Fall

Special Courses

  • Undergraduate: Database (2021-Fall), Natural Language Processing (2021-Spring, 2022-Spring)