KAIST - COMPUTER SCIENCE

  • korea
  • search
  • login

Directions

 

Mandatory Basic

Code Subject Credit Term
CS101 Introduction to Programming 2:3:3 Spring & Fall
Course Name Introduction to Programming SubTitle
Course Code CS101 Course Type Mandatory Basic
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Spring & Fall
Course Description

The course teaches the basic technique of computer programming and the basic knowledge in the computer structure, and use of the elective programming language to resolve given problems in structural programming. Based on the elective programming language, it teaches the data structure, input and output, flow control and incidental program, and by using the systematic division of problem solution and concept of module to solve the problems in numerical value field and non-numerical value field with the program experiment.

English Lecture Y

Elective Basic

Code Subject Credit Term
CS109 Programming Practice 2:3:3 Spring or Fall
Course Name Programming Practice SubTitle
Course Code CS109 Course Type Elective Basic
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Spring or Fall
Course Description

In this course students who have taken CS101 but who have otherwise little programming experience can develop their programming skills. The course introduces basic concepts of programming and computer science, such as dynamic and static typing, dynamic memory allocation, objects and methods, binary representation of numbers, using an editor and compiler from the command line, running programs with arguments from the commmand line, graphical user interfaces and event-based programming, using libraries, and the use of basic data structures such as arrays, lists, stacks, sets, and maps.

English Lecture Y

Elective Major

Code Subject Credit Term
CS202 Problem Solving 2:3:3 Spring & Fall
Course Name Problem Solving SubTitle
Course Code CS202 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Spring & Fall
Course Description

This course is about methods for problem solving and algorithm development. Through various lab work, students learn good programming practice in design, coding, debugging, and documentation.

English Lecture Y
CS211 Digital System and Lab. 3:4:4 Spring
Course Name Digital System and Lab. SubTitle
Course Code CS211 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:4:4
Level Undergraduate Semester Spring
Course Description

This course provides students with an understanding of digital systems as building blocks of modern digital computers. This course puts emphasis on providing students with hands-on experience on digital systems. The course includes both lecture and laboratory work on the topics of: boolean algebra, binary system, combinatorial logic, asynchronous sequential circuits, algorithmic state machine, asynchronous sequential circuits, VHDL, CAD tools and FPGAs.

English Lecture Y
CS220 Programming Principles 3:0:3 Spring or Fall
Course Name Programming Principles SubTitle
Course Code CS220 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

This course's goal is to provide students with programming principles and a good feel for the elements of style and the aesthetics of programming, which are necessary in controlling the intellectual complexity of large yet robust software systems. The covered topics include: induction and recursion, data abstraction and representation, values and applicative programming, objects and imperative programming, streams and demand-driven programming, modularity and hierarchy, exceptions and advanced control, and higher-order functions and continuations.

 

English Lecture Y
CS230 System Programming 3:0:3 Spring & Fall
Course Name System Programming SubTitle
Course Code CS230 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

This course's goal is to provide students with programming techniques necessary in dealing with "systems" development. The covered topics include low-level machine oriented programming, device-control programming, and other various programming techniques for computer operating environment.

English Lecture Y
CS270 Creative design of intelligent robots 3:0:3 Spring
Course Name Creative design of intelligent robots SubTitle
Course Code CS270 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This course aims to provide an opportunity for sophomores to experience creative system design using Lego mindstorm NXT kit and URBI robot software platform. In lectures, robotic CS is introduced and various examples are demonstrated to bring out students' interests. In lab hours, students build own intelligent robot system creatively. Students are educated to integrate hardware and software designs, and make presentations at the end of semester.

English Lecture Y
CS310 Embedded Computer System 3:3:4 Fall
Course Name Embedded Computer System SubTitle
Course Code CS310 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:3:4
Level Undergraduate Semester Fall
Course Description

Embedded systems are found everywhere. The goal of this course is to develop a comprehensive understanding of the technologies behind the embedded computer systems, including hardware and software components. Students will gain hands-on experience in designing a embedded system using CAD tools and FPGAs. (Prerequisite: CS211)

