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
CS340 Interdisciplinary Approach to Network Science 3:0:3 Fall
Course Name Interdisciplinary Approach to Network Science SubTitle
Course Code CS340 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

In this course we introduce the basic analytical tools to network research, and study different networks with the tools. Different disciplines, such as sociology, political science, business, biology, physics, and computer science, bring their unique perspectives on network research.

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
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
CS362 File Structures 2:3:3 Fall
Course Name File Structures SubTitle
Course Code CS362 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Fall
Course Description

The techniques of storing, maintaining, and accessing large databases to disk effectively is becoming very important. The file processing technique is a core technology that can be used for this purpose. This course introduces basic disk I/O concepts, blocking and buffering, and covers various file structures, such as sequential files, hash files, indexed sequential files, and multi-key files. Students are required to implement these file structures in programming languages such as C++ and build a simple DBMS.

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
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
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
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
CS410 Introductio to VLSI Design 3:0:3 Spring or Fall
Course Name Introductio to VLSI Design SubTitle
Course Code CS410 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

Students learn about very large-scale VLSI chip design using nMOS technology. For basic design methodology, students study stix diagram and layout design; advanced topics like switch and gate logic, PLA's 2-phase clocking, design rules, floor planning, and design technique are covered.

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
CS440 Data Communication 3:0:3 Spring or Fall
Course Name Data Communication SubTitle
Course Code CS440 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring or Fall
Course Description

This course covers basic principles in data communications, such as LAN, WAN, multimedia (e.g., voice and video) transmission. It introduces students to key elements and concepts in network construction. Compared to CS441, emphasis is placed on lower layer protocols and network topologies.

English Lecture Y
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
CS448 Introduction to Information Security 3:0:3 Spring
Course Name Introduction to Information Security SubTitle
Course Code CS448 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

This class introduces the fundamental understanding on cryptographic primitives to apply for a secure system including classical, symmetric and asymmetric cryptosystems with mathematical background. The students can gain the general knowledge on modern cryptography to execute advanced research in information security.

English Lecture Y
CS451 IT Service Engineering 3:1:3 Fall
Course Name IT Service Engineering SubTitle
Course Code CS451 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:1:3
Level Undergraduate Semester Fall
Course Description

This course aims to teach methodologies of Information system planning and development for business process innovation in the manufacturing, distribution, financing, medical, telecommunication and other service industries. Aiming introducing theories and practice of IT service engineering, best practice will be taught by experts from industry in cooperation with KAIST professors. It may be operated in conjunction with IE451(IT service Engineering).

English Lecture Y
CS452 Business ProcessEngineering and Management 3:0:3 Fall
Course Name Business ProcessEngineering and Management SubTitle
Course Code CS452 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

In this course students learn business strategy planning methodologies, strategy-aligned process reengineering methodologies, process modeling techniques (using international standard notation), process implementation technologies, and enterprise-wide process architecture management and governance processes.

English Lecture N
CS453 Automated Software Testing 3:0:3 Fall
Course Name Automated Software Testing SubTitle
Course Code CS453 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
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
CS455 Software Project 2:3:3 Fall
Course Name Software Project SubTitle
Course Code CS455 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 2:3:3
Level Undergraduate Semester Fall
Course Description

In this course, students develop programs of practical value, using basic software engineering techniques and software tools. Students are evaluated based on the team effort put into project documentation and development process management. Final deliverables are evaluated based on productivity and reliability.

English Lecture Y
CS457 Web-based Software Development 3:0:3 Spring
Course Name Web-based Software Development SubTitle
Course Code CS457 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Spring
Course Description

The main goals of this course are to gain knowledge about various Web application modeling/ development methods and other software engineering paradigms that enable efficient development of large and complex Web-based software, and to practice them by performing a term project. The state-of-the-art technologies, including Internet agents, Web Services, Semantic Web, and Web 2.0 paradigms, are also covered in this course.

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
CS472 Human-Computer Interatction 3:1:3 Fall
Course Name Human-Computer Interatction SubTitle
Course Code CS472 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:1:3
Level Undergraduate Semester Fall
Course Description

Aiming to both introduce fundamental concepts and provide a hands-on experience of realizing a user interface, this course has the following two parts: 1) lectures covering major chapters from an HCI textbook, and 2) lab sessions fro prototyping skills and term projects. A few special lectures will cover recent topics in HCI, and a series of reading assignments will cover historical milestones in HCI.

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
CS476 Collective Intelligence in Biomedical Applications 3:0:3 Fall
Course Name Collective Intelligence in Biomedical Applications SubTitle
Course Code CS476 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

This course teaches recent trends in IT-medicine convergence, especially on basic techniques and applications of collective intelligence(CI) for biomedical informatics domain. Case studies and projects will be offered in topic areas such as biomedical knowledge management, data mining, and CI.

English Lecture N
CS478 Financial Data Analysis and Mining 3:0:3 Fall
Course Name Financial Data Analysis and Mining SubTitle
Course Code CS478 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

Data mining and analysis methods such as neural networks, Monte Carlo simulation, decision trees, and graphical models are widely used in the financial decision making process. In this course, we study basic ideas and frameworks of such approaches, and its applications to financial problems including portfolio management, understanding financial risk, trading stocks and futures.

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
CS484 Introduction to Image Processing 3:0:3 Fall
Course Name Introduction to Image Processing SubTitle
Course Code CS484 Course Type Elective Major
Prerequisite Lecture:Lab:Credit 3:0:3
Level Undergraduate Semester Fall
Course Description

Digital image processing is the use of computer algorithms to perform image processing on digital images. This course is an introductory course to the fundamentals of digital image processing. It emphasizes general principles of image processing, rather than specific applications. We expect to cover topics such as image acquisition and display, properties of the human visual system, color representations, sampling and quantization, point operations, linear image filtering and correlation, transforms and subband decompositions, and nonlinear filtering, contrast and color enhancement, image restoration, image matching, and simple feature extraction and recognition tasks.

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
CS408 Computer Science Project 1:6:3 Spring & Fall
Course Name Computer Science Project SubTitle
Course Code CS408 Course Type Mandatory 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

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