Curriculum

Our department’s goal is to nurture talented software engineers who can play pivotal roles in the era of knowledge industry by providing training on software design/development and technology management. To nurture software experts who are needed in the field of software, our curriculum consists of the following elements: core theories in different fields of software, essential technologies related to software development, key practical and technology management knowledge.

  1. Core theories, principles and concepts by field : Students systematically learn the concepts, principles, theories and techniques necessary for understanding, developing and applying computer software. Almost all major courses use original textbooks written in English. We nurture talented software engineers who are capable of solving problems actively and creatively via thorough theoretical education on a par with that of top-five universities.
  2. Key software development technologies : Emphasis on essential knowledge for every software-related field, problem solving and practical training.
  3. Key technology management knowledge : Students learn essential knowledge to become software development leaders, technology officers or entrepreneurs based on their software skills and expertise. Courses include basic business administration and other general education electives such as history.
  4. Practical knowledge : Students enhance their understanding of the industry and acquire practical skills through visits to companies, special lectures by experts in relevant fields and internship opportunities. These provide the wealth of knowledge industries are looking for in new hires. Many major courses are in English and the department offers many English courses and programs.

Curriculum Diagram


Major courses offered in English

  • C How to Program (8th edition, Perarson) by Paul Deitel
  • A First Book of ANSI C (4th edition, Thomson), by G. J. Bronson
  • The C++ Programming Language (4th edition, Addison Wesley) by B. Stroustrup
  • Java in a Nutshell (6th edition, O’Reilly) by B. J. Evans
  • Java: A Beginner’s Guide (6th edition, Mcgraw-Hill) by H. Schildt
  • Fundamentals of Data Structures in C (2nd edition, Silicon Press), by E. Horowitz, S. Sahni and S. Anderson-Freed
  • Introduction to Algorithms (3rd edition, MIT Press), by T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein
  • Programming Challenges (1st Ed., Springer), by S. S. Skiena, and M. A. Revilla
  • Database System Concepts (6th edition, McGraw Hill), by A. Silberschatz, H. F. Korth and S. Sudarshan
  • Distributed Systems: Principles and Design (2nd edition, Prentice Hall) by A. Tanenbaum and M. Steen
  • Operating System Concepts (9th edition, John Wiley and Sons), by A. Silberschatz, P. B. Galvin, and G. Gagn
  • Computer Networking: A Top-Down Approach (6th Ed., Pearson), by J. F. Kurose and K. W. Ross
  • Computer Organization and Design: the Hardware/Software -interface (5th edition, Morgan Kaufmann) by D. A. Patterson and J. L. Hennessy
  • Data mining Concepts and Techniques (3rd edition, Morgan Kaufmann), by J. Han, M. Kamber and J. Pei
  • Digital Multimedia (3rd edition, John Wiley & Sons) by N. Chapman and J. Chapman
  • Fundamentals of Multimedia (2nd edition, Prentice Hall) by Z. N. Li, M. S. Drew, and J. Liu
  • Interactive Computer Graphics (5th edition, Pearson) by E. Angel
  • Software (9th edition, Pearson), by Ian Sommerville
  • Software - A practitioner’s Approach (7th edition, McGraw-Hill), by Roger S. Pressman
  • Head First HTML with CSS & XHTML (1st edition,O’Reilly) by E. T. Freeman, E. Freeman and E. Robson
  • Head First Javascript (1st edition, O’Reilly) by M. Morrison
  • PHP: The Good Parts (1st Ed., O’Reilly), by P. B. MacIntyre
  • Programming the World Wide Web (8th Ed., Pearson), by Robert W. Sebesta
  • Discrete Mathematics and its Applications (7th Ed., McGraw-Hill) by K. H. Rosen.
  • Discrete Mathematics with Applications (4th edition, Cengage Learning) by Susanna S. Epp
  • Introduction to Probability and Statistics for Engineers and Scientists (4th edition, Elsevier), by S. M. Ross
  • Marketing (2nd Edition, McGraw Hill/Irwin), by D. Grewal and M.l Levy

Prestigious Class Series

Prestigious Class

Our department has five “prestigious” classes, which are rarely offered to undergraduate students. (These have been selected through a survey of students who finished the third year of studies.)


Software Industry Seminar

In this course, students learn about the market, representative companies, technology trends and issues of ten industries where software plays a significant role. The course offers various programs, including lectures by executives of some of the largest companies in Korea, visits to representative companies and industry research conducted by students themselves.


Distributed and Parallel Systems

Distributed and parallel systems are fundamental elements of modern computing. For example, cloud computing is supported by a data center, and communication between a Web browser and the data center. A data center consists of a distributed system of a large number of computers working together. Our distributed and parallel systems course helps students to gain a sound perspective on how large systems in the real world work, besides helping them Faculty tie together what they have learned in earlier courses, such as operating system, networking and database.


Software Engineering

Generally, an undergraduate software engineering course focuses on theories and concepts, which is not enough to help students when they start working after graduation. Our software engineering course requires students to fully follow the development processes that professional software engineers use, and trains them on the use of over ten of the development tools that professional software engineers use.


Software Implementation Pattern, Data Structure and Algorithm

In Software Implementation Pattern, Data Structure and Algorithm, students who have completed training on basic programming learn advanced programming skills and gain comprehensive knowledge of data structures and algorithms that are necessary in software development. Through this course, students learn how each area is connected and the materials become more advanced as the course progresses.


Graduation Project

Generally, students start working on their graduation projects during the first semester of their fourth year. However, our department requires students to start their projects in the first semester of their third year and finish them by the second semester of their fourth year. Students work on graduation projects in groups of three. Since students have three semesters to complete their projects, they are able to work on bigger projects and experience teamwork. Thanks to this experience and the curricula offered by our department, students are capable of working immediately after graduation, without having to receive separate training by their companies.