English Lecture Y
CS322 Formal Languages and Automata 3:0:3 Fall
Course Name Formal Languages and Automata SubTitle
Course Code CS322 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This course covers various types of finite automata, properties of language classes recognizable by automata, context-free grammar, pushdown automata, the Turing machine, and computability. (Prerequisite: CS204)

English Lecture Y
CS341 Introduction to Computer Network 3:3:4 Spring & Fall
Course Name Introduction to Computer Network SubTitle
Course Code CS341 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:3:4
Level Undergraduate Semester Spring & Fall
Course Description

The goal of this course is to provide students with sound understanding of fundamental concepts and problems in networking and to train them in network programming. We begin with an introduction to key applications in today's Internet and then cover the reliable transfer protocol, TCP, and its congestion control; and the IP layer that covers the diversity in physical layer technologies and provides an end-to-end abstraction. Finally, we include key concepts in multimedia networking and security in communication networks. (Prerequisite: CS230)

English Lecture Y
CS348 Introduction to Information Security 3:0:3 Spring
Course Name Introduction to Information Security SubTitle
Course Code CS348 Course Type Elective Major
Prerequisite CS220 프로그래밍의 이해, CS230 시스템 프로그래밍 Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This course covers the overall contents of information security. Students will be exposed to fundamental concepts in information security including cryptography, system security, software security, web security and network security. This course introduces how security attacks occur in the modern computing environments. Students will also have opportunities to understand techniques to discover and disable such security attacks.

 
English Lecture Y
CS350 Introduction to Software Engineering 3:0:3 Spring
Course Name Introduction to Software Engineering SubTitle
Course Code CS350 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This course provides students with basic concepts in software engineering in order to develop high-quality software economically. Key concepts are life cycle models, development techniques, automation tools, project management skills, and software metrics.

English Lecture Y
CS360 Introduction to Database 3:0:3 Spring or Fall
Course Name Introduction to Database SubTitle
Course Code CS360 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

This is an introductory-level course to database systems. Students learn about various models, such as E-R models, relational models, and object-oriented models; query languages such as SQL, relational calculus, and QBE; and file and indexing systems for data storage. Advanced topics, such as data inheritance, database design issues using functional and multivalued dependencies, database security, and access rights, are also covered. (Prerequisite: CS206)

English Lecture Y
CS361 Introduction to Data Science 3:0:3 Spring
Course Name Introduction to Data Science SubTitle
Course Code CS361 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

Data science is an inter-disciplinary field focused on extracting knowledge from typically large data sets. This course aims at teaching basic skills in data science for undergraduate students. It covers basic probability and statistics theories required for data science; exploratory data analysis (EDA) required for understanding a given data set; and predictive analysis based on statistical or machine learning techniques. Additionally, it discusses recent big data processing techniques and various data science applications. The students will learn how to implement the methodologies using the Python language.

 
English Lecture Y
CS370 Symbolic Programming 2:3:3 Spring
Course Name Symbolic Programming SubTitle
Course Code CS370 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Spring
Course Description

Students learn LISP and PROLOG, the two most commonly used programming languages in artificial intelligence. The basic programming concepts, grammar, and symbol manipulation are covered in the course. Using intelligent problem solving methods, students build natural language processing systems, database programs, pattern matching programs, learning programs, expert systems, etc.

English Lecture Y
CS371 Introduction to Deep Learning 3:0:3 Fall
Course Name Introduction to Deep Learning SubTitle
Course Code CS371 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This is an undergraduate-level introductory course for deep learning. There have been enormous advances in the field of artificial intelligence over the past few decades, especially based on deep learning. However, it is not easy to see what frontiers the current deep learning is facing and what underlying methods are used to enable these advances. This course aims to provide an overview of traditional/emerging topics and applications in deep learning, and basic skill sets to understand/implement some of the latest algorithms. 

 
 
English Lecture Y
CS372 Natural Language Processing with Python 3:0:3 Spring or Fall
Course Name Natural Language Processing with Python SubTitle
Course Code CS372 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

The course offers students a practical introduction to natural language processing with the Python programming language, helping the students to learn by example, write real programs, and grasp the value of being able to test an idea through implementation, with an extensive collection of linguistic algorithms and data structures in robust language processing software.

