Computer Science
Undergraduate Major

Specialized education built on a broad foundation
— a solid footing for researchers and engineers

A student's first year of studies includes Computer Science and Information Literacy. Building on these courses, students progress to taking 200- and 300-level courses relevant to their major. Second year courses cover basic subjects such as models of computation, probability theory and statistics, data structures and algorithms. Broad education in programming is also provided through courses such as procedural programming, functional programming, and object-oriented programming. Third year courses include advanced technical subjects such as databases, system programming, and computer networks. Through this structured teaching, students gain all the necessary knowledge to begin their Independent Research Project in their fourth year.

  1. 1st Year

    100-Level Courses

    Students in their first year of undergraduate studies receive basic education that centers on Institute-wide compulsory courses, regardless of their discipline. The 100-level courses are designed to teach common, basic skills that are required of any science and technology students. These courses aim to provide the knowledge and cultivate the versatile intellect necessary for studying at the Institute.

  2. 2nd Year
    3rd Year

    200-Level and 300-Level Courses

    Students who complete their 100-level courses advance to study their undergraduate major. Courses at the 200- and 300-levels specific to the Computer Science Major are taken in accordance with the curriculum.

    • Basic Computer Science Courses
      What is the nature of computation? How should information be expressed? How should calculations be expressed? Through these courses, students acquire the knowledge required to answer those fundamental questions underlying computer science. As such, they acquire the mathematical knowledge necessary to study the discipline.
    • Advanced Computer Science Courses
      Through these courses, students acquire knowledge from different fields of computer science based on established research findings over the past several decades. They also study both hardware and software aspects of computers by looking at computer architecture, operating systems, and parallel computing. In addition, the courses will also cover areas, such as system control, that are essential for the application of computer science in other scientific fields.
    • Programming Courses
      Students learn programming through courses that combine lectures with computer exercises. The curriculum is designed so that students can learn a wide range of concepts such as procedural, functional, and object-oriented programming, allowing them to develop the ability to apply programming knowledge and experience to design and construct systems.
  3. 4th Year

    200-Level and 300-Level Courses

    At the final stage of the 300-level is the Independent Research Project (equivalent to the Undergraduate Thesis Research that was in place previously). The project is intended to serve as a capstone for students to consolidate and reinforce all of the skills acquired in their major. Furthermore, they may choose to enroll in the Advanced Independent Research Project. The purpose of this course is to enhance student interest in scientific and technological research that began with the Independent Research Project, as it provides them with the opportunity to actively engage in science- and technology-related activities.

    * The timeline depicts a standard case where students complete their bachelor's degree program in four years.

  4. Entrance Examination

    Students need to pass an entrance exam to advance from a bachelor's to master's program. To advance from a master's to a doctoral program, students must pass an advancement assessment.

  5. Graduate Majors
    Master's Program
    Doctoral Program

    400-Level, 500-Level, and 600-Level Courses

    Students who complete the Computer Science Undergraduate Major may continue to study the same discipline in more depth by taking the Computer Science Graduate Major. There are also closely related interdisciplinary graduate majors — Artificial Intelligence, Energy Science and Informatics, and Human Centered Science and Biomedical Engineering — to which students may advance.

Page Top