Biological Sciences (3)

This course will cover many differnent and interesting subjects in biology, including large biological molecules, cellular membranes, metabolism, cell cycle, and genetics, which mainly, but not exclusively, deal with what is happending inside the cell.

LOGIC CIRCUIT DESIGN (3)

Students will learn the basic knowledge for digital logic design, which serves the basis of digital computers and digital integrated circuits. It includes Boolean algebra, Boolean equation and minimization, analysis and design method for combinational logic, storage elements and sequential circuits, analysis and design method for sequential logic, and RTL design method.

GENERAL PHYSICS(I) (3)

General physics I, which is the first course of a two-semester sequence in general physics for science and engineering majors, is designed to present concepts and applications of kinematics, dynamics, energy, momentum, and heat. The lecture aims at understanding basic concepts and principles of physics, and applying them to describe physical phenomena. Students are recommended to take general physics experiments as well.

DISCRETE MATHEMATICS(I) (3)

This course provides mathematical basics for computer science, incluing the topics of counting, logical predicate calculus, set theory, and relations. For each topic, students will be introduced to the riorous processes related on definitions, theorems, and proofs. Pratical examples will be presented for solid understanding of the basic concepts and for the problem solving ability.

INTRODUCTION TO COMPUTERS AND PROGRAMMING (4)

This course introduces the fundamentals of computer systems from both the hardware and the software aspects. Also the hardware architecture and how the software is in operation using machine cycles are also examplified. This course also provides the problem solving methods, i.e. how to program, using Python.

INTRODUCTION TO INTERNET AND WEB (3)

Internet-based web services play a very important role in implementing platform independent services. In this course, we will understand the basic structure of the Internet and the web, and learn client-side programming. In particular, it focuses on understanding the basic syntax of HTML / CSS / JavaScript. In latter part of this couse, we will build a simple web server using Node.js and use the wep API. This confirms the various possibilities of using web services. This helps us understand the applicability and extendability of the web service.

LOGIC CIRCUIT DESIGN (3)

Students will learn the basic knowledge for digital logic design, which serves the basis of digital computers and digital integrated circuits. It includes Boolean algebra, Boolean equation and minimization, analysis and design method for combinational logic, storage elements and sequential circuits, analysis and design method for sequential logic, and RTL design method.

ENGINEERING LINEAR ALGEBRA (3)

First, this course intorduces concept and usefulness of linear algebra through examples of solving linear systems and deals with properties of vectors ans matrices. Then the course introduces vector spaces, the main theme of the course, and handles many important properties such as linear independence, subspaces, bases, dimensions. Concept and techniques of linear transformation are also introduced in detail. Finally, various techniques useful for engineering problems such as eigenvector technique, orthogonalization technique, and matrix decomposition technique, are studied.

DISCRETE MATHEMATICS(I) (3)

Provides mathematical backgrounds of computer science. Topics include counting, logic, predicate calculus, set theory, relations, functions, and algebraic system. For each topic, the lecture goes through the rigorous process of definition, theorem, and proof. Many example problems are given for deeper understanding of the basic concepts and for enhancing the problem solving ability.

C++ PROGRAMMING (3)

The goal of this course is to study about object oriented programing and C++ program design. So we have to study what is componets of C++ laguage. And we also study about abstract data type, inheritance, polymorphism, genericity and so on. Finally, we study how to design object oriented program by example.

ELEMENTARY COMPUTER LAB (2)

This lecture provides an introduction to several open source hardwares and their programming. It provides a foundation on the several topics such as microprocessor and its basic support components, including CPU architecture, memory interfaces and management, coprocessor interfaces, bus concepts, serial I/O devices, and interrupt control devices. Students will learn programming of open source hardwares and understand application of them.

INTRODUCTION TO OPEN SOURCE SOFTWARE DEVELOPMENT (3)

By understanding the inside of fundamental Linux system architecture, students learn how to program in the Linux environment and then, how to program in open-source software development environments. Also, by developing an application program that is easily accessible in our daily life, students foster their programming capability for resolving a problem.