English Lecture N
CS374 Introduction toHuman-Computer Interaction 3:0:3 Spring & Fall
Course Name Introduction toHuman-Computer Interaction SubTitle
Course Code CS374 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

This course introduces fundamental concepts, theories, and methods for designing, prototyping, implementing, and evaluating user interfaces. Students apply these lessons to a practical problem in a team project, which follows a user-centered design process.

English Lecture Y
CS376 Machine Learning 3:0:3 Spring & Fall
Course Name Machine Learning SubTitle
Course Code CS376 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

Machine learning, a sub-field of computer science, has been popular with the era of intelligent softwares and attracted huge attentions from computer vision, natural language processing, healthcare and finance communities to name a few. In this introductory course, we will cover various basic topics in the area including some recent supervised and unsupervised learning algorithms.

English Lecture Y
CS380 Introduction to Computer Graphics 3:3:4 Spring
Course Name Introduction to Computer Graphics SubTitle
Course Code CS380 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:3:4
Level Undergraduate Semester Spring
Course Description

The goal of this course is for students to acquire theory and hands-on experience in computer graphics. Topics covered are: basic functions and principles of input and output devices used in computer graphics, architectures and features of graphics systems, basic geometric models and their generation algorithms, theories and practice behind 2D and 3D conversion. Basic ideas of hidden line and surface removal and color models are introduced.

 

English Lecture Y
CS402 Introduction to Logic for Computer Science 3:0:3 Spring or Fall
Course Name Introduction to Logic for Computer Science SubTitle
Course Code CS402 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

This course is about basics of logic used in computer programming. Topics covered in this course are: propositional calculus, predicate calculus, axiomatic theories, skolemization, unification, and resolution.

English Lecture Y
CS408 Computer Science Project 1:6:3 Spring & Fall
Course Name Computer Science Project SubTitle
Course Code CS408 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 1:6:3
Level Undergraduate Semester Spring & Fall
Course Description

Students learn project management and large-system programming skills that are not usually covered in any single course. Students form teams, and execute one of project ideas suggested by a professor. The scope of the project must cover multiple areas in computer science and be of a magnitude sufficient for a team project.

English Lecture Y
CS409 Software Projects for Industrial Collaboration 1:6:3 Spring or Fall
Course Name Software Projects for Industrial Collaboration SubTitle
Course Code CS409 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 1:6:3
Level Undergraduate Semester Spring or Fall
Course Description

This course aims to help students internalize project-based competencies that are essentially needed in the software industries. First of all, they get to figure out the fundamentals and philosophies of software engineering through panel discussions with the reading list. Also, they are asked to be organized into teams with mentors from the industry companies, and to conduct their own software project based on the infrastructures and tools that are really used in the field, minimizing the gap between academia and practitioners.

English Lecture Y
CS411 System for Artificial Intelligence 3:0:3 Spring or Fall
Course Name System for Artificial Intelligence SubTitle
Course Code CS411 Course Type Elective Major
Prerequisite CS230 시스템프로그래밍, CS311 전산기조직 Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

Tremendous success of Artificial Intelligence (AI) can be attributed to two primary reasons: (1) significant advances in ML algorithms with great emphasis on Deep Learning, and (2) high-performance computing mainly fueled by hardware accelerators such as GPU and specialized software systems. This course focuses on the second reason and look at AI in the system perspective. This course will look into the entire computing stack built solely for AI, particularly Machine Learning and Deep Learning, This stack constitutes domain-specific programming interface and platforms (e.g., Tensorflow), DNN compilers (e.g., TVM), and hardware accelerators (e.g., GPU and TPU). 

 
English Lecture Y
CS420 Compiler Design 3:0:3 Spring
Course Name Compiler Design SubTitle
Course Code CS420 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

Through this course, students study basic rules and implementation considerations in implementing a programming language. More details on grammar checks for program syntax, implementation optimization, relations between programming languages and compilers, the role of interpreters, run-time systems, and semantically accurate expressions are also covered.

