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 StructuresCSE221
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 ProgrammingCSE241
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 ProgrammingCSE251
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 ArchitectureCSE261
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 LanguagesCSE271
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 ComputersCSE302
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 AICSE303
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 SystemsCSE311
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 SystemsCSE321
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 AlgorithmsCSE331
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 ComputationCSE332
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 InteractionCSE333
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 NetworksCSE351
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 IntelligenceCSE362
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 EngineeringCSE364
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 EngineeringCSE401
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 learningCSE402
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 AICSE403
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 CompilersCSE411
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 ComputingCSE412
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 LearningCSE463
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 ComputingCSE465
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 ComputingCSE466
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 SecurityCSE467
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 VisualizationCSE468
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 RoboticsCSE469
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 GraphicsCSE471
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 VisionCSE472
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 IVCSE483
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 DefenseUNI204
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 | ● | ● | ● |