| Academic year·Semester | Subject | Key contents |
|---|---|---|
| 1-1 | Understanding Computers | This course aims to help students build an understanding of the essential computer-related knowledge they should have as educated individuals in today’s society, and to develop the ability to adapt to the computer culture of the information society based on their knowledge. The major topics to be covered are as follows.
|
| 1-1 | Python Basics | The 4th Industrial Revolution, such as artificial intelligence and big data, has brought many changes to our lifestyles. It is recognized as an important technology for living in the times. For this reason, the basics of Python programming are not limited to dealing only with the grammatical and functional usage of Python, which is essential in the fields of artificial intelligence and big data, but also the representation of information and the basic operation of computers. By understanding the principles and learning the characteristics of programming languages, through the activities of the aesthetic window of programming, students develop computer and information thinking abilities, and Through this, it aims to lay the foundation for learners to deal with various computer-related knowledge. |
| 1-1 | Introduction to Ubiquitous Computing | In this course, students will learn the categories of core technologies required in ubiquitous environments, and the details of such core technologies. The Introduction to Ubiquitous Computing course will help students specialize their computer knowledge and expand their view. In particular, students will develop an understanding of RFID, MEMS, ubiquitous networks, sensor networks, security technology, u-city, u-learning and u-medical care, as well as ubiquitous environments established based on these. Finally, the course aims to help students establish a perspective on how to understand ubiquitous environments. |
| 1-2 | C Programming | |
| 1-2 | Multimedia Systems | In today’s modern society, multimedia technologies are changing rapidly. The elements of multimedia include text, audio, video, animations, and graphics, which are combined to create new multimedia content. This course covers the basic concepts of multimedia data and the basic content of multimedia systems so that students can learn about multimedia technologies that are essential in the advanced information society of the 21st century. Students will learn about multimedia application techniques that use multimedia data and various fields of multimedia application. As the course covers a wide variety and range of topics, students are recommended to review the contentbefore listening to the online lectures to maximize the learning effects. |
| 1-2 | Introduction to Computer Science | This course is for students in their first year at the Department of Computer Science, and gives a general explanation on some fields of computer science which will be taken in the upper grades. It does not focus on any particular computing tools or in-depth computer theories and applications, but introduces some of core fields for beginners. The basic and main objectives of this course is to provide students with opportunities and environments that will allow them to familiarize themselves with computer science by learning the terminologies, basic concepts and principles and techniques involved in various fields of computer science. |
| 2-1 | HTML5 Web Programming | Web developers need to know HTML, CSS, and JavaScript to create web pages. You can create web pages efficiently only through a series of collaborations that use HTML to define the content and structure of the document, CSS to specify how the document appears on the screen, and JavaScript to program the behavior of the web page. Therefore, the purpose of this course is to introduce HTML, CSS, and JavaScript, and enhance the basic ability to create various forms of web pages through their use. |
| 2-1 | Discrete Mathematics | Discrete mathematics is the study of objects that are discrete rather than continuous. It largely deals with mathematical theories that are often used in computer science. The Discrete Mathematics course offered by the Department of Computer Science covers logic, proving methods, sets, matrices, functions, Boolean algebra, graphs, trees, combinatorics, algorithms, automata theory, and formal languages so that students can systematically learn computer science. Like other fields of mathematics, discrete mathematics provides the logical tools that can help us construct our knowledge systematically. Logical thinking ability cannot be obtained through rote memorization, but it is developed in the course of training to understand each stage of problem solving. The course aims to help students develop their logical thinking ability, along with the ability to explore and apply basic concepts of discrete mathematics to computer science as well as to other related disciplines |
| 2-1 | Java Programming | The course aims to help students understand the functions and characteristics of Java, an object-oriented programming language, and learn the basic techniques of Java programming. Students must take this course to study Java-based advanced programming techniques later. The C++ Programming course is a prerequisite for this course, and students should have a basic knowledge of the concept of object orientation to take this course. Following this course, students will be able to understand basic techniques of the Java language and study GUI, I/O, multithreading, exception handling and connection to database, primarily using the textbook. The practice problems will provide students the opportunity and ability to understand principles and solve problems for themselves. |
| 2-2 | Linear Algebra | The three pillars of mathematics are calculus, algebra, and geometry. Algebra is about solving equations, and linear algebra, one of algebra branches, was especially developed for solving equations of the first degree. Not only has linear algebra contributed to the development of the field of mathematics, it is also used in many other fields, including natural science and social science. In particular, it constitutes one of the most important foundations of machine learning, a key concept of artificial intelligence in the age of the Fourth Industrial Revolution. This course consists of three parts. Part 1 explains the basic concepts of simultaneous equations of the first degree and matrices, and Part 2 covers an algebraic structure called a vector space and explains linear transformation, which is a function from one vector space to another that holds linearity. Part 3 deals with several tools of linear algebra (e.g., eigenvalue and eigenvector, orthogonal vector, orthogonal transformation, etc.), which are applied in various fields. Linear algebra provides the logical tools that can help us construct our knowledge systematically. Logical thinking ability cannot be obtained through rote memorization, but it is developed in the course of training to understand each stage of problem solving. The course aims to help students develop their logical thinking ability, along with the ability to explore and apply basic concepts of linear algebra to computer science as well as to other related disciplines. |
| 2-2 | Programming Languages | A programming language is a tool a programmer uses to communicate his or her intention to the computer. The course aims to help students develop their sense for programming languages by covering the definition, functions and components of a programming language. It helps students learn new programming languages easily, better understand the languages they use and ultimately become efficient programming language designers. |
| 2-2 | Data Structures | Data Structures is one of the most basic subjects in the software of computer science. In this course, students learn the methodology of how to efficiently construct and process data in computers. From the perspective of data processing by computers, program problems require in-depth learning of the indivisible connection between data structure and algorithms. Data Structures is a prerequisite for a number of upper-level courses, such as File Processing, Algorithm, Database, Artificial Intelligence and Software Engineering. |
| 2-2 | Data Analysis with Open Sourse | |
| 3-1 | Operating Systems | An operating system (OS) is a system software that enables the convenient use of computer systems, and plays the key role of efficiently managing the resources of a computer system. The course aims to help students understand the composition and processing process of an operating system’s general roles (e.g., managing process, memory, input/output devices, files) and obtain basic knowledge in recently emerging fields related to operating systems, such as discrete operating systems, operating system security, and embedded operating systems. |
| 3-1 | Digital Logic Circuit | The Digital Logic Circuit course is an essential course in the Department of Computer Science that provides students with basic knowledge regarding the composition and operating principles of a digital system and methods to analyze and design logic circuits. Part 1 gives an overview of a digital system and explains how to present data in the computer. Part 2 explains the basic concept of Boolean algebra for presenting the functions of a digital system, and then gives a detailed explanation of how to simplify and implement a Boolean function. Part 3 explains the analysis and design processes of a combinational logic circuit and a sequential logic circuit, and gives students an opportunity to learn how to analyze and design logic circuits, by solving key practice problems. Part 4 covers the operating principles and characteristics of register and counter, and the types and basic structure of a memory unit. The Digital Logic Circuit course helps students to build their understanding of learning content when they take courses about hardware. In essence, the course provides the foundation that will enable students to understand the content of the Computer Architecture course in the second semester of their third year. |
| 3-1 | Database Systems | In our contemporary society, with its exponentially increasing amounts and types of digital data, it is essential to have the skill to effectively manage and use data based on theoretical and practical knowledge. In the Database System course, students will obtain a theoretical background on the concepts and necessity of database and the data management, and learn about the relational models, relational algebra and normalization for SQL. Students will also learn about files, index structure, transaction and concurrency control for effective data storage and management, In addition, the course helps students to develop their practical experience in this area by creating a database system with MySQL Server and MySQL Workbench, both widely used in real-life applications. The course assumes that students are familiar with basic concepts of data structures, discrete mathematics and the C language. |
| 3-1 | Algorithm | Computer science is the study of problem solving, so the algorithm is a fundamental and essential part of computer science because it deals with methods and processes for efficiently solving problem. Finding an efficient algorithm to solve a given problem is the first and most important step in computer-based processing, so without an algorithm a given problem cannot be solved using computer. This course focuses on how to design an algorithm to solve a problem, and how to analyze the efficiency of the algorithm. It covers three algorithm design techniques and their algorithms, as well as sorting and search algorithms used in a wide range of applications. |
| 3-1 | Artificial Intelligence | Artificial intelligence is a generic term for all disciplines that study how to make computers enable to do intellectual activities. This course aims to help students build a general understanding of the artificial intelligence and its applications. The major topics that will be covered are as follows. |
| 3-2 | UNIX System | Students will learn about Linux, a free and open source operating system that complies with UNIX standards. The learning objective is to obtain the knowledge and competency required to be a server manager, and to develop one’s self-directed learning ability. The course covers open source software licenses; Linux standard directory; shell functions and basic instructions; Linux booting; user account management; text editing; file system and process management; package management; shell script; and network settings and server management. |
| 3-2 | Computer Architecture | The Computer Architecture course is an essential course in the Department of Computer Science that provides computer scientists with basic knowledge of computer hardware systems – that is, basic knowledge in the composition and operating principles of hardware components of a computer system. The course consists of four parts. Part 1 gives students a basic understanding of a computer system and its developmental history. Part 2 offers a detailed explanation of computer instructions, the processing unit, the control unit and the central processing unit, and is the core of this course. Part 3 explains the memory unit and input/output devices to provide the general concepts of hardware in relation to a computer system. Part 4 explains developmental computer architecture and covers the concepts, categorization and types of a parallel processing system. As the learning content about computer architecture is deeply related with other fields of computer science, the course aims to provide students with the broad and basic knowledge of the systems necessary to understand the learning content of other courses in the Department of Computer Science. |
| 3-2 | Machine Learning | Machine learning is a field in which research and development is most actively carried out from a practical point of view, among artificial intelligence fields for imparting human intelligent information processing to machines. This course does not focus on any specific themes in the field of machine learning in depth, but comprehensively deals with the contents that need to be touched and known in general, from basic and traditional methodologies to the latest technology. Through this approach, the goal of the course is to provide a solid foundation in the field of machine learning, and to enhance students with the ability to learn and acquire what they need while searching for what they want. |
| 3-2 | Simulation | The course consists of two halves. In the first half, which consists of Chapters 1 to 5, students will develop an understanding of concepts of simulation by solving simple practice problems. In the second half, which consists of Chapters 6 to 10, they will learn the theories in depth, study simulation languages currently used in the field and practice using simulation languages. Students are recommended to complete all the practice problems in Chapters 1 to 5 to ensure their effective learning. To help students solve the practice problems, C, Java and other programming languages will be posted in the learning bulletin board of the teaching homepage. For futher study We introduce a Riverbed Modeler Academic Edition (Chapter 10) as most popular network simulation language, and students can understand to design and execute a network simulation. The course introduces simulation application cases currently used in the field through videos. |
| 3-2 | JSP Programming |
JSP is a web programming language based on scripts, and can be included in HTML and XML documents. As JSP is based on the Java language, a JSP user can use object-oriented concepts and various functions needed in a web environment to create a web program. Working mainly from the textbook, students will learn JSP techniques and develop the ability to apply the techniques in practice, while solving practice problems. The Java Programming course is a prerequisite for this course. |
| 4-1 | Computer Graphics | Computer graphics deals with topics for presenting and delivering information in forms of visual representations. This course aims to help students understand the theories and algorithms that constitute several processing stages of 3D graphics pipelines, which will enable them to write application programs that use computer graphics. The major topics to be covered are as follows.
|
| 4-1 | Information and communications networks | Core technologies in the age of the Fourth Industrial Revolution include artificial intelligence (AI), the Internet of things (IoT) and big data. For the efficient operation of these technologies, information and communications networks are essential. Considering this, it seems quite timely and essential to learn about information and communications networks. The mutually complementary combination of computer information processing technologies and various and rapid communications technologies have resulted in the substantial development of information and communications networks. In other words, the foundational technologies of information and communications networks include computer information processing technology, data communications technology and network technology. Information and communications networks have strengths that include sharing of resources, improved reliability and discrete processing. Their current weaknesses are complex operation and the problem of protecting communications information. The lectures will focus on data communications and network technologies rather than computer information processing technologies. The course covers basic knowledge and theories about data communications and the important functions of data communications. The course also explains the Open Systems Interconnection model (OSI model), TCP/IP protocols, local area networks (LAN) and information protection. |
| 4-1 | Software engineering | The course introduces students to the basic principles of software engineering and explains each stage of its process. Students will gain an overview of project planning, requirement analysis, design, test, quality assurance and maintenance work. They will also learn about object-oriented analysis and design and how to effectively write a model using the Unified Modeling Language (UML). The course aims to help students develop the practical adaptability that will enable them to apply general knowledge of software engineering when performing actual projects. |
| 4-1 | Mobile App Programming | As smartphones become more important in modern life, they form an increasingly important part of the computing environment. The diverse services based on mobile communications networks create new and varied demands, forming a new field of IT. The course aims to help students understand the diversity of programming environments that can provide different services based on Android operating systems, and develop the ability to build such programming environments for themselves. |
| 4-1 | Computer Security | The course deals with computer security in an information society and overall content of information security, including the meaning and history of information security, theory of cryptography and its application—which are the theoretical and technical backgrounds for information security, and recent technological trends and developments. |
| 4-2 | Deep learning | |
| 4-2 | Compiler Compiler construction | The course explains a compiler, which is a basic part of a system program. Prerequisites are programming language courses in the Department of Computer Science. The course assumes that students are familiar with programming languages and can understand them.The lectures revolve around the textbook, which mainly covers all aspects of effectivelyconstructing compilers. Chapter 1 introduces basic concepts such as lexical analysis, syntax analysis, semantic analysis, intermediate code generation, optimization and object code generation — all logical functions of compilers. Beginning in Chapter 2, students will learn each stage of these in detail, along with related techniques and theories. Students will gain an understanding of the compiler theories introduced in the lectures and textbook more easily and clearly through solving practice problems. The course also introduces LEX and FLEX (Chapter 5) and YACCand BISON (Chapter 13), which are useful software tools that can make lexical and syntactic analyzers for themselves. Students can practice these using computers. This course aims to help students develop a clear understanding of compilers, and gain the ability to produce compilers through various practice problems. |
| 4-2 | Cloud Computing | A growing demand for construction, extension and reduction of computer servers in various forms leads to a growing importance of cloud computing technology, which uses the amount of computing power of the centralized servers via the Internet provided by large data center. The Cloud Computing course deals with the theories and technologies related to cloud computing, such as server virtualization, distributed processing, service provisioning and multi-tenancy technology. Students will learn about service models, distribution models, architecture and security and privacy for cloud computing services. Students will also develop their skills to build practical solutions by constructing various types of services using the real cloud services that are currently on the market. The course assumes that students are familiar with basic concepts of data structures, operating systems, networks and database systems. |