English Lecture Y
CS422 Computation Theory 3:0:3 Spring or Fall
Course Name Computation Theory SubTitle
Course Code CS422 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

This course deals with models of computation, computable and incomputable functions, temporal and spatial complexities, tractable and intractable functions.

English Lecture Y
CS423 Probabilistic Programming 3:0:3 Spring
Course Name Probabilistic Programming SubTitle
Course Code CS423 Course Type Elective Major
Prerequisite CS376, CS320 Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

The course aims at teaching students techniques from machine learning and programming languages that enable the design and implementation of a programming language for easily writing advanced probabilistic models from machine learning. We will cover a wide range of general-purpose algorithms for probabilistic inference, and discuss how these algorithms can be used to build programming languages and systems for developing models from machine learning. We will also study a mathematical foundation of those languages using tools from measure-theoretic probability theory.

English Lecture N
CS431 Concurrent Programming 3:0:3 Spring or Fall
Course Name Concurrent Programming SubTitle
Course Code CS431 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

This course teaches concurrent programming techniques for efficiently controlling parallel resources in order to maximize performance, and verification techniques for such programs. In old days, sequential processing was default while parallel processing was exceptional; nowadays, the other way around. Such tendancy is accelerated by the advent of big data processing. This course aims to help students acculumate a grounding in efficient control of parallel resources with theory and programming practices.

 
English Lecture N
CS442 Mobile Computing and Application 3:0:3 Spring
Course Name Mobile Computing and Application SubTitle
Course Code CS442 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

We cover fundamental concepts and problems in mobile and wireless networking and teach system design and implementation in mobile computing. Topics we cover are: introduction to data communications, CDMA, WiFi, and WiBro/WiMAX. Issues related to mobile computing platforms as well as systems comprising sensor networks are also covered. The term project involves application design and development for mobile computing.

English Lecture Y
CS443 Distributed Algorithms and Systems 3:0:3 Fall
Course Name Distributed Algorithms and Systems SubTitle
Course Code CS443 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

The goal of this course is to provide students with theoretical basis of distributed system design and hands-on experience with distributed systems. The course will start with introduction to functional programming, and then proceed to the MapReduce-like cloud computing framework. Then we expose students to distributed algorithms. Students learn how to program massively parallel jobs in a cloud computing environment and build theoretical underpinnings to expand MapReduce experience to a greater diversity of cloud computing applications. (Prerequisite: CS330, CS341)

English Lecture Y
CS447 Web Security Attack Laboratory 2:3:3 Spring
Course Name Web Security Attack Laboratory SubTitle
Course Code CS447 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Spring
Course Description

The course introduces web attacks that trigger various vulnerabilities in web services. It covers SQL injection, cross-site scripting, and cross-site request forgery, which constitute core web attacks, as well as same-origin policy. The course also provides a lab session for each week, which helps students practice actual attacks in a simulated web environment. The goal of the course is to let students learn and understand various web threats via conducting the covered attacks by themselves.

 
English Lecture Y
CS453 Automated Software Testing 3:0:3 Spring
Course Name Automated Software Testing SubTitle
Course Code CS453 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This class covers basics of automated software testing techniques with regard to practical applications. These automated testing techniques can provide high reliability for complex embedded software compared to traditional testing methods in a more productive way. This class utilizes various automated software testing tools and learn about their underlying mechanisms for maximal benefit.

English Lecture Y
CS454 Artificial Intelligence Based Software Engineering 3:0:3 Spring
Course Name Artificial Intelligence Based Software Engineering SubTitle
Course Code CS454 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This course aims to introduce the operations and applications of metaheuristic and bio-inspired algorithms, including genetic algorithm, swarm optimization, and artificial immune system. By considering diverse problems ranging from combinatorial ones to performance improvement of complex software system, students are expected to learn how to apply computational intelligence to unseen problems.

English Lecture N
CS457 Requirements Engineering for Smart Environments 3:0:3 Spring
Course Name Requirements Engineering for Smart Environments SubTitle
Course Code CS457 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This course is designed to learn requirements engineering concepts and techniques for developing software systems in modern smart computing environments such as the World Wide Web, Internet of Things (IoT), and mobile computing environments. In this course, students learn the core concepts and techniques of software requirements engineering, the key characteristics of the Web, IoT and mobile computing environments, and practical methods to elicit, model, analyze and manage requirements for developing software systems in the modern computing environments.

