Course Overview

  • Freshman Year
  • Sophomore Year
  • Junior Year
  • Senior Year
  • Discrete Mathematics

    This course covers mathematical concepts that are frequently employed in computer science: sets, relations, propositional logic, predicative logic, algorithm, graphs, trees, recurrences and boolean algebra.

    Exploration of Future Design

    In this course, students take vocational aptitude tests and have weekly supervision. So those who study in this course can have greatly increased their own self-awareness and grasp a better understanding of who they are.

    Introduction to Computer Systems

    This course is designed to help you understand the core topics in computer science. In this course, we briefly study several core areas such as algorithm, programming language, software engineering, data structure, database system, artificial intelligence and theory of computation. We want to help you understand main areas in computer science broadly and guide student to select his specific area in his future study.

    Introduction to Open Source SW

    Emphasis on various types of open source SW, correct usages, development environments, and various applications; cultivating the fundamental ability to understand open source SW and practical usages.

    Preparation of Future Design

    This course helps students to find various jobs in their field of study. All students graduate from this course can understand various kinds of occupations.

  • Data Structures

    In Data Structures, we study basic concept of abstract data type to represent Data Structures as well as algorithm representation and analysis of it based on time and space concepts. The main topics are linear structure such as array and linked list and its application to STACK and QUEUE. We also study non-linear structure such as tree and graph and its application to real computer problem. Finally, we study Sorting, Searching and Symbol Table.

    Computer Architecture

    This course presents how the computer hardware operates. Students will lean the three major components of computer system (central processing unit, memory unit, and input/output devices), and how they cooperate to execute the instructions.

    English for SW Development

    This course teaches various English skills that are important for software developers. Students can learn grammar and writing skills, code analysis and bug reporting in English, email and CV writing, presentation and interview skills needed for software developers.

    Object-Oriented Programming

    In this course, students learn Object-Oriented Programming using C++. Emphasis is on algorithm development and problem solving. The class will include a quick overview of the fundamentals of C++, and then progress on to cover more advanced C++ concepts.

    Linear Algebra

    This course covers fundamental theories of linear algebra such as matrix, linear equation system, determinant, vector space, linear transformation, eigvenvector and eigenvalue, and singular value decompositon.

    Implementation of Future Design

    In this course, students attend a special lecture series on leadership and latest trends of business world. So this course helps students to grow leadership and help discovering career interests.

    Fundamental of Open Source SW Project

    In order to pursue the broad understanding of information technology and software, this course aims at pre-understanding of the advent of new technology by doing analysis and investigation of relevant field and predicting the development tendency.

    Algorithms

    In Computer Algorithm class, we study basic concepts of algorithm and skills to find a solution for a problem using iterative and recursive method as well as how to analyze it. Then, we study Divide and Conquer, Dynamic programming and Greedy method to solve some problem as well as analyze it. Network problem and Search are also important topics in algorithm class.

    Principles of Programming Languages

    This course introduces the basic concepts of computer programming languages, and outlines the features of the latest programming languages. Through this, students will learn the ability to choose and utilize an appropriate language for their needs, and further to design new programming languages.

    System Software

    This course is designed to study machine language, assembly language and translator. In this course, we introduce translation mechanism and help student write assembler. Student will have experience of writing a translator. We also briefly introduce compiler mechanism. Student must have at least one computer language skill to take this course.

    Start-up Exploration

    The lecture aims at fostering students' entrepreneurship and convergence mindset by introducing various technologies related to the Fourth Industrial Revolution (AI, Big Data, and IoT). Through the series of guest lectures and related activities, the students will be able to learn about the latest industry trends and better plan their careers.

    Development of Open Source SW Project

    This course covers developing software which can be applied for the real life using the open-source programming language Java, and also aims at understanding the role of program and the importance of systematic development of the program code in such a developing process.

    Probability and Statistics

    This course aims at developing students’ ability to apply statistical concepts and statistical way of thinking to computer systems.

    Computer Graphics

    This course introduces the basic concepts and algorithms of computer graphics with OpenGL. It covers the basic methods needed to model and render 3D objects, including much of the following: graphics displays, affine and perspective transformations, windows and viewports, clipping, visibility, illumination and reflectance models, texture mapping, graphics hardware, graphics toolkits, and animation systems.

  • Operation Systems

    An Operating System course provides a convenient higher-level abstraction of the underlying hardware to the user programs and multiplexes the hardware resources between these programs. Topics to be covered in this course will be process management (creation, synchronization, and communication); CPU scheduling; deadlock prevention, avoidance, and recovery; main memory management; virtual memory management (swapping, paging, segmentation and page-replacement algorithms); control of disks and other input/output devices; file-system structure and implementation; and protection and security.

    Object-Oriented Design

    This course probes into object-oriented software development, focusing on widely-used techniques for analyzing and designing of software systems. The goals of this course are understanding UML(Unified Modeling Language), learning how to apply UML to model software, and exercising the modeling with real-world systems.

    Computer Networks

    This course covers the basic concept and the structure of the network, TCP/IP protocol structure ,technology and the principle related to the transmission and the application layer protocol the with the internet centered

    Start-up Planning

    The lecture aims at fostering students' entrepreneurship and cultivating creativity by introducing various technologies related to the Fourth Industrial Revolution (AI, Big Data, and IoT). Through the series of guest lectures and related activities, the students will be able to learn about the latest industry trends and better plan their careers.

    Interlink Project Practice, Comprehensive Design

    By interlinking learners with the mentor or alumnus of the industry, this course aims at understanding the actual field by understanding the projects industry is working on and by solving the concomitant problem related to the projects with the mentors.

    Start-up Challenge

    The lecture aims at fostering students' entrepreneurship and hands-on experience by encouraging practical participation for various technologies related to the Fourth Industrial Revolution (AI, Big Data, and IoT). Through the series of guest lectures and related activities, the students will be able to learn about the latest industry trends and better plan their careers.

    Database System

    This course aims to learn the concepts of database and data model, database design using entity-relationship diagram, relational data model and how to use SQL, database security as well as an architecture of DBMS and algorithms to implement it, plus how to develop a database application system and connect with the web.

    Open Source AI Web SW

    This course covers the techniques, methodologies, and universal design concepts needed to develop an open-source web-based intelligent software. Students can learn how to develop open-source web-based intelligent software through actual projects.

    Application of AI Open Source SW Project

    This course covers the techniques for developing applications run on web and app using open-source and AI tools, and also aims at understanding the role of program and the importance of systematic development of the AI program code in such a developing process.

    Mathematics for Artificial Intelligence

    Building machine learning models requires the correct understanding on the thinking way of human beings. The delineation of thinking way is possible based on mathematical theory. In this course, students learn mathematical theories such as differentiation, linear algebra, linear regression, probability, and statistics, thereby strengthening the basic ability to implement artificial intelligence.

    Artificial Intelligence

    This course first introduces the goals and successful application domains of artificial intelligence, and then addresses some typical problem-solving methods, knowledge representation and inference, knowledge-based system, natural language processing, computer vision, and intelligent robots.

    Software Engineering

    This course covers the issues regarding software development approach in engineering views. Specific topics to be covered in this course are software project planning, software development process, software quality, software testing, and software configuration management. This course also includes practical exercise to applying those topics in the form of team-based project.

    Information Retrieval

    This course introduces the basic concepts of information retrieval systems for unstructured data. which includes the theories and implementation methods for inverted indexing, posting, compression, system evaluation, user relevance feedback, document ranking, information retrieval models and web searching.

    VR·AR·GAME Theory and Practice

    In order to provide an experience of reality by utilizing the five senses of human in a computer-created virtual space, technologies such as content design, graphic rendering, motion tracking, and operation platform are required. In this course, students will learn theories for developing virtual reality, augmented reality and 3D games, and increase their understanding of virtual reality with practical exercises.

    Open Source Web SW

    This course covers the techniques, methodologies, and universal design concepts needed to develop an open-source web-based software. Students can learn how to develop open-source web-based software through actual projects.

    Compiler

    This course will give you the opportunity to learn relation between programming language and compiler, and the relation between auto meta and compiler. The primary focus is on understanding the computer operation principle and design methods.

    Application of Open Source SW Project

    This course covers the techniques for developing applications run on web and app using open-source tools, and also aims at understanding the role of program and the importance of systematic development of the program code in such a developing process.

    Software Engineering

    This course covers the issues regarding software development approach in engineering views. Specific topics to be covered in this course are software project planning, software development process, software quality, software testing, and software configuration management. This course also includes practical exercise to applying those topics in the form of team-based project.

    Server Programming

    This course is designed to impart the knowledge and skills essential for system development in the context of programming on Linux/Unix systems. Topics include the construction of requisite systems, utilization of the shell, exploration of programming methods involving system APIs, and the application of these concepts to cultivate proficient server programming skills.

    Information Security

    This course covers the basic information security principle and understanding the network security and system security, methods to establish the stable information system and provide the safe network service.

    Artificial Intelligence

    This course first introduces the goals and successful application domains of artificial intelligence, and then addresses some typical problem-solving methods, knowledge representation and inference, knowledge-based system, natural language processing, computer vision, and intelligent robots.

  • Capstone Design

    Based on the basic principle of the computer science, we will organize the team , choose the topic, plan the project and enable learners to experience project based on team work by systemically following the process until obtaining the final product.

    Embedded Systems

    The Embedded Systems course offers students a broad and deep understanding of embedded systems and, in particular, how to system software interacts with low-level hardware. This course builds on the basic skills of embedded system design and programming through the hands-on experiences with Embedded Boards. Students will perform several prototyping projects such as LED management and servo motor control together with professor in class, and by the end of the course, they will be given a project that should be designed and developed for themselves.

    Entrepreneurship and Educational-Industrial Special SeminarⅠ

    This course focuses on understanding the principles of educational-industrial cooperation. The course addresses the entrepreneurship, the latest IT technologies, and various industrial methods of management.

    Algorithm-based Problem Solving Technique

    This course finds the ways to solve problems occurring in society and industry with software technology, and develops problem-solving skills by learning the problem analysis, algorithm design, and solution development. Also, this course enhance the coding skill to implement the solution for solving the complex and delicated problems.

    Entrepreneurship Capstone Design(Comprehensive Design)

    Based on the knowledge learned from undergraduate course, research topic related to computer science will be chosen. This course aims at obtaining the research experience by performing the activities such as writing out research plan and reporting until final research announcement is done.

    Entrepreneurship and Educational-Industrial Special SeminarⅡ

    This course focuses on understanding the principles of educational-industrial cooperation. The course addresses the entrepreneurship, the latest IT technologies, and various industrial methods of management.

    Parallel Computing

    A parallel computing environment is essential for addressing large and complex problems. This entails an exploration of diverse concepts in parallel computing approaches and programming methods, ranging from classical approaches such as Pthread, OpenMP, MPI, HTC, and CGCPU to the realm of quantum computing. The objective is to cultivate problem-solving capabilities for a wide array of challenging issues through the utilization of parallel computing.

    InternshipⅠ, Internship IV

    Students work at a company or an organization for the semester to build experience in the field and to plan the further study and career.

    InternshipⅡ, InternshipⅢ

    Students work at a company or an organization for the semester to build experience in the field and to plan the further study and career.

    Practical Software ProjectⅠ, Practical Software ProjectⅡ

    With the learner taking the leading role, this course focuses on the more practical and actual project execution perspective based on the design project experience, hence it will perform tasks such as analyzing the latest ability of using IT technology and requests from the actual industry, various application of software design methodology and developing the project managing ability.

    Machine Learning

    This course introduces the fundamental principles of machine learning which takes patterns from a collection of data. It addresses the concepts of supervised learning, unsupervised learning, and reinforcement learning. It also introduces some important machine learning algorithms and deep learning models.

    Computer vision

    In this course introduces the theory for realizing human vision in computer. Students will learn the principles of image processing, feature extraction, motion recognition, 3D vision, machine learning, and other techniques and develop vision software using OpenCV programming.

    Data Science

    This course focuses on finding data generation patterns by data analysis techniques and improving the ability to discover useful information from the patterns. Students will learn the techniques such as data analysis process, hypothesis establishment and significance verification, and exploratory data analysis, and also will improve their ability through practical applications.

    Natural Language Processing

    Various algorithms are studied to make a computer understand human languages and process them intelligently. In order to process natural language text, existing as an unstructured data in Webs, this course introduces the algorithms, implementation methods and applications for word pattern extraction, text normalization, part of speech tagging, word sense disambiguation, partial parsing, named entity recognition, relation extraction, and document classification.

    Deep learning Theory and Exercise

    Deep learning is a type of machine learning based on artificial neural networks, but it requires autonomous learning and intelligent decision-making. In this course, students will learn about deep learning through understanding artificial neural networks and learning how to construct the neural networks, and will also improve their application ability through example systems.

    AI System Application

    Artificial intelligence and machine learning technologies are being adopted in various application domains. This course will focus on in-depth analysis of specific cases where artificial intelligence is applied, then define new problems in AI areas, and then develop a solution to the problem, which are performed in PBL(problem-based learning) base.

    Big Data System Design

    This course aims to cultivate the challenging methods of data preprocessing and platforms in big data system, as well as capturing formal and informal data, their storage, analysis, search, sharing, transfer, visualization, querying, and updating. It also learns the methods of concurrency control and recovery, and information privacy strategies.

    Cloud Computing

    This course provides a detailed review of Cloud concepts and discuss various Cloud service models, such as IaaS, PaaS, SaaS, BPaaS. The students will also gain hands-on experience through projects utilizing Amazon Elastic Cloud, Microsoft’s Azure, Google App Engine.

    Software Testing

    Software faults are the cause of serious accidents or faulure. Therefore, it is very important to verify the correctness of the developed software in order to increase its reliability. In this course, students will learn software testing procedures, test case generation techniques, and test results interpretation methods, and also understand advanced testing techniques combined with artificial intelligence.

    Computer Instructional Resources and Methods

    This course is designed to improve students’ abilities to understand computer instructional resources and methods. The course also describes how to effectively use the manual for computer instructional resources to teach students in middle and high schools.

    Big Data Analysis and Visualization

    This class studies representative visualization methods to make it easier to understand data. Visualization techniques to study include time visualization, association visualization, comparison visualization, distribution visualization, and spatial visualization. We will also introduce a visualization technique that makes it easier to see the results of data analysis using machine learning techniques.

    Modeling and Simulation

    Simulation is an experiment that is difficult to perform in the real world, expressed as a physical or prediction model, and performed in a computer virtual space. In this course, students will learn about the abstraction, modeling, and experimental design of the target system in order to model and simulate system characteristics such as discrete events.

    Software System Application

    This course focus on the understanding of system characteristics with case analysis of application systems which are based on recent issues such as big data processing and cloud computing. Students will learn the process of re-designing and extending the existing systems using the relevant technology in order to increase added value of the system.

    Logic and Essay Writing in Computer Education

    This course aims to learn the ability of expressing the students’ creative ideas for computer science and deploying the validity and legitimacy of their ideas systematically. In addition, it focuses on enforcing demand driven education in the middle and high school fields with searching data for computer science and then presenting and debating their summarized results. In result, it aims to develop the problem-solving ability for a computer science teacher and to improve the ability of logical thinking which needs in the knowledge society.

    Computer Subject Teaching

    This course covers the teaching related to computers and principle and the reality of the teaching computers. It also covers the computer teaching at the middle school level such as historical background of computer teaching, the goals of computer teaching, analysis of the course of the computer study of middle and high school.