FILE STRUCTURES (3)

The objective of this course is to let students have ability to design and implement file systems as system softwares themselves by studying UNIX file systems, structure for storing, and index structure for ubiquitous computing client-server systems, which collect and manage sensor and tag information. This course covers from system calls, the inodes, and the stream of UNIX kernel, to logical file structure which is basic concept of network communication using sockets. Unlike a "Data Structure" subject which is based on memory, this subject aims at ability to design system softwares by implementing file systems of secondary storage device, flash memory or main memory using C++. "File Structure" is an essential subject to have ability to develop system softwares for students majoring computer science and engineering as a leading subject of OS, DB, and network programming.

DATA COMMUNICATIONS (3)

Study on data transmission principle, transmission media and data encoding, , Study on data link control, multiplexing, and Interfacing, Study on circuit switching, packet switching , and routing, Study on local area network and wireless LAN, Study on data communication applications.

ADVANCED UNIX PROGRAMMING (3)

This course presents the fundamental concepts for UNIX operating system and provides an advanced programming technique in the UNIX environment. This is also an advanced course in UNIX system facilities. Besides, this course is almost prerequisite for the operating systems course, in that it provides hands on experience with such facilities as signals, semaphores and file locks. Familiarity with the C language is assumed.

COMPUTER ALGORITHMS (3)

This course introduces concepts related to the design and analysis of algorithms. Specifically, it discusses recurrence relations, and illustrates their role in asymptotic of algorithms. It covers in detail greedy strategies, divide and conquer techniques, dynamic programming for designing algorithms, and illustrates them using a number of well-known problems and applications. The programming assignments will be coded in C++ or other languages running in Linux.

OPERATING SYSTEMS (3)

Through this course, students should understand the basic principless of the operating system and how the operating system effectively manages computer resources based on the the functional components of operating system. Also, based on an understanding of the overall operation of the operating system, students should utilize a theory of the operating system for developing softwares optimized to operating system.

COMPUTER ARCHITECTURE (3)

Study basic knowledge about computer systems in general including CPU, memory system, I/O device, and bus. Study cache, internal & external memory, interconnection mechanism, computer arithmetic and CPU structure. Also study RISC based CPU structure and superscalar processors.

COMPUTER SOFTWARE DESIGN & LAB (2)

This course enables students to manipulate information in an Internet environment, and to learn distributed internet application system environment by utilizing Web services and UCC(User Created Contents) environments. Students are encouraged to design and implement internet application systems in mobile Internet environment. The new technologies to implement internet applications will be also covered. Students carry out team projects in the order of proposal-interim-final and develop project capabilities.

INFORMATION SECURITY (3)

In this course, we will study the basics on cryptography and security technology. Specifically, we will study about the basics on classical encryption techniques, private key cryptography, public key cryptography, hash functions, digital signatures, authentication mechanisms and security protocols. We will also be briefly introduced the security mechanisms for Internet and software applications.

APPLIED COMPUTER DESIGN & LAB (3)

(Hardware Track) Throughout the course students will understand the embedded system architecture and embedded software development environments, and will study the hardware architecture including embedded processors. By Experiencing the design and implementation of device drivers, and by performing design projects using the experiences, students will acquire the practice skill and ability for embedded system engineers.

MACHINE LEARNING AND APPLICATIONS (3)

Introduces computational models for implementing intelligent systems. Studies principles and applications of various techniques including search algorithms, reasoning, knowledge representation, uncertainty, Bayesian networks, and machine learning.

PROGRAMMING LANGUAGE PRINCIPLES (3)

This course will teach students about the history of programming language, various characteristics of programming language construct, the grammatical formalising programming language grammar and semantics, environmental factors supporting programming languages. The course will emphasize the requirements on programming language from a software engineering aspect. The course will survey and compare the characteristics of important programming languages including C, C++, Java and Python. It also covers mordern language as Rust, R, etc. This course will also cover new paradigm of program languages in order to help student to understand the environmental changes of programming focused on internet and smart phone.