Home > Courses > Undergraduate

Design and Analysis of Computer Algorithms
Description This course is one of the most important courses in the computer engineering area due to its significance of the basic concepts, the philosophy behind the theory, and actual application to the real world. We discuss design and analysis of advanced data structures and the way of programming in terms of the program efficiency. The purpose of this course is to introduce key algorithms which are essential for solving computer-oriented problems, and techniques for easier creation of other efficient algorithms. We cover advanced techniques behind data structures for analyzing upper and lower bounds for many essential algorithms in this area. Problems discussed during the semester include sorting, searching, advanced data structures, dynamic programming, divide-and-conquer method, greedy methods, graph algorithms, and maximum flow problem.
Textbook T.H.Cormen, C.E. Leiserson and R.L. Rivest, "Introduction to Algorithms," 3rd Edition, MIT Press, 2010.

Data Structures
Description Design and analysis of data structures(DS) in terms of efficiency of programs. The purpose of this course is to introduce data structures necessary for solving computer-oriented problems, principles, and techniques for specifying algorithms. Classical DS design techniques are mostly discussed. Elementary DS for sorting, searching, and other operations on them include arrays, stacks, (circular) queues, linked lists, hash tables, trees, graphs, and strings.
Textbook Horowitz, Sahni, and Anderson-Freed, Fundamentals of Data Structures in C, 2nd Edition, Silicon Press, 2008.

Operating Systems
Description This course conforms with the IEEE/ACM recommendation for the undergraduate operating system class. The lectures and homework assignments will be a mixture of theory and practice, providing you with a sound background in operating systems for future study and to help you prepare for a professional programming position in industry. You will learn how to make effective use of operating system features and functions, and how an operating system is designed.
Textbook Gary Nutt, "Operating Systems," Third Edition, Addison Wesley, 2004.
Programming in C
Description This course is intended for students who wish to develop their C programming skills based on MS Windows and Unix/Linux. It can be taken by students with little or no prior experience of programming; however, most students will have some previous computing experience.
Textbook C by Dissection, Edition 4 by Al Kelley and Ira Pohl, Addison-Wesley

Programming in JAVA Previous Term Project (Example)
Description This course is an introductory course to Java Programming. It teaches students with little programming experience how to program in an object oriented manner with Java programming language. Topics include introductory object oriented programming, algorithmic thinking, problem solving, develop Java Application, Java Applet and Java Swings, control structures, methods, arrays, object-based programming, object oriented programming, and strings objects. Basic HTML World Wide Web programming will also be discussed.
Textbook ÀÚ¹Ù 2 JDK 1.4 (Ŭ¸¯Çϼ¼¿ä) (ISBN 89-7280-657-9) ÀúÀÚ Á¤ÀÇÇö, ±è¼ºÁø °øÀú(´ë¸² ÃâÆÇ»ç)

Discrete Structures
Description This class is intended to provide you clear entry-level explanations of basic topics such as predicate logic, program verification, and recursion to effectively study higher level computer science courses. Selected topics include Formal logic, Proofs, Recursion, Analysis of algorithms, Sets and Combinatorics, Relations, Functions, Matrices, Graphs, Trees, Graph algorithms, Boolean algebra, Computer logic, Algebraic structures, Finite-State Machines, and Formal languages.
Textbook ith L. Gersting, "Mathematical Structures for Computer Science", 3rd edition, Computer Science Press, 1993. Fourth edition published in 1999 by the same author will be also recommended.

UNIX System Programming
Description UNIX Operating System is the one of the most important and useful OSs in this area. This class is designed to give you firm basis of UNIX system especially shell section. Topics covered in this class are UNIX system basics, Command shells, UNIX file system, Managing your files, Utilities, Text file utilities, vi editor, Bourne shell programming languag, AWK programming language, window system, networking, and LAN networking utilities.
Textbook K. Christian and S. Ritcher, "The UNIX Operating System", John Wiley and Sons, 1994.

Advanced Engineering Mathematics II
Description Fourier series to represent periodic, non-sinusoidal waves as trigonometric series. Some of the properties and applications of Fourier series for a periodic non-sinusoidal input signal in electrical circuit, signal processing, and semiconductor devices. Fourier integrals and transforms for the analysis of non-periodic and non-sinusoidal signals. Define a complex number and expand to complex functions and their regions in the complex plains. Cauchy-Riemann equation. Concept of mapping and Cauchy's integral theorem. The valuable characteristics of Taylor, power, and Laurent series. More applications of the residual integration method in evaluation of real integrals.
Prerequisites Advanced Engineering Mathematics I.
Textbook E. Kreyszig, "Advanced Engineering Mathematics", John Wiley and Sons, Inc., 1993.

Theoretical Computer Science
Description This class is intended to give you the theoretical foundation necessary to effectively research topics in computer science. Selected topics include automata theory and formal languages, predicate logic, computability, and complexity theory. The prerequisites for this class include linear algebra, and probability/statistics, or consent of the Graduate Advisor.
Textbook Lewis and Papadimitriou, "Elements of the Theory of Computation", Prentice Hall, 1981.