Course Name | Spring | Fall | Credits |
---|---|---|---|
C-Programming As the first major course in the Computer Science curriculum, this course aims to equip beginner-level students with C programming skills and the basic knowledge of computer systems to prepare them for pursuing the Computer Science major studies. In these courses, students are expected to have the ability to articulate simple computation with the C programming language, and also understand how computer systems work in association with the C programming language aspects. |
O | 3 | |
Coding Studio This course is paired with the C Programming course. This class aims to give intensive programming exercises to the students taking the C Programming course in the same semester. It is expected that every student is taking the C Programming course at the same semester. |
O | 1 | |
Introduction to Engineering Design Designing is the most essential part of engineering and an initial step to learn creation. Engineering itself cannot stand alone without designing. |
O | 3 | |
Data Structure |
O | 3 | |
Introduction to JAVA Programming This course will cover the basic grammar of Java and the concept of object oriented programming (OOP). |
O | 3 | |
Open Source Software Lab This course aims to learn open source software trends and various technical issues that provide a variety of underlying technologies for software development; and to develop the abilities to utilize them in implementing a new software. To achieve these, we use Linux, the most widely used open source operating system, build and configure a server that provides various online services. Through hands-on experiences, we will acquire an understanding of the Linux ecosystem, and practice development and collaboration using public libraries and frameworks. |
O | 3 | |
Circuit Theory 1 This class will cover the basic concept of electrical/electronic circuit including resistor, voltage source, and current source. After that, many of useful circuit analysis technique inlcuding Nodal/Loop analysis/Super position/Thevenin's/Nortons therorems will be covered. Additional basic elements including capacitor and inductor will be also covered and the first/second order system will be studied. At the end of the class, the students will also learn the basic chracteristics of sinusoidal function. Through this course, all students are expected to know the principles and fundamental cencepts of circuit analysis. |
O | 3 | |
Logic Design This is the fundamental course that is required to understand modern digital hardware design. This course is a core foundation course for hardware design and it is the prerequisite for computer architecture and organization, digital system design, embedded processor application, microprocessor design, and integrated circuit design courses in upper levels. It covers Boolean algebra, combinational circuits analysis and design, sequential circuit analysis and design. In addition, modern digital logic implementation platform such as CAD tools and programmable logic devices will be introduced to students. Students are required to demonstrate the ability to design and analyze simple logic circuits at the end of semester. |
O | 3 | |
Signals and Systems This course introduces the theory and the mathematical techniques used in analyzing and understanding continuous-time and discrete-time signals and systems. This course provides essential background knowledge for studying telecommunications, digital signal processing, and automatic control. Topics include mathematical representation of signals, properties of systems, Fourier analysis for periodic signals and energy signals, Laplace transform, sampling theory, and z-transform. |
O | 3 | |
Web Development Programming 1. Lectures mainly consists of mark up languages such as XML, and HTML5, and their related techniques, for example, DTD, CSS, XPath, XSLT, JQuery, and JavaScript, etc. |
O | 3 | |
Computer Architecture and Organization The subject of this course is computer architecture and organization. Computer architecture deals with the structure and behavior of the each components of the computer, while computer organization deals with how each component are connected. This course will give you an in-depth understanding of the inner-workings of modern digital computer systems and tradeoffs present at the hardware-software interface. The class is specially focused on the CPU (Central Processing Unit) design principle, and memory organization, and I/O will be covered at the end of the semester. |
O | 3 | |
Computer Vision In this class, students will understand the basic concept of computer vision techniques and will face several algorithms in the field of pre-processing, segmentation, detection/tracking, image transformation, camera model and image compression. Students will use openCV to implement several tasks related with computer vision techniques. |
O | 3 | |
Discrete Mathematics This course is specifically designed to equip Computer Science students with a thorough understanding of Discrete Mathematics, a critical area of mathematical study integral to the Computer Science curriculum. The course syllabus will encompass key areas such as Mathematical Reasoning, Combinatorial Analysis, Discrete Structures, Algorithmic Thinking, along with Applications and Modeling. |
O | 3 | |
Digital System Design |
3 | ||
Introduction to Artificial Intelligence Project |
O | 3 | |
Algorithm Analysis Algorithm is a strategy for solving a problem with the assistance of a computer. To say that a problem is algorithmically solvable means, informally, that a computer program can be written that will produce the correct answer for any input if we let it run long enough and allow it as much as storage space as it needs. In this course, we will study various algorithms by analyzing them and discuss various algorithm design techniques. C(or C++) will be used to develop and implement programming assignment. |
O | 3 | |
Object-Oriented Design Pattern Students learn and study the essential concepts about the object-oriented paradigm and design patterns for making reusable and maintainable software system. Students are trained to improve Java proficiency up to intermediate level based on design pattern techniques and applications of object oriended programming. |
O | 3 | |
Operating System * https://github.com/hongshin/OperatingSystem |
O | 3 | |
Database System This is an introductory course on Database Management Systems (DBMSs) that is powerful tool for storing and organizing large amounts of data efficiently, reliably, and safely. We will study the concepts and underlying mechanisms of DBMSs; discuss and design data models; and learn how to write and execute "queries" in structured query language, which is a standard language for manipulating data in databases. We will also briefly discuss the recent trends in data storage technologies and experience modern data analytic techniques (a.k.a. data science). |
O | 3 | |
Electronic Circuits 1 |
O | 3 | |
Electronic Circuits 2 |
O | 3 | |
Programming Language Theory In this course, we learn fundamental principles of programming languages by implementing language features using a combination of interpreters and little compilers. (All the programming is done in Racket (formerly Scheme) which is a multi-paradigm programming language.) If you wonder how programming languages you use everyday are designed, please take this course. By taking this course, you will get confidence that you can learn any programming languages quickly. In addition, you could design your own programming languages for your specific projects and tasks and be ready to learn compiler theory. |
O | 3 | |
Computer Networks In this course, we will study about the layered architecture and protocols of computer networks. By top-down approach, from application layer to link layer, we will learn about protocols widely used in current Internet. In particular, we will focus on understanding of TCP/IP protocol and implementing the server/client program through socket programming. In addition, we will try to design a protocol. We will cover topics as follows: layered architecture of current Internet, application layer (HTTP, E-mail, DNS), transport layer (TCP, UDP, socket programming), network layer (IP, ICMP, Routing), and link layer (ARP). |
O | 3 | |
Probability and Random Processes This course comprehensively studies basic probability theory, and the concepts and applications of random variables and random processes are studied. Based on this, the concepts of estimation, hypothesis testing, and Shannon entropy used in various fields of engineering, such as machine learning, communication, and control, are introduced. The contents learned in this course can be used as basic knowledge in various majors such as engineering, mathematics, science, and economics. |
O | 3 | |
Software Engineering This course introduces students to the challenges and issues in software developments and various software engineering methodologies that have been proposed as scientific solutions to the problems. This course will cover key topics in software engineering including software process, requirements, and maintenance. In addition, this course has a high emphasis on understanding and practicing basic tools for engineering software. |
O | 3 | |
Introduction to Deep Learning |
O | 3 | |
Intelligent Robot Control This course will introduce students to the principles and techniques of intelligent robot control. Topics will include robotics fundamentals, decision making, and control architectures. Students will learn how to design and implement intelligent control algorithms for robots operating in a variety of environments using Robot Operating System (ROS). |
O | 3 | |
Computer Graphics Topics include graphics rendering pipeline, geometric primitives, lighting & materials that are basic to understand computer graphics. This lecture will use Unity for the first half of the semester and openGL for the next half. |
O | 3 | |
Machine Learning This course covers core concepts of AI and machine learning. It covers fundamentals and widely used techniques in machine learning applications. The students learn the theory of major methodologies and practice to solve simple problems by writing machine learning SW or applying open source SW. It also covers a brief review of mathematics required to understand machine learning theory, calculus, linear algebra, and statistics. |
O | 3 | |
Electromagnetic This course is an introduction to engineering electromagnetics for undergraduate electrical engineers. Electromagnetics is one of the most fundamental subjects in an electrical engineering curriculum. Knowledge of the laws governing electric and magnetic fields is essential to the understanding of the principles of operation of electric and magnetic instruments and machines. During this course, relevant vector algebra/calculus, the governing laws and methods of solutions of electrostatic and static magnetic field problems, steady electric current fields and resistance calculations will be covered. |
O | 3 | |
Semiconductor Physics This course is an introduction to semiconductor devices for undergraduate electrical engineers. Two basic purposes are (1) to provide students with a sound understanding of existing devices, so that their studies of electronic circuits and systems will be meaningful; and (2) to develop the basic tools with which they can later learn about newly developed devices and applications. |
O | 3 | |
Principles of Communication |
O | 3 | |
Digital Communication |
O | 3 |