Academics

Undergraduate

학과과정(교과과정) 정보
Classification Course No. Course Title Credits
Required Major CSE221 Data Structures 3
Required Major CSE241 Advanced Programming 3
Required Major CSE251 System Programming 3
Required Major CSE261 Computer Architecture 3
Required Major CSE271 Principles of Programming Languages 3
Required Major CSE311 Operating Systems 3
Required Major CSE331 Intro to Algorithms 3
Required Major CSE351 Computer Networks 3
Required Major CSE401 Research in Computer Science and Engineering 3
Required Elective CSE302 Building Customized Computers 3
Required Elective CSE303 Basic Math for AI 3
Required Elective CSE321 Database Systems 3
Required Elective CSE332 Theory of Computation 3
Required Elective CSE333 Introduction to Human Computer Interaction 3
Required Elective CSE362 Artificial Intelligence 3
Required Elective CSE364 Software Engineering 3
Required Elective CSE402 Natural Language Processing 3
Required Elective CSE403 Deep learning 3
Required Elective CSE411 Introduction to Compilers 3
Required Elective CSE412 Parallel Computing 3
Required Elective CSE463 Machine Learning 3
Required Elective CSE465 Mobile Computing 3
Required Elective CSE466 Cloud Computing 3
Required Elective CSE467 Computer Security 3
Required Elective CSE468 Information Visualization 3
Required Elective CSE469 Introduction to Robotics 3
Required Elective CSE471 Computer Graphics 3
Required Elective CSE472 Computer Vision 3
Required Elective CSE480 Special Topic In CSE Ⅰ 3
Required Elective CSE481 Special Topic In CSE Ⅱ 3
Required Elective CSE482 Special Topic In CSE Ⅲ 3
Required Elective CSE483 Special Topic In CSE Ⅳ 3
Required Elective CSE484 Special Topic In CSE Ⅴ 3
Required Elective UNI204 Software Hacking and Defense 1
Basic Major ITP107 Introduction to AI Programming Ⅰ 3
Basic Major ITP112 Discrete Mathematics 3
Basic Major UNI111 Understanding Major (Introduction to CSE) 1
  • 1Data Structures
    CSE221

    This course introduces abstract data type concept such as array, queue, stack, tree, and graph to obtain the ability to program these abstract data types in computer programming languages.

  • 2Advanced Programming
    CSE241

    This course is a second programming course for Computer Science Engineering track with a focus on advanced programming. The goal of the course is to develop skills such as algorithm design and testing as well as the implementation of programs. This course requires students to implement a large number of small to medium-sized applications, and to learn how to use relevant development tools.

  • 3System Programming
    CSE251

    Through this course, students are provided a programmer’s view on how computer systems execute programs, store information, and communicate. This will enable students to become more effective programmers allowing students to consider issues such as performance, portability and robustness when programming. This course will also serve as a foundation for upper level courses such as operating systems, computer networks, and computer organization. Various topics such as machine-level code and its generation by optimizing compilers, performance evaluation and optimization, and memory organization and management will be covered.

  • 4Computer Architecture
    CSE261

    This course provides students with a basic understanding of computer organization and architecture. It is concerned mostly with the hardware aspects of computer systems: structural organization and hardware design of digital computer systems; underlying design principles and their impact on computer performance; and software impact on computer.

  • 5Principles of Programming Languages
    CSE271

    By studying the design of programming languages and discussing their similarities and differences, this course provide introduces the concept of modern programming languages and improves the ability to learn diverse programming languages.

  • 6Building Customized Computers
    CSE302

    In this course, students will learn how they can redesign pieces of a computer system (e.g., processor architecture, operating systems, or compiler) to customize a computer system for design goals, such as improved security or higher performance. As the example of goals, students will design and implement an extension to a computer to prevent a well-known attach mechanism, and to accelerate a machine-learning applications.

  • 7Basic Math for AI
    CSE303

    This course aims to help students gain hands-on experience on basic mathematical tools in AI. We will revisit topics and linear algebra, vector calculus, probability, and statistics contextualized in AI and study some advanced topics such as mathematical optimization.

  • 8Operating Systems
    CSE311

    This course introduces the objective and various forms of operating systems. Also resource management mechanisms such as process management, memory management, storage management and synchronization tools are covered in this course.

  • 9Database Systems
    CSE321

    This course introduces the concept of databases and provides basic experience in database programming. This includes the design of relational model, relational algebra, and SQL. The second half of the class will focus on the under-the-hood of DBMS systems and database design principles are also in the scope of this course.

  • 10Intro to Algorithms
    CSE331

    This course introduces the basic concepts of design and analysis of computer algorithms: the basic principles and techniques of computational complexity (worst-case and average behavior, space usage, and lower bounds on the complexity of a problem), and algorithms for fundamental problems. It also introduces NP-completeness.

  • 11Theory of Computation
    CSE332

    This course is an introductory course on the theory of computation. The topics covered in this course includes: mathematical modelling of computing mechanisms (automatons), formal languages, computability, and basic complexity theory.

  • 12Introduction to Human Computer Interaction
    CSE333

    In this course, we discuss the fundamentals of human-computer interaction, user interface design, and usability analysis. Students will learn principles and guidelines for usability, quantitative and qualitative analysis methods. They will also apply the principles through critiques of existing user interfaces and development of new ones with term projects and assignments. This course covers cognitive models, task analysis, psychology, experimental design, and prototyping methods.

  • 13Computer Networks
    CSE351

    This course provides the fundamental concepts of computer networking and exercises for network programming. The topics covered in this course are data link, networking, transport, and application layers.

  • 14Artificial Intelligence
    CSE362

    Can machines think? Many pioneers in computer science have investigated this question. Artificial Intelligence (AI) is a branch of computer science dedicated to the creation of machines with intelligence. This course aims to introduce students to the field of AI and make them familiar with fundamental techniques for building intelligent systems.

  • 15Software Engineering
    CSE364

    In this course on software engineering, we ask the following question. How can we develop high-quality software in a productive manner? Given the high complexity of software and its development, there is no one-size-fits-all solution. Rather, software engineers make use of various approaches such as improving development processes and automating part of development tasks. In this course, we will take a look at various prominent approaches developed to help software engineers, focusing more on modern approaches of software engineering, which emphasize automation of software development. At this point, automation is most advanced in software testing and static analysis, and automatic debugging and bug fixing are on the horizon. In this course, students will have a chance to use various tools and understand how and why these tools work internally.

  • 16Research in Computer Science and Engineering
    CSE401

    This course is aim to perform a term project through collaboration.
    Students are required to conceive a novel idea, which will be envisioned by designing and fabricating a product by using the best knowledge learned at undergraduate level. Lastly, students will present their work in public for evaluation.

  • 17Deep learning
    CSE402

    The course introduces fundamental ideas in deep learning, as well as to advanced deep learning software and prototyping. Our goals are
    1. to provide you the basic foundations and practical techniques for deep learning,
    2. to train you in high-level and low-level deep learning software development for several important concepts,
    3. to show you complex real-world applications of deep learning in various areas.

  • 18Basic Math for AI
    CSE403

    The course introduces fundamental ideas in deep learning, as well as to advanced deep learning software and prototyping. Our goals are
    1. to provide you the basic foundations and practical techniques for deep learning,
    2. to train you in high-level and low-level deep learning software development for several important concepts,
    3. to show you complex real-world applications of deep learning in various areas.

  • 19Introduction to Compilers
    CSE411

    This course introduces the design and implementation of compiler and runtime systems for programming languages. The topics covered include parsing techniques, lexcial and syntactic analysis, context analysis, and runtime systems.

  • 20Parallel Computing
    CSE412

    As we enter the multicore era, parallel and distributed computing techniques now permeate most computing activities. This course is designed to let students follow rapid changes in computing hardware platforms and devices, and understand the concepts of parallel computing architecture, parallel programming models, parallel computing applications, and performance analysis.

  • 21Machine Learning
    CSE463

    Machine learning is the science and engineering of building system that can learn from data. In recent years, machine learning has given us self-driving cars, effective web search, and accurate recommendation systems. This course will provide the theoretical underpinnings of machine learning, but also best practices in the machine learning industries. The courses include a broad introduction to machine learning, learning theory, and data mining.

  • 22Mobile Computing
    CSE465

    This course studies how mobile computing is different from conventional computing in the aspect of its concept, architecture and applications. Major enabling techniques of mobile computing such as sensing, mobile communication, machine learning, and system optimization for energy efficiency are explained with opportunities of implementing such technologies in Android platforms.

  • 23Cloud Computing
    CSE466

    This course is to understand basic concepts and techniques of virtualization, cloud computing systems, and cloud platforms including x86 virtualization and virtual machine, virtual machine management, cloud resource management, and big data analytics platforms (MapReduce).

  • 24Computer Security
    CSE467

    This course introduces the principle and practice of securing modern computer systems. From the seminal works and state-of-the-art security mechanisms, students will learn to formulate the security problems and to devise their solutions.

  • 25Information Visualization
    CSE468

    In this course, we will focus on “designing user new interfaces” and “information visualization techniques” and systems. A fundamental skill in software engineering is to rapidly implement and evaluate efficient prototypes of an end-user application for deployment. This course will introduce foundational skills for high-fidelity graphical and visual user interface prototyping and development with state-of-the-art software interface design toolkits.

  • 26Introduction to Robotics
    CSE469

    Robotics is an important topic in Artificial Intelligence (AI), focusing on the physical aspect of intelligence. A machine that can interact successfully with our physical world is an important demonstration of AI. The objective of this course is to learn some basic algorithms and techniques for robotic research and robot programming. This course will cover the following topics: motion control (PID control), state estimation and tracking (Kalman filters), localization (particle filters, SLAM), computer vision (color segmentation, deep learning, object detection), motion/path planning (PRM, RRT), action and sensor modeling (task planning), reinforcement learning (MDPs, Q-learning, inverse reinforcement learning), and human-robot interaction (socially intelligent robots), behavior architectures (subsumption architecture), applications (autonomous vehicles), and social implications (Isaac Asimov’s “Three laws of Robotics”). Students will learn to program a robot in Robot Operating System (ROS).

  • 27Computer Graphics
    CSE471

    Computer graphics is one of the flourishing fields within computer science that deals with generating 2D/3D images with the aid of computers. This course will introduce the fundamental concepts in the computer graphics for displaying 3D objects and the algorithms to improve the reality of computer graphics. It will provide the experience of computer graphics programming.

  • 28Computer Vision
    CSE472

    This course aims to understand machine/deep learning algorithms which are dedicated to computer vision tasks. During the 8-week course, students will learn to implement, train and debug their machine/deep learning models. The final assignment will involve training a multi-million parameter convolutional neural network and applying it onto the real-world computer vision problem. The lecture will focus on teaching the learning algorithms (e.g. stochastic gradient descent), practical engineering methods for obtaining an improved machine/deep learning model.

  • 29Special Topic In CSE Ⅰ
    CSE480

    This course introduces new research topics in the field of Computer Science & Engineering Ⅰ~Ⅴ.

  • 30Special Topic In CSE Ⅱ
    CSE481

    This course introduces new research topics in the field of Computer Science & Engineering Ⅰ~Ⅴ.

  • 31Special Topic In CSE Ⅲ
    CSE482

    This course introduces new research topics in the field of Computer Science & Engineering Ⅰ~Ⅴ.

  • 32Special Topic In CSE IV
    CSE483

    This course introduces new research topics in the field of Computer Science & Engineering Ⅰ~Ⅴ.

  • 33Special Topic In CSE Ⅴ
    CSE484

    This course introduces new research topics in the field of Computer Science & Engineering Ⅰ~Ⅴ.

  • 34Software Hacking and Defense
    UNI204

    This course introduces the principle and practice of software hacking and defense. Through state-of-the-art software hacking and defense mechanisms and various practices, students will learn to formulate the software security problems and to devise their solutions. Students are expected to participate in hacking competition at the end of the class.

