교과목 리스트
과목구분 | 과목번호 | 교과목명 | 강:실:학 | 개설학기 | 비 고 |
---|---|---|---|---|---|
선택 (석사) | EE.40014 | 임베디드시스템 | 3:1:3 | 가을 | ◎ |
EE.40015 | 전자공학을 위한 운영체제 및 시스템 프로그래밍 | 3:0:3 | 봄 | ◎ | |
EE.50011 | 전산기구조 | 3:0:3 | 봄 | ◎ | |
EE.50014 | 병렬컴퓨터구조 | 3:1:3 | 봄 | ◎ | |
EE,60013 | 분산컴퓨팅시스템 | 3:0:3 | 봄 | ||
EE.60018 | 고급 컴퓨터 네트워크 및 클라우드 컴퓨팅 | 3:0:3 | 봄 | ||
EE.60075 | 디지털 컴퓨터 연산 | 3:0:3 | 봄 | ||
EE.60078 | 디지털 집적회로 | 3:0:3 | 가을 | ||
EE.70090 | 메모리 및 SoC기술 | 3:0:3 | 가을 | ||
EE.70093 | 인공지능 머신러닝 시스템과 응용 | 3:0:3 | 봄 | ||
CS.40101 | 인공지능을 위한 시스템 | 3:0:3 | 봄 또는가을 | ◎ | |
CS.40200 | 컴파일러설계 | 3:0:3(6) | 봄 | ◎ | |
CS.40301 | 동시성 프로그래밍 | 3:0:3 | 봄 또는가을 | ◎ | |
CS.50000 | 알고리즘설계와해석 | 3:0:3(6) | 봄 | ◎ | |
CS.50100 | 컴퓨터구조 | 3:0:3(6) | 봄 | ◎ | |
CS.50300 | 운영체제 | 3:0:3(6) | 봄 또는가을 | ◎ | |
CS.50400 | 네트워크아키텍춰 | 3:0:3(9) | 봄 또는가을 | ◎ | |
CS.50403 | 분산시스템 | 3:0:3(3) | 가을 | ◎ | |
CS.50700 | 인공지능 및 기계학습 | 3:0:3(6) | 봄 | ◎ | |
CS.60100 | 병렬처리 | 3:0:3(8) | 봄 | ||
CS.60302 | 내장형 운영체제 | 3:0:3(6) | 가을 | ||
연구 | SA.92100 | 논문연구(석사) | 0:0:0 | 봄과 가을 | |
SA.93100 | 세미나(석사) | 1:0:1 | 봄과 가을 |
교과목 개요
이 과목은 최근 전자 시스템의 중요한 구현기술의 하나인 embedded 시스템에 대하여, 그 구성요소인 hardware 및 software에 대하여 분석하고, 시스템 구현 기술을 습득한다. Embedded system에서 가장 널리 쓰이는 ARM processor를 기반으로 제작된 CPU board 및 입출력 board에 대하여 소개하고, open source의 가장 보편적인 Linux operating system에 대하여 설명하고, PC를 이용한 개발환경에서 어떻게 시스템을 구현하는가에 대하여 공부한다. 기본적인 interface들에 대한 device driver 실험을 병행하여 개념을 확실히 잡도록 한다. (선수과목 : EE303)
본 과목은 시스템 프로그래밍, 특별히 OS에 관련된 병렬성, 동기화, 프로세스, 메모리 관리, 입출력 디바이스, 파일 시스템에 관련한 기본적 지식 및 기술들을 다룬다. 또한 어셈블리와 컴파일러의 기본적인 원리를 공부한다
컴퓨터 시스템의 구조와 동작원리 이해하고 첨단 프로세서에서 사용하는 성능 향상 방법과 정량적인 성능 분석 기법을 배우는 것을 목적으로 한다. 파이프라인, super-scalar, 비순차 연산방법 등 성능향상 기법과 메모리 계층 구조, cache 구조, Virtual Memory, Interrupt 처리 방식을 배우고 정량적으로 해석하여 설계하는 방법을 배우게 된다. 또한 SIMD, Multi-threading 등 최근 중요 이슈를 소개하며, 가상적인 전산기에 대한 설계와 시뮬레이션을 통하여 종합적인 이해가 가능하도록 한다. (선수과목 : EE303, EE312)
본 교과목은 대표적인 병렬 컴퓨터 구조인 멀티코어 CPU 와 GPU의 코어 구조, 코어들 간의 통신을 위한 인터커넥션 네트워크, 그리고 연산의 결과를 저장하는 메모리 및 스토리지 시스템의 하드웨어 구조에 대하여 배워본다. 이와 더불어, 해당 병렬 컴퓨터 구조의 소프트웨어 프로그래밍 시스템에 대한 이론과 실습 과정을 통해 병렬 컴퓨터 구조의 하드웨어/소프트웨어 시스템 간의 인터페이스에 대한 이해를 학습한다.
분산 컴퓨팅 시스템은 급속히 퍼져왔다. 클러스터부터 인터넷상의 컴퓨터, 모바일 기기들까지 분산 시스템은 다양한 분야의 응용을 지원하기 위하여 존재 해왔다. 본 과목에서는 분산 컴퓨팅 시스템의 디자인 및 엔지니어링에 필요한 중요 개념 및 기술들에 대해서 소개한다. 본 과목의 목표는 다음과 같다 : 분산 컴퓨팅의 핵심 개념을 깊이 이해 - 프로젝트 수행을 통한 응용프로그램 제작 및 시스템 구성
현재 서비스 및 서비스 기반 어플리케이션에 적용되기 위하여 많은 중요한 기술들이 데이터베이스, 분산 컴퓨팅, 다중 에이전트 시스템 분야에서 개발되었다. 이러한 기술들은 일반적으로 서비스 구성을 위하여 쉽게 적용할 수 있는 일들로 확립된다. 본 과목에서는 서비스 기반 컴퓨팅의 원리 및 실습에 대한 내용을 다루고 특별히 서비스를 도입하기 위하여 필요한 아키텍쳐, 이론, 기술, 표준, 인프라 등을 내용에 대해서 소개한다.
컴퓨터 계산 방식은 디지털 시스템의 설계 복잡도와 전력소비에 큰 영향을 미치므로 수 체계와 계산 방식을 이해하는 것은 VLSI 설계에 있어서 매우 중요하다. 이 과목에서는 다양한 수 체계와 하드웨어 계산 방식을 다루며 고속 및 저전력 연산에 대해서도 깊게 다룬다
본 교과목을 통하여 고성능 CMOS 회로 설계의 중요한 이슈들을 이해하고 맞춤형 설계 방법을 이용한 데이터 패스 설계, 클럭킹, CMOS 로직 스타일 등에 대해 이해한다.
기본적인 pn 접합 이론, MOSFET 동작 원리 등을 학습한다. 이후 DRAM, SRAM, Flash Memory 소자의 구조와 동작 원리, 설계 기술에 대해서 학습하고, 차세대 미래형 소자 및 메모리 구조 및 설계, 로직 소자 및 회로 설계 관련 기술을 KAIST 교수진과 삼성전자 임원들로 이루어진 강사진으로부터 배우고 익히도록 한다
기본적인 pn 접합 이론, MOSFET 동작 원리 등을 학습한다. 이후 DRAM, SRAM, Flash Memory 소자의 구조와 동작 원리, 설계 기술에 대해서 학습하고, 차세대 미래형 소자 및 메모리 구조 및 설계, 로직 소자 및 회로 설계 관련 기술을 KAIST 교수진과 삼성전자 임원들로 이루어진 강사진으로부터 배우고 익히도록 한다.
인공지능의 눈부신 발전은 크게 두 가지 기술의 발전에 기반을 두고 있다고 할 수 있습니다: (1) 딥러닝을 중심으로 한 머신러닝 알고리즘 기술 발전, (2) GPU를 중심으로 한 하드웨어 가속기와 인공지능 응용을 위해 최적화된 소프트웨어 시스템 등 고성능 컴퓨팅 기술 발전. 이 과목은 시스템 기술 발전 측면에서 인공지능을 바라보며, 고성능/고효율 인공지능 연산처리를 위하여 설계된 시스템 스택에 대한 전반적인 내용을 다루겠습니다. 현재 신설 요청 시점에서는 머신러닝과 딥러닝을 주요 목표로 삼고 있으며, 앞으로 인공지능 기술 발전 방향에 따라 유연하게 커리큘럼을 바꿀 계획입니다. 이 과목에서 다루는 시스템 스택은 AI 프로그래밍 인터페이스, AI 컴파일러, AI 하드웨어 가속기, AI의 추론 및 학습에 특화된 소프트웨어 시스템 등 다양한 레이어로 구성이 되어 있습니다
이 과목에서는 프로그래밍 언어를 구현하는데 필요한 원리와 실제를 균형있게 익히게 된다. 프로그램 문법구조의 검증, 프로그램의 의미구조를 충실히 구현하기 위한 원리와 기술, 그 구현의 최적화 과정, 프로그래밍 언어와 컴파일러와의 관계, 인터프리터의 역할, 실행환경(run-time system), 의미구조의 정확한 표현과 이해 등에 대해서 익히게 된다
이 과목은 병렬 자원을 효율적으로 동시에 제어하여 성능을 극대화하는 동시성 프로그래밍 기법 및 그러한 프로그램을 검증하는 방법을 다룬다. 이전에는 자료를 순차적으로 (sequentially) 처리하는 것이 기본이고 병렬적으로 (parallel) 처리하는 것이 예외적이었다면, 이제는 병렬적으로 처리하는 것이 기본이고 순차적으로 처리하는 것이 예외적인 경우가 되었다. 이러한 경향성은 많은 자료를 처리해야 하는 빅데이터 시대에 점점 가속되고 있다. 동시성 프로그래밍 이론 습득과 프로그래밍 실습으로 병렬 자원을 효율적으로 제어하는 소양을 기르는 것을 목표로 한다.
Algorithm design에서의 기본적 기법인 divide-and-conquer, greedy method, dynamic programming 등을 소개하며, 여러 컴퓨터 응용 분야에서의 사례연구를 통하여 이러한 기법들을 익히고 또한 각 알고리즘의 time 및 space complexity를 분석한다.
컴퓨터의 비용과 성능에 입각한 계량적인 컴퓨터 설계 원리를 소개하고, 인스트럭션세트와 인스트럭션 수행 파이프라인의 설계를 다루며, 인스트럭션의 병렬 수행 체제로서 수퍼 스칼라와 VLIW 등의 인스트럭션 수준의 병렬 수행에 대하여 공부한다. 기억장치에 대하여는 캐쉬와 가상 기억체계를 포함하는 계층 기억장치의 설계와 보조 기억장치에 대하여 공부한다. 끝으로 입출력 시스템과 병렬 컴퓨터와 상호 연결망에 대하여 공부한다.
배취처리 소프트웨어 시스템의 기본개념과 다중처리 및 시분할 처리계에 관한 것을 배우고, 국내에서 사용되고 있는 오퍼레이팅시스템 중 하나를 선정하여 그의 구성 및 기능 등을 구체적으로 공부한다. 간단한 오퍼레이팅시스템 프로그램을 짜보고, 그의 기능향상을 위한 방법 등을 연구한다
OSI의 Reference model을 아키텍춰 입장에서 고찰하고 각 계층의 프로토콜을 상위계층 중심으로 살펴본다. 또한 통신 프로토콜을 어떤 식으로 구성하는가에 관해 살펴보며, TCP/IP, SNA, PC간 네트워크 등 여러 네트워크 아키텍춰의 비교분석을 통해 그 장단점을 강의 및 토론한다
네트워크, 네이밍, 보안, 동시접근 제어, 고장감내 등 분산시스템의 기반 개념 및 구성 요소에 대해서 깊이 있게 다루며 최근까지 개발된 분산시스템들에 적용된 원리에 대한 분석을 통하여 분산시스템의 설계와 구현을 위한 기본 지식을 습득하고, 과제 수행을 통하여 분산 시스템 개발에 필요한 응용능력을 키운다. (선수과목 : CS510, CS530)
인공지능의 전통적인 알고리즘의 이해와 확률통계를 기반으로 하는 기계학습의 개요 과목이다.
병렬처리 알고리즘, 병렬처리 컴퓨터구조, 다중처리 컴퓨터구조를 연구하고 현존하는 시스템을 분석하여 진보된 컴퓨터구조를 이해한다.
내장형 운영체제를 설계, 개발하기 위해 요구되는 운영체제 개념과 구현 능력을 제공하는데 목표가 있다. 내장형 운영체제를 위한 부트 로더, 프로세스 관리, 메모리 관리, 입출력 장치 관리 및 파일 시스템 등에 대해 살펴본다.