English Lecture Y
CS458 Dynamic Analysis of Software Source Code 3:0:3 Spring
Course Name Dynamic Analysis of Software Source Code SubTitle
Course Code CS458 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This class teaches automated SW testing techniques that analyze target source code to automatically generate various test inputs which explore diverse behaviors of a target program. This class guides students to use various open-source software testing tools and learn the underlying mechanisms of the tools to maximize the performance of automated testing.

 
English Lecture Y
CS459 Introduction to Services Computing 3:0:3 Fall
Course Name Introduction to Services Computing SubTitle
Course Code CS459 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This course is designed to learn technologies and strategies for modeling and building service oriented architecture and service applications in various computing environments such as Internet of Things, mobile computing and cloud computing environments to integrate various computing resources and capabilities in users’ point of views.

English Lecture Y
CS470 Introduction to Artificial Intelligence 3:0:3 Fall
Course Name Introduction to Artificial Intelligence SubTitle
Course Code CS470 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This course introduces basic concepts and design techniques of artificial intelligence, and later deals with knowledge representation and inference techniques. Students are to design, implement, and train knowledge-based systems.

English Lecture Y
CS471 Graph Machine Learning and Mining 3:0:3 Spring
Course Name Graph Machine Learning and Mining SubTitle
Course Code CS471 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

Graphs are fundamental tools for modeling relationships between objects, enabling us to model diverse real-world problems and data. Graph machine learning and graph mining techniques are utilized in many modern AI and big data analytics domains. This course introduces various graph-based machine learning and mining techniques, including graph neural networks (applying deep learning ideas to graphs), knowledge graphs (representing human knowledge as graphs), graph representation learning (converting graphs into feature vectors), random walks and centrality measures on graphs, graph clustering, and graph anomaly detection. Also, this course introduces how these techniques are applied in information retrieval, natural language understanding, computer vision & graphics, robotics, and bioinformatics.

 
English Lecture Y
CS473 Introduction to Social Computing 3:0:3 Fall
Course Name Introduction to Social Computing SubTitle
Course Code CS473 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

Computing today no longer only concerns a single user in front of their computer. An increasing number of modern systems are inherently social, involving a large group of users to collaborate, discuss, ideate, solve problems, and make decisions together via social interaction. This course aims to introduce major concepts, real-world examples, design issues, and computational techniques in social computing. Students apply the lessons to a practical problem via a semester-long team project.

English Lecture Y
CS474 Text Mining 3:0:3 Fall
Course Name Text Mining SubTitle
Course Code CS474 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This course will introduce the essential techniques of text mining, understand as the process of deriving high-quality information from unstructured text. The techniques include: the process of analyzing and structuring the input text with natural language processing, deriving patterns with machine learning, and evaluating and interpreting the output. The course will cover some typical text mining tasks such as text categorization, text clustering, document summarization, and relation discovery between entities.

English Lecture Y
CS475 Machine Learning for Natural Language Processing 3:0:3 Fall
Course Name Machine Learning for Natural Language Processing SubTitle
Course Code CS475 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This course will cover important problems and concepts in natural language processing and the
machine learning models used in those problems. Students will learn the theory and practice of ML
methods for NLP, read and conduct research based on latest research publications.

English Lecture Y
CS477 Introduction to Intelligent Robotics 3:0:3 Spring
Course Name Introduction to Intelligent Robotics SubTitle
Course Code CS477 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This course will introduce students to the basics of embodied intelligence called intelligent robotics. The course aims to study the fundamental concepts in intelligent robotic system that can sense, plan, and act in the world. To do that, we will discuss 1) the basic concepts, such as control, kinematics, in traditional robotics and 2) state-of-the-art technologies, such as task-and-motion planning and machine learning theories, toward intelligent robotic system. The course will include a brief review of basic tools, such as Robot Operating System (ROS), and also overview contemporary techniques. It will also include individual exercise and final (individual/team) projects.

 
English Lecture Y
CS479 Machine Learning for 3D Data 3:0:3 Fall
Course Name Machine Learning for 3D Data SubTitle
Course Code CS479 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