Credit Requirement

학과과정 졸업요건(이수학점) 정보
Category Credits Remarks Subtotal
Required 17 Calculus I(3), General Physics I(3), General Chemistry I(3), General Biology(3), Introduction to AI Programming I(3), General Chemistry Lab I(1), General Physics Lab I(1) At least 33 credits
Elective 16 Take 16 credits among the basic course list
– Required : 4 courses
– Recommended : 2 courses
– Elective : 3 courses

Required Course

※ Major : 16 credits / Double Major : 16 credits / Minor : 16 creditsRequired ● / Elective ○ / 권장 ◑

학과 졸업요건(이수교과) 정보
Course Code. Course Title Major Double Major Minor
MTH112 CalculusⅡ
PHY103 General PhysicsⅡ
CHM102 General ChemistryⅡ
PHY108 General Physics Lab Ⅱ
CHM106 General Chemistry LabⅡ
MTH201 Differential Equations
MTH203 Applied Linear Algebra
학과 졸업요건(이수교과) 정보
Course Code. Course Title Major Double Major Minor
MTH211 Statistics
MGT102 Entrepreneurship
IE101 Introduction to Data Science
ITP117 Introduction to AI Programming Ⅱ
ITP111 Probability & Random Process
ITP112 Discrete Mathematics
UNI111 Understanding Major Introduction to CSE

[UG] CSE Course Roadmap