서브 컨텐츠
교과목 해설
물리학및실험 1 (Physics and Laboratory 1)
통년과목의 전반부로 물리학 전반에 대한 기본 개념을 이해시키고, 기본적인 실험을 통해 학습한다. 주로 역학, 열물리, 파동 현상을 다룬다.
First part of learning and understanding basic concept of physics and physical thinking through lecture and experimental laboratory concentrating on mechanics, waves and thermodynamics.
선형대수(Linear Algebra)
역행렬, 선형계, 행렬식, 가우스 소거법, 내적, 벡터공간, 일차독립, 기저, Kernel and range, 선형변환, Eigenvalues and Eigenvectors, 대각화, 최소자승법 등을 공부한다.
The course treats linear systems, Gaussian elimination, inverse matrix, determinant, inner product, vector space, linear independence, basis, kernel and range, linear transformations, eigenvalues and eigenvectors, diagonalization, and least-square method.
미분적분학 (Calculus)
일변수 함수의 미분, 적분 이론과 그 응용에 대하여 공부한다.
In this course, we study the derivatives and integral theories of functions(functions of one variable), the partial derivatives of functions of several variables, and their applications.
미분방정식 (Differential Equations)
Homogeneous와 non-homogeneous Linear Differential Equations의 해, 미분방정식의 응용, Laplace transformation, Inverse transform, Series Solutions of Differential Equations 등을 공부한다.
In this course, we will study Differential Equations(in means the ordinary differential equations) and their applications. Moreover, we will consider the elementary course of Fourier Series.
확률 및 랜덤변수 (Probability and Random Variables)
전산학에서 응용할 수 있는 제반 기초 이론을 습득하고 실제적인 응용 확률통계와 통계 소프트웨어 패키지를 사용하는 방법을 익힌다.
This course studies basic probability and random variable theories that can be used in the field of computer engineering, and also introduces statistics theory and software packages.
이산구조 (Discrete Structures)
수학적인 관점에서 논리적인 디지털 컴퓨터 구조를 이해하기 위해 형식논리, 알고리즘 증명, 재귀, 집합, 순열과 조합, 이항정리, 이진관계, 함수 및 행렬, 그래프, 트리, 그래프 알고리즘, 프로그램의 검증, 부울 대수와 컴퓨터 논리 등에 관하여 배운다.
In order to understand the logical structure of digital computer from mathematical viewpoints, this course is designed to learn formal logic, proof of algorithm, recursion, set, permutation and combination, binomial theorem, binary relation, function and matrix, graph, tree, graph algorithm, program verification, Boolean algebra, and computer logic.
디자인적사고 (Design Thinking)
새로운 소프트웨어 개발을 위한 디자인 중심의 창의적 설계 접근방법과 아이디어 발상을 위한 이론적 프로세스를 팀워크를 통해 학습 한다.
We will learn the design-oriented creative design approach for new software development and the theoretical process for idea development through teamwork.
웹/파이선프로그래밍 (Web / Python Programming)
웹 프로그래밍과 파이선 프로그래밍의 기초적인 내용을 배우도록 한다. 웹 프로그래밍은 HTML5/CSS3/Javascript를 사용하는 WebApp을 개발함으로서, 클라이언트 개발을 가능하게 한다. 아울러 Node.js를 통한 서버 프로그래밍까지 할 수 있도록 한다. 파이선은 기초 문법에 대한 이해를 수행할 수 있도록 한다.
Learn the basics of Web programming and Python programming. Web programming enables client development by developing WebApp using HTML5 / CSS3 / Javascript. It also allows server programming through Node.js. Python makes it possible to understand basic grammar.
객체지향프로그래밍 (Object-Oriented Programming)
객체지향 프로그래밍 기초에서 배운 데이터 형, 입출력, 선택문, 반복문, 함수, 배열, 포인터, 문자열 등을 기본으로 하여 클래스, 함수 오버로딩, 연산자 오버로딩, 상속, 가상함수, 템플릿, 네임스페이스 등의 고급 객체지향 프로그래밍 기법을 배우고 이를 실습을 통해 익힌다.
Based on the basic knowledge of object-oriented programming such as data type, I/O, selection, iteration, function, array, pointer, string, etc., this course provides advanced techniques on object-oriented programming like class, function overloading, operator overloading, inheritance, virtual function, template, name space.
논리회로 (Logic Circuit)
디지털 논리회로의 기본요소인 논리소자 특성 이해 및 디지털 논리회로(조합회로, 순서회로)에 대한 설계방법을 익혀 실제적 응용 디지털 회로설계와 컴퓨터의 기본구조 설계에 관해 학습한다.
This course introduces design and implementation of digital logic circuits. By understanding of logic device property and design method in digital system, it focuses on basic design for computer architecture and practical digital circuit using combinational and sequential circuit.
컴퓨터 구조 (Computer Architecture)
컴퓨터 구조 설계의 기초 이론으로써 기본적인 컴퓨터 시스템의 구성과 설계에 대한 개념과 기법을 소개한다. 데이터의 표시방법, 레지스터의 전송과 마이크로 동작, 컴퓨터 소프트웨어를 포함하여 연산장치, 제어장치, 입출력장치의 구조와 설계기법을 학습함으로써 컴퓨터를 설계할 수 있는 지식을 습득하고 명령포맷,CPU 내부구조, 하드 와이어드 제어에 의한 제어 유닛 설계, 마이크로프로그램 제어에 의한 제어 유닛 설계, 인터럽트, DMA등에 의한 I/O 처리 기술을 배운다. 이 과목을 수강하기 전에 논리회로를 수강할 것을 권고한다.
Basic concepts of computer architecture and organization include data representation, register transfer, micro- operation, system software etc. This course studies on I/O interface techniques which include instruction format, CPU structure, control unit design using hardwired-control and micro-programmed control, interrupt, DMA.
자료구조 (Data Structures)
자료 추상화, 배열, 리스트, 스택, 큐, 트리, 그래프 등의 자료구조와 그러한 자료구조를 활용할 수 있는 알고리즘을 배운다. 이 과목을 통해서 학생들은 전산학의 지식을 확대하고 프로그래밍 기술을 향상시킬 수 있다.
This course focuses on data abstraction, data structures such as array, list, stack, queue, tree, graph and algorithms that utilize those data structures. From this course, the students can expand their knowledge of computer science and sharpen their programming skills.
운영체제 (Computer Operating System)
운영체제는 사용자 프로그램의 수행과 주변장치나 기억공간과 같은 다양한 자원 할당을 감시한다. 이 과목에서는 멀티프로그래밍, 시분할, 그리고 비동기적 프로세서의 개념을 소개한다. 특히 동기화, 스케쥴링, 교착, 메모리관리, 가상메모리관리, 파일 시스템, 디스크 스케쥴링, 정보공유, 보호/보안 및 분산운영체제와 같은 주제를 중점적으로 학습한다.
Operating systems monitor the execution of user programs and the allocation of various resources such as memory space and peripheral devices. In this class, we introduce the basic concepts of multiprogramming, timesharing and asynchronous processes. The course focuses on synchronization, scheduling, deadlock, memory management, virtual memory management, file system, disk scheduling, information sharing, protection and security, and distributed operating system.
컴퓨터네트워크 (Computer Networks)
컴퓨터 네트워크를 구성하는 각종 네트워킹 장치들의 계층 모델, 특성, 동작 방법, 그리고 운용 기술에 대하여 학습한다. 또한 이들 장치를 상호 연결한 인터네트워크의 구성과 동작 방법에 대하여 소개한다. 본 과목의 수강을 통하여 컴퓨터 네트워크의 구성과 동작 방법에 대하여 소개한다. 본 과목의 수강을 통하여 컴퓨터 네트워크의 7계층 구조와 인터넷 4계층 구조를 이해할 수 있고, 간단한 LAN(Local Area Network)을 설계할 수 있으며, 계층 모델을 기반으로 한 컴퓨터 네트워크의 이론적 이해 및 분석력을 함양함으로써 컴퓨터 네트워킹 개념에 대한 이론과 실용 기술을 체득할 수 있다.
This course deals with layered models, characteristics, operations and management of networking devices. Also, the course introduces to the internetworking among networked devices. Students through this course can understand about configuration of computer network and its operations. As a core architecture, this course deals with OSI 7 layers and 4 layered architecture for Internet. So, students can obtain the capability to design LANs through theoretical understanding and analytical learning.
소프트웨어공학 (Software Engineering)
소프트웨어 공학 분야는 프로그램이 방대하고, 오랜 기간 동안 많은 프로그래머들이 참여하는 경우 발생되는 문제를 다룬다. 본 강좌에서 학습하는 분야는 프로그래밍 프로젝트의 설계와 구성, 시험과 프로그램 신뢰도, 소프트웨어 비용의 성격과 발생원인 인지, 여러 프로그래머간의 협조, 사용자 친화적 인터페이스 설계 및 문서화 등이다.
The field of software engineering deals with problems that arise when programs are large, when they involve many programmers, and when they exit over long periods of time. Topics will include organizing and designing a programming project, testing, and program reliability, identifying the nature and sources of software costs, coordinating multiple programmers, documentations and design of friendly use interfaces.
알고리즘 (Algorithms)
알고리즘의 기본적인 이해를 하고 대표적인 알고리즘의 형태를 배운다. 알고리즘 방법을 divide-and-conquer, dynamic programming, greedy algorithms, branch-and-bound 등으로 분류하고, 각각의 특성을 이해하도록 한다. 아울러 기본적인 복잡도 문제를 살펴본다. 본 과목을 이수 후 새로운 문제에 대한 해결 방법을 도출할 수 있는 능력을 키운다.
Basic understanding of algorithms and characteristics of algorithm types are learned. The types of algorithms are classified into divided-and-conquer, dynamic programming, greedy algorithms, branch-and-bound, searching, etc and each characteristic is understood. In addition, we look at the basic complexity issues. After completing this course, students will develop the ability to design algorithms to new problems.
데이터베이스 (Database)
데이터베이스 시스템을 이루는 기본 구성 요소에 대한 이론을 소개하고, ER-모델 및 관계데이터 모델을 중심으로 한 데이터베이스 설계 이론과 동시성 제어, 회복, 트랜잭션 관리와 같은 데이터베이스 관리 시스템을 구현하는 이론을 소개한다.
This course is to provide the basic understanding about database systems and introduce database design techniques based on ER-model and relational data model. It also deals with theoretical issues for implementing DBMS(Data Base Management Systems) such as concurrency control, recovery, and transactions managements.
캡스톤디자인 (Capstone Design)
이 과목에서는 급변하는 컴퓨터, 멀티미디어, 인터넷 등 컴퓨터 전 분야에 관련된 새롭고 다양한 주제를 일정 소규모의 학생들이 그룹을 형성하여 교수들과 심도 있게 학습할 수 있는 기회를 제공한다. 교과 진행방법은 관심 주제에 대한 세미나, 산업 현장 인턴실습, 실제 프로젝트 수행, 연구논문 작성 등이다. 이 과목을 효과적으로 수행하기 위해서 학생들은 학기 초에 관심분야에 대한 학업 계획서를 작성하여 관련 교수와 상담을 통해 학습 주제를 결정하도로 되어 있다.
This course offers students an opportunity to study new and various subjects related to computer, multimedia, and Internet technologies as a group with their supervisor. The course includes seminar, industry internship, project study, and research paper writing. In order to efficiently complete this course, students are advised to determine their own research topics by preparing their study plans and contacting their supervisor in the beginning of the semester.
졸업프로젝트(Graduation Project)
이 과목에서는 급변하는 컴퓨터, 멀티미디어, 인터넷 등 컴퓨터 전 분야에 관련된 새롭고 다양한 주제를 일정 소규모의 학생들이 개인별로 교수들과 심도 있게 학습할 수 있는 기회를 제공한다. 교과 진행방법은 관심 주제에 대한 세미나, 산업 현장 인턴실습, 실제 프로젝트 수행, 연구논문 작성 등이다. 캡스톤디자인을 수강한 학생들이 다음 학기에 수강하는 과목으로 캡스톤디자인에 이어서 연구 활동을 계속해 나가며, 지정된 날에 연구 결과에 대한 최종 발표를 하고, 보고서를 작성하여 제출한다.
This course offers students an opportunity to study new and various subjects related to computer, multimedia, and Internet technologies with their supervisor. The course includes seminar, industry internship, project study, and research paper writing. The course is provided for the students who have already completed the Special Topics in Capstone Design. The students are advised to continue their researches and studies based on the mid-result of the Special Topics in Capstone Design, present their final research results, and submit the corresponding reports.
졸업논문 (Graduation Thesis)
컴퓨터공학과는 캡스톤디자인과 졸업프로젝트를 이수하는 것으로 졸업을 위한 “졸업논문” 합격 여부를 결정한다.
Bachelor of Engineering in Computer Engineering decides acceptance of graduation thesis by completing Capstone Design and Graduation Project.
신호와시스템 (Signals and Systems)
연속 및 이산 신호와 시스템의 수학적 표현기법, 분석 및 신호 합성에 관한 기본 개념과 변환기법을 다룬다. Fourier 변환, Z-변환, Laplace 변환 등을 기초로 한 신호와 시스템 분석 방법에 관한 기본이론 및 필터링, 변조 등의 응용 예를 강의한다.
Signals and Systems provides basic theory for mathematical modeling and analysis of electrical circuits, communications, control, image processing, and electromagnetics. Signals and systems are analyzed in the time and frequency domains. This course covers basic continuous and discrete time signals, system properties, linear time invariant systems, convolution, continuous and discrete time Fourier analysis.
컴파일러 (Compiler)
컴퓨터과학의 근간을 이루는 컴파일러의 개념을 배운다. 구체적으로, 어휘분석, 구문분석, 언어의 문법적 표현과 분류, 유한상태 기계, push-down 자동장치, 정규언어, 파싱 기법의 요소들을 이해하고 응용할 수 있는 능력을 키운다.
Students learn the concept of a compiler, which is the basis of computer science. Learn the relationship between compilers and formal languages. Specifically, it develops the ability to understand and apply the elements of lexical analysis, syntax analysis, grammatical expression and classification of language, finite state machine, push-down automata, regular language, and parsing technique.
메타버스시스템 (Metaverse System)
메타버스 시스템은 인간의 오감과 관련된 데이터를 처리하는 방법에 대한 기본적인 방법론을 다루는 과정이다. 본 과정은 메타버스 시대에 멀티미디어 데이터를 서로 교환하는 메타버스 시스템을 구현하기 위한 각 기본 기능(이미지, 그래픽, 애니메이션, 비디오, 사운드, 오디오)에 대한 개념적 접근을 수행한다.
Metaverse system is the process of dealing with basic methodologies on how to handle data related to human five senses. This course conducts a conceptual approach to each basic function (image, graphics, animation, video, sound, audio) to implement a metaverse system that exchanges multimedia data with each other, in the metaverse-era.
프로그래밍언어론 (Programming Languages)
이 과목은 프로그래밍 언어의 기본적인 개념을 다루는데, 1)다양한 언어 구조에 대한 설계 문제들을 토의하고, 2)그런 구조들을 일반적인 언어에서는 어떻게 설계 선택을 했는지 조사하며, 3)설계 선택 대안들을 비교하는 내용으로 구성된다.
This course treats the fundamental concepts of programming languages by 1) discussing the design issues of the various language constructs, 2) examining the design issues in these constructs, and 3) comparing design alternatives.
SW스타트업비즈니스 (SW Start-Up Business)
실리콘벨리의 수많은 성공한 창업가들이 컴퓨터공학과 출신으로 이미 컴퓨터공학은 창업가들로 하여금 가장 핵심적이고 중요한 기술로 부각되고 있다. 구글, 마이크로소프트, 샤오미 등에서 제시하는 차세대 기술에 대해 연구하고 이러한 기술을 기반으로 한 모의 창업을 통해 졸업 후 사업가 역량을 배양한다.
Many successful entrepreneurs major computer engineering from the Silicon Valley. Computer engineering has emerged as the most critical and important skills of entrepreneurs. This course researching on a next-generation technology proposed by Google, Microsoft and Xiaomi. Students simulate a mock business based on research result and improve business skills needed at the company after graduation.
SW스타트업프로젝트 (SW Start-Up Project)
산업사회가 고도화되면서 창업의 비중이 점차 높아지고 있는 추세이다. 오픈소스SW를 기반으로 창업아이템 선정, 사업기획, 제품샘플 개발까지의 일련의 과정을 포함한 모의창업을 연계하여 실제 창업 프로세스를 경험한다.
As the industrial society becomes more sophisticated, the proportion of start-ups is gradually increasing. Based on open source software, students experience the actual start-up process by linking mock startups including a series of processes from startup item selection, business planning, and product sample development.
단기현장실습 (Short-Term Internship)
관련 기업에서 실무 경험을 통해 전공지식을 응용한다. (활동기간에 따라 학점 부여)
his course gives a chance to apply theoretical knowledge in a field.
장기현장실습 (Long-Term Internship)
관련 기업에서 장기 실무 경험을 통해 전공지식을 응용한다. (활동기간에 따라 학점 부여)
This course gives a chance to apply theoretical knowledge in a field through long-term practical experience.
연구연수활동 1/2 (Research Internship in Computer Engineering 1/2)
연구실에서 진행하는 연구에 대한 실무 경험을 통해 전공지식을 응용한다.
This course gives a chance to apply research knowledges in laboratories.
딥러닝 (Deep Learning)
딥러닝의 배경지식인 기초 수학(선형대수, 확률, 정보이론)을 리뷰하고, 기본 개념과 다양한 딥러닝 기술의 이론 지식을 학습한다.
Basic mathematics (linear algebra, probability, information theory), which is a background knowledge of deep learning, is reviewed. Students learn the concepts and theoretical knowledge of various deep learning technologies.
실전기계학습 (Machine Learning in action)
딥러닝/머신러닝 기본 지식을 실제 문제에 응용할 수 있는 실습 과목이다. 학생들은 머신러닝/딥러닝 기본 모델링 기법을 배우고 프로젝트/competition에 참여하여 다양한 실전 경험을 쌓는다.
This course learns how to apply machine learning and deep learning technology to practical applications. The course allows the students to learn basic models and optimization techniques by participating Kaggle-based challenges and performing projects for practical applications.
빅데이터프로그래밍 (Big Data Programming)
대량의 정형 또는 비정형 데이터의 집합체인 빅데이터의 5V (규모, 다양성, 속도, 정확성, 가치) 요소에 대해 학습하고, 빅데이터로부터 가치를 추출하고 결과를 분석하기 위한 하둡의 맵리듀싱에 대해 학습한다.
Learn 5V elements (Volume, Variety, Velocity, Veracity, Value) of Big Data, a collection of large quantities of structured or unstructured data, and learn Hadoop and MapReducing for extracting values from Big Data and analyzing results.
빅데이터프로젝트 (Big Data Project)
전통적으로 우리는 주로 RDBMS에서 구조화된 데이터로 작업해 왔지만, 현재에는 금융, 병원, 범죄, 날씨 등 다양한 분야에서 다양한 유형의 데이터들이 발생하고 있습니다. 수많은 데이터를 처리하기 위해 데이터 엔지니어 또는 과학자들은 빅데이터 솔루션의 큰 그림을 이해해야 합니다. 빅데이터 솔루션에는 데이터 수집, 데이터 스토리지, 데이터 분석 및 데이터 시각화 등의 몇 가지 단계가 있습니다. 위의 단계를 이해하기 위해 학생들은 이 수업에서 빅데이터 프로젝트를 설계하고 다양한 관련 프레임워크를 관리하는 방법을 배우게 됩니다.
Traditionally, we have been working with structured data mainly from RDBMS, but in this century, at on of different type logs are coming from various fields, e.g., finance, hospital, crime, weather, etc. In order to handle the abundant logs, data engineers or scientists should understand a big picture of a Big Data solution. There are a few of steps in the Big Data solution : Data Acquisition, Data Storage, Data Analysis and Data Visualization. To understand the steps above, students will learn how to design bigdata projects and manage a variety of related frameworks.
클라우드컴퓨팅 (Cloud Computing)
클라우드 컴퓨팅의 개념을 이해하고 프로젝트를 진행한다. 가상화 기술(Virtual Machine)의 특징을 이해하고 IaaS, PaaS, SaaS 등의 개발 프로젝트를 진행한다. 아마존과 구글의 클라우드 서비스 활용 방법과 PaaS(Azure, Openshift, Cloudfoundry) 를 이용한 클라우드 서비스의 개발 실습과 OpenStack을 통한 가상 자원의 프로비저닝 및 운영기술에 대한 실무를 배양한다.
Understand the concept of cloud computing and proceed with the project. Understand the features of virtual machine and develop projects such as IaaS, PaaS, SaaS. Learn how to use cloud service of Amazon and Google and cloud service development practice using PaaS (Azure, Openshift, Cloudfoundry) and cultivate practical skill of provisioning and operating virtual resources through OpenStack.
클라우드프로젝트 (Cloud Project)
인공지능의 보편화를 필두로, 4차 산업혁명이 시작 되었습니다. 4차 산업 혁명의 대표적인 기술에는 인공지능, 사물 인터넷, 빅 데이터, 블럭체인등이 있습니다. 클라우드 컴퓨팅은 위의 기술들이 확장하기 위해서 뿌리가 되는 중요한 기술입니다. 본 수업에서는 클라우드 컴퓨팅 개념을 시작으로, 산업체에서 활발하게 사용하고 있는 클라우드 컴퓨팅 서비스인 아마존 웹 서비스를 실습합니다. 더불어 클라우드 연계 프로젝트를 위해서 IoT (사물 인터넷)등을 활용하여 연계 프로젝트를 진행합니다.
With the generalization of artificial intelligence, the 4th industrial revolution has begun. Representative technologies of the 4th industrial revolution include artificial intelligence, the Internet of Things, big data, and block chains. Cloud computing is an important technology that is the root of the above technologies to expand. In this class, starting with the concept of cloud computing, we practice Amazon Web Service, a cloud computing service that is actively used in industry. In addition, for cloud-linked projects, we use (IoT (Internet of Things) or AI etc) to carry out the linked project.
AI네트워킹 (AI Networking)
본 과정에서는 인터넷프로토콜의 핵심 기술을 다룬다. 또한 SVM, CNN, RNN, 강화학습과 같은 머신러닝의 중요기술을 기반으로 네트워킹 응용을 어떻게 구현할 것인가에 대해 강의한다. 그리고 프로젝트를 통해 수강생들은 AI기반 인터넷 응용과 IoT네트워킹에 대한 설계 능력과 구현능력을 배양한다.
In this course, student can learn on the key technology of internet Protocol such as TCP/IP. In addition, it introduces the machine learning algorithms such as SVM, CNN, RNN, etc. Also, the network related applications using machine learning will be learned. Through project, the student can obtain the designing and implementing capabilities of AI based internet application and IoT systems.
정보보호 (Information Security)
본 과정에서는 네트워크보안의 기본개념과 암호화 알고리즘, 인터넷보안 메커니즘과 무선망 보안등에 대하여 다룬다. 그리고 국내외 보안기술표준화동향 등에 대해서도 강의한다.
Students learn about the basic concepts of network security, Internet security mechanism, and security for wireless networks through this course. In order to provide the opportunity for understanding the state-of-art security technology, this course also introduces the current domestic and international standardization status.
모바일/웹서비스프로그래밍 (Mobile/Web Service Programming)
오픈소스 프로그래밍 개발 환경에서 모바일 및 웹서비스 프로그래밍의 기본 개념을 배우고 여러 응용 프로그래밍을 구현함으로서 실제 업무에 적용 가능한 실무능력을 향상시킨다.
This course is designed for learning a fundamental concept of mobile programming and web-service programming based on the open source development environment.
모바일/웹서비스프로젝트 (Mobile/Web Service Project)
모바일 프로그래밍의 응용 프로그래밍을 구현함으로서 실제 업무에 적용 가능한 실무능력을 향상시키고, 최신 적용가능 라이브러리 및 테크닉에 대해 학습한다. 또한 HTML/CSS를 기본으로 하여 javascript을 이용한 Node.js 등과 같은 각종 웹 프레임워크를 이용한 웹서비스 백엔드 및 프런트엔드를 개발하는 실전 프로젝트를 진행한다.
This course is designed for developing practical applications of mobile programming with the latest libraries and techniques. Also, this course performs practical projects to develop web service front-end and back-end using HTML/CSS, javascrip, and the diverse web frameworks for Node.js.
블록체인 (Blockchain)
본 강의에서는 블록체인기술의 기본원리, 플랫폼, 어플리케이션에 대한 다양한 토픽들을 다룬다. 블록체인의 어플리케이션으로서 암화화페 메커니즘과 그 비즈니스 어플리케이션 등에 대해 강의한다.
This lecture covers various topics on basic principles, platforms and application of blockchain technology. The lecture also deals with the mechanism of cryptocurrency and its business applications.
리눅스시스템프로그래밍 (LINUX System Programming)
가장 널리 사용되고 있는 운영체제 중의 하나인 LINUX 환경에서의 프로그램 개발 환경을 습득하여, UNIX 전문가로서의 계기를 제공한다. LINUX 사용법 및 개발환경에서 시작하여, file I/O, file & directory, process & thread, signal, IPC, synchronization, socket 등의 고급 프로그래밍 기법을 LINUX system call을 직접 사용함으로써 실습한다.
This course provides an opportunity for a LINUX expert. First, various development tools in UNIX are presented such as vi, make, gcc, gdb. Next, this course introduces various LINUX system calls and gives a lot of programming practices on file I/O, file & directory, process & thread, signal, IPC, synchronization, and sockets.
AIoT디지털시스템 (AIoT Digital System)
소프트웨어와 하드웨어를 포함 하는 임베디드 시스템 환경에서 AI 기반 임베디드 응용에 대한 개발 개념과 이를 구현할 수 있는 FPGA 기반 임베디드 레퍼런스 보드 환경의 사용 및 구현 방법을 다룬다. 이 수업에서는 AI 알고리즘과 이를 이용한 응용 기술에 대해 배우고 이를 임베디드 환경내의 구현 방법을 다룬다.
This course provides the development concept for AI-based embedded applications in the embedded system environment including software and hardware, and how to use and implement the FPGA-based embedded reference board environment that can implement it. In this class, we learn about AI algorithms and applied technologies using them, and how to implement them in an embedded environment.
AIoT소프트웨어 (AIoT Software)
컴퓨터 공학 기초 과목의 이해를 바탕으로 Embedded System에서의 AIoT 프로그램 개발을 경험한다. 아두이노 프로그래밍에서 시작하여, FreeRTOS를 활용한 RTOS를 다루고, 라즈베리파이에서 커널 프로그래밍을 포함한 임베디드 리눅스를 경험한다.
With a basic knowledge on computer engineering, this course gives an experience of AIoT on embedded system. In this course, we start with Arduino programming and develop RTOS programs on FreeRTOS.
AIoT네트워크 (AI Internet of Things Network)
본 과목은 사물인터넷과 디지털화, 인공지능이라는 세가지 핵심 개념을 통해 디지털 트랜스포메이션이 어떻게 이루어지는지 강의한다. 이를 위해 IoT 네트워킹 기술과 4차 산업사회를 주도하는 최신 ICT 기술에 대하여 학습한다. AIoT가 무엇인지, AIoT가 무엇을 하는지, 그리고 AIoT를 통한 디지털화가 4차 산업사회에 어떠한 영향을 주는지에 대한 개념을 기술적 측면에서 논한다.
This course teaches how digital transformation is realized through three key concepts: the Internet of Things(IoT) and digitization and Artificial Intelligence(AI). The concept of what the AIoT is, what the AIoT does, and how AIoT digitalization affects the fourth industrial society are discussed from technical points of view.
영상처리 (Image Processing)
2차원 신호인 디지털영상신호의 표현, 영상신호처리의 기본 단계, 영상신호처리 시스템의 요소, 디지털영상의 기초, 푸리에 변환, FFT, DCT를 포함한 영상변환, 영상신호의 향상, 및 영상신호의 복구에 대하여 강의한다.
This course teaches representation of 2D digital image signal, basic processing steps of image signal, elements of image signal processing system, image transform including Fourier transform, FFT and DCT, enhancement and restoration of image signal.
컴퓨터그래픽스 (Interactive Computer Graphics)
2D와 3D 객체의 생성과 디스플레이를 위한 기본적인 기술들을 소개한다. 주요 강의 내용은 그래픽스를 위한 자료구조, 그래픽 프로그래밍 언어, 기학학적 변환, shading, 가시화 등을 포함한다.
This course introduce techniques for the interactive generation and display of two and three dimensional objects. The topics to be covered will include data structure for graphics, geometric transformation, shading, visualization, and languages for graphics.
메타버스데이터처리 (Metaverse Data Processing)
메타버스 시대에는 모든 데이터가 100% 압축된 상태로 서로에게 전달된다. 압축된 데이터 중 가장 큰 데이터는 메가 데이터인 비디오 데이터이다.비디오 데이터는 2K-4K에서 8K로 매우 사실적인 느낌을 주며 해상도는 NK로 확장된다. 상상할 수 없을 정도로 많은 양의 데이터를 전송하고 처리하기 위해서는 가장 기본적인 압축을 익힐 필요가 있다. 본 과정은 이미지/오디오/비디오, 손실/무손실 비디오 압축 방법, JPEG, MPEG 등 국제 표준의 사례 연구 등 메타버스 데이터를 교환하기 위한 기본 알고리즘에 대한 개념적 연구를 수행한다.
In the Metaverse-era, all data is delivered to each other in a 100% compressed state. The largest data among the compressed data is video data as mega data. Video data goes from 2K-4K to 8K for ultra-realistic feel, and resolution is extended to NK. In order to transmit and process an unimaginably large amount of data, it is necessary to learn the most basic compression. This course conducts a conceptual study on the basic algorithms for exchanging metaverse data such as image/audio/video, loss/lossless video compression methods, the case studies of international standards such as JPEG, MPEG, etc.
인간-컴퓨터상호작용 (Human-Computer Interaction)
본 과목은 인간-컴퓨터 상호작용 전반에 걸친 기본 원칙들과 그 원칙들의 응용사례들을 소개하는 과목으로 상호작용 가능한 컴퓨터 시스템을 사용자 중심의 방법론 안에서 디자인 하는 방법, 그리고 이러한 시스템을 사용성 측면에서 평가하는 방법을 배우게 된다. 특히, 컴퓨터 공학은 물론 인지과학, 사회과학, 상호작용 디자인 등 여러 학문분야가 다양하게 유기적으로 연결되어 있는 학문으로써, 본 과목에서 다룰 기본 원칙과 방법론들은 상호작용 가능한 모든 소프트웨어 및 하드웨어 시스템에 적용 가능함으로 통신, 협동, 교육, 의료 등 인간들의 삶의 질을 향상시키는데 아주 중요한 역할을 한다고 볼 수 있다.
This course aims at introducing basic principles and application examples of human-computer interaction(HCI). The students will learn the way how to design interactive computer systems through a user-centered approach and how to evaluate such systems in terms of usability. The principles, methods, techniques, and tools to be thought in this course are based on diverse areas including computer science, cognitive science, social science, and interaction design. The HCI principles and methods are used in designing and evaluation of most software and hardware systems that interact with human such as education, entertainment, and medical application.
UI/UX프로그래밍 (UI/UX Programming)
본 교과목은 UI/UX 프로그래밍에 필요한 모든 과정을 순차적으로 학습하고, 실제 인터페이스 구현에 적용해 보는 수업이다. 우선, UI/UX의 정의 및 최적의 사용자 경험을 제공하기 위한 필요한 요소들에 대한 이론적인 배경을 배우고, 이를 달성하기 위해 따라야하는 디자인 프로세스에 대한 실습을 수행한다. 또한, 인터페이스 프로그래밍 관련 기초 프로그래밍 기술을 학습하여, 수업 프로젝트를 통해 학생이 스스로 모든 과정을 직접 겪어보는 학습과정을 거친다.
This course aims to learn all the steps required for UI/UX programming sequentially and applies it to real interface implementation. First, students will learn the theoretical background about the definition of UI/UX and the necessary factors to provide the optimal user experience, and conduct a practical training on the design process to achieve this. In addition, students will learn basic programming skills related to interface programming, and through the class project, the student goes through a process of learning all of the processes themselves.
컴퓨터비젼 (Computer Vision)
본 과목은 사람이 시각 정보를 이용하여 지능적인 판단과 행동을 하는 것과 마찬가지로, 컴퓨터(기계)도 사람과 같이 시각 정보를 획득, 처리 하고 이를 이용하여 객체 인식 및 행동 인식과 같은 지능적인 일을 수행 할 수 있도록 하는 최신 연구 분야를 공부한다. 기초적인 영상 분석 및 기계 학습 방법들을 활용하여 Feature Extraction, Visual Tracking, Shape Matching, Pattern Detection, Object Recognition, Gesture Recognition, Scene Understanding 및 3D Reconstruction 와 같은 세부 연구 분야들을 공부한다.
Computer vision is an interdisciplinary research field that deals with how computers can be made for gaining high-level understanding from digital images or videos. In this class we study following topics: Feature Extraction, Visual Tracking, Shape Matching, Pattern Detection, Object Recognition, Gesture Recognition, Scene Understanding, 3D Reconstruction.
최신기술콜로키움 1/2 (New Technology Colloquium 1/2)
본 과목에서는 유명 회사의 CTO를 초빙하여 관련 분야의 다양한 주제에 대한 특강을 진행한다. CTO Talk Concert를 통해 산업계의 특징과 노하우 등을 간접적으로 학습한다.
In this course, CTOs who work in famous companies are invited and give a lecture on various topics in related fields. Through the CTO Talk Concert, students learn indirectly the characteristics and know-how of the industry.
독립심화학습 1/2(컴퓨터공학과) (Individual In-depth Study 1/2)
논문 작성 및 제출, 특허 출원, 소프트웨어 도서 출간, 첨단 기술 백서 출간 등을 설계 및 진행
Students design his/her own course to write, submit and/or publish a technical paper/patent/books on software/technical white-paper.
- 특허 출원 (Patent Writing): 학생은 지도교수의 지도하에, 본인의 아이디어를 특허화 하고, 최종 출원하는 절차를 수행해 본다. 특허 작성을 희망하는 학생은 계획서와 실적서를 제출하고, 실질적인 작성 여부 등에 기반하여 지도교수로 부터 P/F 중 적합한 학점 을 부여 받는다.
Under the supervision of an advisor, the student will patent his ideas and conduct the final application procedure. A student who wishes to write a patent must submit a proposal and an achievement book, and receive appropriate credits from the advisor based on whether he / she is actually writing or not.
- 소프트웨어 도서출간 (Software Books Publishing): 학생이 컴퓨터공학과 학생 혹은 대외 외부인에게 도움을 줄 수 있는 소프트 웨어 도서를 출간하도록 한다. 도서는 전자도서 형태를 지행하며 오픈소스 형태로 배포되어야 한다. 학생은 작성 계획과 작성한 도 서를 지도교수에게 제출하고, 실질적인 작성 여부 등에 기반하여 지도교수로 부터 P/F 중 적합한 학점을 부여 받는다.
Have students publish a software book that can be used by computer engineering students or outsiders. Books must be distributed in an open-source format and in electronic form. The student will submit the preparation plan and the book he / she has prepared to the supervisor and receive appropriate credits from the supervisor based on whether the essay is actually written or not.
- 첨단 기술 백서 출간 (Published High Technology White-paper): 학생이 컴퓨터공학과 학생 혹은 대외 외부인에게 도움을 줄 수 있는 첨단 기술에 대한 도서를 출간하도록 한다. 도서는 전자도서 형태를 지행하며 오픈소스 형태로 배포되어야 한다. 학생은 작성 계획과 작성한 도서를 지도교수에게 제출하고, 실질적인 작성 여부 등에 기반하여 지도교수로 부터 P/F 중 적합한 학점을 부여 받는다.
Have students publish books on cutting edge technologies that can help computer engineering students or outsiders. Books must be distributed in an open-source format and in electronic form. The student will submit the preparation plan and the book he / she has prepared to the supervisor and receive appropriate credits from the supervisor based on whether the essay is actually written or not.
소프트웨어보안 (Software Security)
IT시장이 발달함에 따라 소프트웨어의 복잡성과 규모가 나날이 커지고 있다. 소프트웨어의 복잡도가 높아질수록 Use-After-Free 와 같은 메모리 오류, 권한제어등과 관련한 논리적인 취약점 등 다양한 보안 문제점들이 발생할 수 있는데, 본 과목에서는 소프트웨어의 개발프로세스 및 관리/운영과정을 포함하여 이러한 문제가 발생하는 원인 및 대응방안을 다룬다. 또한 수강생들의 기술적 이해도를 높이기 위하여 공격자의 입장에서 가상의 보안취약점을 다뤄보는 실습도 병행한다.
Software complexity and its development scale is constantly growing as the IT market expands. Software vulnerabilities such as Use-After-Free memory corruption, logic errors are more likely to exist as the software codebase becomes larger and sophisticated. Addressing such recent issues, this class covers a broad spectrum of security problems that could exist in software development and IT operations (DevOps); and how to mitigate them. In addition to theoretical discussion, the class provides various lab exercise regarding software vulnerabilities for practical/technical experiences.
웹보안 (Web Security)
최근의 소프트웨어는 클라우드 및 웹 애플리케이션과 연동되는 형태로 개발되는 경우가 많다. 본 과목에서는 Flask/Django 등에 기반하는 웹 애플리케이션부터, Nginx/Apache 와 같은 웹서버, 및 방화벽 시스템들이 웹 브라우저와 함께 어떻게 상호작용하며 구동되는지 이해하고 그러한 시스템에서 존재할 수 있는 보안문제들을 다룬다. 특히 Server Side Request Forgery (SSRF) 와 같은 몇몇 웹 보안 취약점들은 서버들을 대상으로 하는 클라우드 서비스의 규모가 커짐에 따라 그 위험도가 더욱 높아지고 있는데, 이러한 공격 기술에 관한 실습도 병행한다.
Recent software development often involves interaction with web-application and cloud systems. This class covers security problems in web-applications such as Flask/Django, web servers such as Nginx/Apache and network firewalls in terms of their interaction with client-side web browsers. In particular, Server Side Request Forgery (SSRF) is becoming a more serious threat than before due to the prevalence of cloud-based services. Addressing such recent software security trends, this class provides SSRF-related lab exercises.
실감미디어컴퓨팅기초 (Immersive Media Computing Fundamental)
본 교과목은 실감미디어 기술 및 콘텐츠 구현을 위해 필요한 컴퓨팅 기술을 대한 기초를 다루는 컴퓨팅 개론 수업이다. 본 수업은 컴퓨터 기반 실감미디어 도구들을 사용하기 위해서 이해해야 하는 컴퓨팅의 기초 지식 및 컴퓨팅적 사고를 기반으로, 실감미디어 도구들에서 사용하는 여러 컴퓨팅 언어들에 대한 개론적인 코딩 학습을 다룬다.
This course is an introductory computing class dealing with the basics of computing technology necessary for realizing immersive media technology and contents. This class covers the basic knowledge of computing and computational thinking that must be understood in order to use computer-based immersive media tools as well as an introductory coding training for various computing languages used in the tools.