3D Data are widely used in many applications in computer vision, computer graphics, and robotic. In this course, we will cover the recent advances in machine learning techniques for processing and analyzing 3D data and discuss the remaining challenges. Most of the course material will be less-than 5-year-old research papers in several sub-fields including Computer Vision, Computer Graphics, and Machine Learning. The course will be project-oriented (no exam, no paper-and-pencil homework, but easy programming assignments) and consist of seminar-style reading group presentations.

 
English Lecture Y
CS481 Data Visualization 3:0:3 Fall
Course Name Data Visualization SubTitle
Course Code CS481 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

Data visualization techniques help data scientists to interact with data to extract insightful information, examine hypotheses, and perform data storytelling for decision making. This course covers the fundamental concepts of data visualization, such as design principles, representation, perception, color, and data storytelling. Besides, it will provide in-depth tutorials and practices on the entire visualization process (i.e., ideation, prototyping, and usability testing) by building a web-based interactive service with Python and JavaScript. The course will be delivered in an active learning format such that concept learning is followed by in-class activities and programming practices. Furthermore, there will be programming sessions (e.g., Web programming, Python data processing, and visualization) and design studio sessions (e.g., design process and peer feedback). A final project on building real-world visual analytics solutions will help students to use the techniques learned in the class (e.g., exploring a mobile and wearable sensor dataset on the web).

 
English Lecture Y
CS482 Interactive Computer Graphics 3:2:3 Spring or Fall
Course Name Interactive Computer Graphics SubTitle
Course Code CS482 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:2:3
Level Undergraduate Semester Spring or Fall
Course Description

With advances in computing environment, we can get high quality rendering of 3D virtual world in realtime. This course is designed for understanding practical algorithms for realizing 3D computer graphics and visualization essential for not only computer animation but also in various interactive applications including computer games, simulation, and virtual reality. This is a projects-oriented class that will introduce the concepts of interactive computer graphics. Students are expected to work on a team to develop their own project.

English Lecture Y
CS483 Geometric Modeling and Processing 3:0:3 Fall
Course Name Geometric Modeling and Processing SubTitle
Course Code CS483 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

3D content creation is a crucial part of many industries such as graphics, AR/VR, CAD/CAM, and digital fabrication, which tasks typically include designing and creating virtual objects/scenes or reconstructing a real environment. Processing scanned 3D data is also an important problem in many applications as 3D scanning technology is being widely applied, for example, in autonomous driving, robot navigation, and 3D object replication. In this course, we discuss fundamental mathematical methods for geometric 3D modeling and geometric data processing, which can be used (not only in graphics-related fields but) in many other areas in science and engineering.

 
English Lecture Y
CS484 Introduction to Computer Vision 3:0:3 Fall
Course Name Introduction to Computer Vision SubTitle
Course Code CS484 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

In this course, students will learn the basic principles and techniques of image processing. Expanding the foundations of image processing, they will learn 3-dimensional image processing from camera images and also techniques for deep learning-based image understanding, combined with artificial intelligence. To this end, the curriculum of this course consists of three parts: (1) the basic principles and understanding of image processing, (2) the basic principles and understanding of 3D image processing, and (3) the basic principles and understanding of image processing using artificial intelligence. Students learn and experience basic principles for computer vision and various image processing applications based on the deep understanding of computer vision.

English Lecture Y
CS485 Machine Learning for Computer Vision 3:0:3 Fall
Course Name Machine Learning for Computer Vision SubTitle
Course Code CS485 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

The course studies concepts, theories and state-of-the-art methods for visual learning and recognition. This module is unique focusing on a broader set of machine learning, for computer vision, in an optimisation perspective. 

 
English Lecture Y
CS486 Wearable User Interface 3:0:3 Spring
Course Name Wearable User Interface SubTitle
Course Code CS486 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

