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 techniquesthat 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.