School of Software

The Department of Computer Software produces skilled individuals who can carry out research and development in various computer software areas. The Department encourages and trains the students to acquire in-depth understanding of mathematics, logic and computer hardware and to apply their knowledge in developing core system software and applied software. The Department’s key educational and research fields are, software, database, programming system, telecommunications, computer game, next-generation internet and computer security.

Location : Rm.515-1, Bima Hall

Tel : 82-2-940-5210

Fax : 82-2-940-0998

Website :

Course Descriptions


Lectures on the systematic structure and analytic method of algorithm, model of operation, complexity, complexity of sorting and selection, search using sets, string, and graph, NP-completeness, and so on.

Artificial Intelligence

Lectures on the basic reasoning method, theorem proving, game playing, analysis and solving of problem, natural language understanding, and practices with computer languages such as LISP, PROLOG.


Lectures on the whole structure of a compiler and the phases of a compiler, which consists of lexical analysis, parsing, intermediate code generation, code optimization, code generation, and so on.

Computer Architecture

Lectures on the architecture and design of stored program computer, component parts of computer, central processing unit, control unit, main memory, auxiliary storage, input/output processor, and so on.

Computer Network

Lectures on the principle of computer network, network layering, networking protocols, network topologies, internetworking and high-speed networks in data communication between computers.

Computer Science Applications

Lectures on special topics which cover the latest trends and technologies in computer science.

Computer Science Lab

The course aims to study practical knowledge and experiences in various fields of computer science. The laboratory projects pursue the learning of professional skills on many state-of-the-art operating systems, programming languages, and development tools.

Computer Systems Performance Analysis

Lectures on performance evaluation overview, measurement techniques and tools, data presentation techniques, probability theory and statistics, experimental design and analysis, simulation overview, simulation results analysis, queueing theory overview, solutions on queueing networks.

Data Communication

Lectures on the data communication fundamentals, transmission and processing modes, communications media, flow and error control, and so on.

Data Structures

Lectures on abstract data type, arrays, stacks, queues, linked lists, trees, graphs, heaps, search trees, hashing, and memory allocation techniques.


Comprehensive studies on several kinds of database systems such as hierarchical/network/relational database system, including the design and management of database system.

Database Application

Lectures and practices in client/server, image and video system, VOD, and the variety of recent multimedia database application fields.

Digital Logic

Lectures on boolean algebra, logic gates, combinational logics, sequential logics, registers, processor logic design, control logic design.

Discrete Mathematics

Lectures on basic mathematical theory such as logic, relation, data structure, algorithm, database, information search, computer architecture, and so on.

Distributed Systems

Lectures on distributed system overview, network structures, synchronization in distributed systems, processes in distributed systems, distributed file systems, protection and security, client/server model, distributed object model.

Graph Theory

Lectures on the tree, path, circuit, cut-set, isomorphism, plannar and dual graph, vector space, etc.

Image Processing Application

Lectures and practices in image processing and analysis, image compression, computer vision, and the variety of pattern recognition application fields.

Internet Information Design

Lectures on the Web configuration, design of Web site, information description language, method on a store and retrieval of information for a presentation of various information on the Internet.

Introduction to Computer Science

Lectures on hardware and software fundamentals, essential applications, computer networks, algorithms, artificial intelligence, and information age implication.

Management Information System

Lectures on the information age, information technology systems, strategic and competitive opportunities, database and database management system, decision support, and artificial intelligence, preparing for the future.


Areas of study include Microprocessor technology and its application to the design of practical digital systems, hardware, programming, and interface of microprocessor oriented systems.

Multimedia Communication

Lectures on high-speed network and multimedia information.

Operating Systems

Lectures on process concept, CPU scheduling, process synchronization, deadlocks, memory management, virtual memory, file-system, I/O system, secondary-storage structure.

Programming Language

This course improves programming ability to implement software on the computer system by practice. It includes web programming, object oriented programming, and the use of script languages.

Software Design

This course deals with the definition of information requirements, logical model of information system, preparatory process of entire designs, defining procedure of program specification, development of documentation, procedure of practicing plan, the instrument, method, and concept used by system analyser or designer, and so on.

Software Engineering

Lectures on software engineering, managing software projects, conventional methods for software engineering, object oriented software engineering, and advanced topics in software engineering.

Systems Programming

Lectures on system softwares which translate application program to machine language. It consists of assembler, linker, loader, compiler, and operating system.

Theory of Programming Language

The purpose of this course is to provide students with the basic skills in order to design a new language by means of learning basic concepts and problematic areas of quite a few languages.