As computer forms and utilization environments become diverse, various user interfaces are evolving beyond the traditional GUI. Especially with the advancement of AR/VR platforms, the importance of wearable user interfaces is increasing. This course aims to understand various genres of wearable user interfaces, major prototyping techniques for researching them, and multi-modal channels for proposing new wearable interfaces.

 
English Lecture Y
CS489 Computer Ethic & Social Issues 3:0:3 Fall
Course Name Computer Ethic & Social Issues SubTitle
Course Code CS489 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

Computers have had a significant impact on our life, more so than any other machine before. In this course, we discuss social problems that computers have caused and ethical issues that challenge technical experts.

English Lecture Y
CS492 Special Topics in Computer Science 3:0:3 Spring or Fall
Course Name Special Topics in Computer Science SubTitle (Linear algebra in combinatorics and algorithms)
Course Code CS492 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

The goal of this course is to expose undergraduate students to recent research problems and results in the selected area of research.

 

English Lecture Y
CS493 Special Topics in Computer Science I 1:0:1 Spring or Fall
Course Name Special Topics in Computer Science I SubTitle
Course Code CS493 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 1:0:1
Level Undergraduate Semester Spring or Fall
Course Description English Lecture Y
CS494 Special Topics in Computer Science II 2:0:2 Spring or Fall
Course Name Special Topics in Computer Science II SubTitle
Course Code CS494 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 2:0:2
Level Undergraduate Semester Spring or Fall
Course Description English Lecture N

Mandatory Major

Code Subject Credit Term
CS204 Discrete Mathematics 3:0:3 Spring & Fall
Course Name Discrete Mathematics SubTitle
Course Code CS204 Course Type Mandatory Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

This course covers mathematical concepts that are frequently employed in computer science: sets, relations, propositional logic, predicative logic, graphs, trees, recurrences, recursion, and fundamental notions in abstract algebra such as groups and rings.

English Lecture Y
CS206 Data Structure 3:0:3 Spring & Fall
Course Name Data Structure SubTitle
Course Code CS206 Course Type Mandatory Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

This course provides students with fundamental concepts in data structures and algorithms in a broad context of solving problems using computers.

English Lecture Y
CS300 Introduction to Algorithms 3:0:3 Spring & Fall
Course Name Introduction to Algorithms SubTitle
Course Code CS300 Course Type Mandatory Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

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 the areas of NP-completeness and parallel algorithms. (Prerequisite: CS204, CS206)

English Lecture Y
CS311 Computer Organization 3:0:3 Spring & Fall
Course Name Computer Organization SubTitle
Course Code CS311 Course Type Mandatory Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

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. (Prerequisite: CS211)

English Lecture Y
CS320 Programming Language 3:0:3 Spring & Fall
Course Name Programming Language SubTitle
Course Code CS320 Course Type Mandatory Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring & Fall
Course Description

This course provides students with the necessary underlying principles in the design and implementation of programming languages. Lectures use a variety of existing general-purpose programming languages from different programming paradigms: imperative, functional, logical, and object-oriented programming. (Prerequisite: CS206)

English Lecture Y
CS330 Operating Systems and Lab. 3:3:4 Spring & Fall
Course Name Operating Systems and Lab. SubTitle
Course Code CS330 Course Type Mandatory Major
Prerequisite Lecture:Lab:Credit 3:3:4
Level Undergraduate Semester Spring & Fall
Course Description

In this course, students learn about basic concepts of operating systems, with an emphasis on multi-tasking, and time-sharing. We choose one specific operating system, and study in detail its organization and functions. Students are also required to program a simple operating system, and to develop performance improvement techniques.

English Lecture Y

Research

Code Subject Credit Term
CS490 Research in Computer Science 0:6:3 Spring & Fall
Course Name Research in Computer Science SubTitle
Course Code CS490 Course Type Research
Prerequisite Lecture:Lab:Credit 0:6:3
Level Undergraduate Semester Spring & Fall
Course Description English Lecture N
CS495 Individual Study 0:6:1 Spring & Fall
Course Name Individual Study SubTitle
Course Code CS495 Course Type Research
Prerequisite Lecture:Lab:Credit 0:6:1
Level Undergraduate Semester Spring & Fall
Course Description English Lecture N