Course Description (전체 개설 교과목 개요) Introduction to Computer Science Yr. : 1 Course Description Sem. : 1 Course Code: CS0002 Introductory course in computer science required as computer engineer. Topics include computer architecture, operating system, computer network, and multimedia. C++ Programming1 Yr. : 1 Course Description Sem. : 1 Course Code: CS0003 Introductory course in C and C++ programming language, structured programming techniques, and concepts of object oriented languages. Topics include a survey of object-oriented programming concepts, data types, control flows, input/output methods, functions, arrays, structure and basic concept of class. Introduction to Electronic Engineering Yr. : 1 Course Description Sem. : 1 Course Code: CS0004 The goal of this lecture is to understand the basic concepts ofelectronics, electrical and electronic device characteristics, principles of direct current and alternating current and operations of measurement devices. Logic Circuits Yr. : 1 Course Description Sem. : 2 Course Code: CS0005 This course helps students to concretely understand how to design logic circuits using basic logic gates through theory and experiments. It includes simplification of boolean equations, flip-flops, counter, registers, etc. C++ Programming2 Yr. : 1 Course Description Sem. : 2 Course Code: CS0006 Introductory course in C++ programming language and concepts of object oriented languages. Topics include a survey of object-oriented programming concepts, inheritance of classes, interface, exception handling, pointers, file processing and polymorphism. Introduction to Engineering Design Yr. : 1 Course Description Sem. : 2 Course Code: CS0007 This course aims to guide students through the steps necessary for the successful execution of design projects. Techniques for defining problems, generating solutions and deciding between them are used to setup and solve design problems that are analyzed by students by fundamental engineering principles.. Data Structures 1 Yr. : 2 Course Description Sem. : 1 Course Code: CS0008 Introductory course in data structure and algorithm analysis. Topics include stacks, queues, lists, trees, graphs, sorting algorithms, hashing, and search structures. Programming Applications Yr. : 2 Course Description Sem. : 1 Course Code: CS0009 A practice course using C++ programming language. Various programming problems are presented to implement and the implemented codes are closely reviewed. Java Programming Yr. : 2 Course Description Sem. : 1 Course Code: CS0010 An introductory course in computing in object-oriented languages in Java. Topics include a survey of objectoriented programming concepts: object, message passing, class, inheritance, interface, polymorphism, GUI, generics, thread. Computer Architecture Yr. : 2 Course Description Sem. : 1 Course Code: CS0011 This course introduces the major components of digital computers and the organization of these components. Topics include computer organization, instruction set design, cache memory, pipelined processors, multiprocessors and performance evaluation of component systems. Recent developments in PC and desktop architectures are also studied. Database Yr. : 2 Course Description Sem. : 1 Course Code: CS0012 An introductory course in database. Topics include logical organization of databases, Entity-relationship model, relational data model, normalizations, SQL, call-level interface, embedded SQL. Data Communication Yr. : 2 Course Description Sem. : 1 Course Code: CS0013 This course aims at giving the students the general understanding on the principle of data communications, the need of the protocol, network architectures, and internetworking concepts. The course topics will include encoding and modulating techniques, network components, ISO OSI reference model, transmission of digital data, error detection and correction, data link control / protocols, multiplexing, and networking essentials. Data Structures 2 Yr. : 2 Course Description Sem. : 2 Course Code: CS0014 Introductory course in data structure and algorithm analysis. Topics include complexity analysis, graphs, hashing table, search algorithms and sorting algorithms. Programming Design Yr. : 2 Course Description Sem. : 2 Course Code: CS0009 A practice course using Java programming language. Various programming problems are presented to implement and the implemented codes are closely reviewed. Computer Networks Yr. : 2 Course Description Sem. : 2 Course Code: CS0016 This course introduces the overall concept of computer communications networks within the context of the Internet. The course educates the student on the principles of applications, transport, network and data link layer protocols. Topics include Internet protocols and routing, local area networks, congestion control, TCP, and peer-to-peer networking. Operating Systems Yr. : 2 Course Description Sem. : 2 Course Code: CS0017 The goal of this lecture is that the make a survey of structures of an operating system kernel, process synchronization primitives, interrupt handlers, and device drivers. Details of the run-time environment supporting high level languages for concurrent programming and organization of multiprogramming and multiprocessing systems is mentioned also. Resource allocation models, problem of deadlocks, scheduling, memory management, virtual memory, I/O control and file systems are discussed too. Database Applications Yr. : 2 Course Description Sem. : 2 Course Code: CS0018 An introductory course in database design. Topics include data modeling, database design, developing database applications, object-oriented database, object-relational database, XML database, security and integrity, concurrency control, transaction processing, distributed database systems. C# Programming Yr. : 2 Course Description Sem. : 2 Course Code: CS0019 This course introduces Windows Programming techniques based on C#, including discussion of the Object Oriented features of C# such as class Methods and Events, Inheritance, Polymorphism, and Interface. This course also introduces other advanced topics such as User Controls, Database Access, Threads, and XML. Software Engineering Yr. : 3 Course Description Sem. : 1 Course Code: CS0020 This course introduces concepts, theories, tools and methods for the specification, development, management, and evolution of software systems in the perspective of software engineering. Microprocessor Interfacing Yr. : 3 Course Description Sem. : 1 Course Code: CS0021 With the already learned basic concepts of computer architecture, we study the organizations of microprocessors and various instructions that the processors can execute. In the lab. We also practice the programming of I/O ports, LED/LCD interface, Interrupts, timers, serial interface(TWI, SPI, Communication) and step motor derives. Web Programming Yr. : 3 Course Description Sem. : 1 Course Code: CS0022 This course introduces Web page design with HTML, and advanced techniques such as client/server-side scripting languages. Students are taught necessary skills to use the internet and develop web sites on their own. Core technologies including HTML, HTML5, CSS, JavaScript, PHP, and MySQL will be emphasized. Mobile Programming Yr. : 3 Course Description Sem. : 1 Course Code: CS0023 Understand about the programs that are applied on the mobile devices such as smart phone and PDAs, and learn methods for implementing the mobile programs that can be used practically. The goal is to understand about mobile programming environment, especially in smart phone. Windows Programming Yr. : 3 Course Description Sem. : 1 Course Code: CS0024 This course focuses on helping C++ programmers learn the programming concepts of Windows and the Microsoft Foundation Class application framework -MFC. The course provides insights into the MFC class library and especially the Document/View architecture. The participants will learn the basics of Windows programming applying the SDK and MFC architecture, class hierarchy, event handling, and persistent data objects. The course also introduces Windows API programming with many helpful examples. Linux System Programming Yr. : 3 Course Description Sem. : 1 Course Code: CS0025 Topics include Linux System Calls and the structure of Linux kernel.. Object Oriented Software Engineering Yr. : 3 Course Description Sem. : 1 Course Code: CS0026 Topics include the differences of the traditional software development and object-oriented software development. It also includes the development of simple system using the development tool. Design Patterns Yr. : 3 Course Description Sem. : 2 Course Code: CS0027 An introductory course in design pattern. Topics include UML and well-known design patterns. Distributed Computing Yr. : 3 Course Description Sem. : 2 Course Code: CS0028 This course introduces the basics of distributed computing, Includes the internetworking, distributed object, remote procedure call, security, naming service, peer-to-peer system and web service. Multimedia Processing Yr. : 3 Course Description Sem. : 2 Course Code: CS0029 Topics include Multimedia in Information Society, Multimedia Environment and Application, Multimedia on the Internet, Multimedia Data Processing, Image and Graphic, Sound, Animation, Video, Contents Development Process and Environment, Multimedia Web Page Construction, Virtual Reality and VRML, Future of Multimedia. Includes LAB Sessions and Term Project.. Computer Security Yr. : 3 Course Description Sem. : 2 Course Code: CS0030 This course introduces the overall concept of security which plays a critical role on the Internet. Also, this course gives students a variety of opportunities to study both cryptographic theory and security in the field of network and system. Here, cryptographic theory, network security and system security constitute a major part of security. In detail, this course covers the following topics: conventional key algorithm, public key algorithm, digital signature, system security, email security, firewall, and intrusion detection system. Embedded Systems Yr. : 3 Course Description Sem. : 2 Course Code: CS0031 In this course, we study the basics of embedded Linux system porting, setting and programming. Also in the course, graphic user interface tools like GTk and Qt system applications are programmed. Advanced Web Programming Yr. : 3 Course Description Sem. : 2 Course Code: CS0032 This course introduces the advanced Web technologies. Topics include concepts and technologies including Ajax which is a web development method used on the client-side to create interactive web applications, Model–view–controller (MVC) Framework which's a software architecture, currently considered an architectural pattern used in web programming fields, and techniques related with social networking and mashups. As time permits, various topics related with mobile web programming are also introduced. System Development Project 1 Yr. : 3 Course Description Sem. : 2 Course Code: CS0058 Team project for developing and designing software systems.Each team proposes and implements a practical software system under some constraints. Systems must be based on several techniques studied in previous semesters and real field applications. By team-based software developing through various phases of software engineering, each student improves developing techniques, communication skill, and so on. Algorithm Yr. : 4 Course Description Sem. : 1 Course Code: CS0034 Introductory course in algorithm analysis. Topics include complexity analysis techniques and methodologies for problem solving like divide-and-conquer, greedy methods, dynamic programming, backtracking.. Compiler Yr. : 4 Course Description Sem. : 1 Course Code: CS0035 Introductory course for automata theory and compiler design. Topics include structures of compilers, formal language theory(finite state automata, pushdown automata along with regular grammars, context-free grammars) and components of a compiler(scanner, syntactic analysis (parsing) and semantic analysis), and implement a small scale compiler using Lex and Yacc. Computer Graphics Yr. : 4 Course Description Sem. : 1 Course Code: CS0036 Overview of computer graphics, computer graphics system, OpenGL and graphics application software, primitive elements of two-dimensional graphics, 2D graphics transformations, GUI and interactive input methods, 3D graphics geometric transformations and viewing, 3D object modeling, hidden-surface removal, illumination model and surface rendering, procedural graphics techniques: fractal geometry, particle system, computer animation. Includes LAB sessions and term project. . Program Languages Yr. : 4 Course Description Sem. : 1 Course Code: CS0037 This course deals with the theory of programming languages with emphasis on programming language semantics and implementation issues, formal models of syntax and semantics, static versus dynamic scoping, parameter passing mechanisms, and programming in alternate paradigms such as functional, logic, and object-oriented programming. Linux Device Drivers Yr. : 4 Course Description Sem. : 1 Course Code: CS0038 In this lecture, we study the basics of Linux device drivers of character, block and network device. In the Lab. using the Linux API and writing of device drivers are performed. Web Service Yr. : 4 Course Description Sem. : 1 Course Code: CS0039 This course introduces the major concepts and techniques for enabling Web service based interactions on the Web. The objective is to familiarize the students with the recent trends in industry and academia. The course will address various aspects of Web services including the reference model for Web services (UDDI, SOAP, WSDL) and overview of Web service standards. Some practical exercise will be made for students to catch the differences between traditional client server, SOA, and Web service approaches to systems. Component Programming Yr. : 4 Course Description Sem. : 1 Course Code: CS0040 An introductory course in computing in component-based programming. Topics include a survey of component-based programming concepts and case studies on J2EE: session bean, message-driven bean, persistence, container services. Artificial Intelligence Yr. : 4 Course Description Sem. : 2 Course Code: CS00041 This course introduces the overview of Artificial Intelligence (AI). Topics include knowledge representation formalisms and search techniques, the ultimate tools of most AI programs, with introduction of the Prolog programming language which is one of well-known AI languages. Automatic reasoning, fuzzy theory, neural networks, genetic algorithms, and expert systems are also included. As time permits, we will discuss the current state of the art with examples from recent mainstream publications. Information Retrieval Yr. : 4 Course Description Sem. : 2 Course Code: CS00042 A modern approach to information retrieval(IR) from a computer science perspective; Basic and advanced techniques for text-based IR systems; Boolean and vector space retrieval models; evaluation and interface issues; Recent trend of IR systems like question answering and so on. Ubiquitous Computing Yr. : 4 Course Description Sem. : 2 Course Code: CS00043 Topics include the concept of ubiquitous computing techniques, the environment of ubiquitous computing and telemetrics. Windows Device Drivers Yr. : 4 Course Description Sem. : 2 Course Code: CS00044 In this lecture course, we study the basics of Microsoft Windows device drivers. In the Lab. using and writing of the WDM, runtime library, macro function, error handlers, I/O request packet, plug in play of function driver, data read/write, power management, device control API, windows management instrumentation, multifunction device and human interface device are performed. User Interface Design Yr. : 4 Course Description Sem. : 2 Course Code: CS00045 An introductory course in user interface design. Topics include concepts and techniques for user interface design and human computer interaction.