- 1학년
- 2학년
- 3학년
- 4학년
1학년
1. 이산수학
기본적인 논리, 집합론 및 증명기법을 강의하며, 집합, 함수, 행렬, 그래프 등으로 표현된 이산 구조를 소개한다.
2. 컴퓨터프로그래밍및실습 (전공필수)
컴퓨터개론및실습 강의를 바탕으로 좀 더 복잡한 형태의 프로그래밍 기법에 대하여 강의 및 실습을 한다.
3. 컴퓨터시스템입문
컴퓨터 하드웨어를 이해하기 위한 기초 전기/전자회로에 대해 학습하고 하드웨어 모듈을 이용하여 시스템을 구축한다. 구축된 시스템의 소프트웨어를 설계하고 구현하여 실행한다. 이를 통해 컴퓨터 시스템의 하드웨어와 소프트웨어의 동작을 이해한다.
기초 전기/전자 회로, 컴퓨터 하드웨어 모듈 및 구성, 하드웨어 제어를 위한 소프트웨어 구성 및 동작, 하드웨어/소프트웨어 연동
4. 선형대수
선형방정식의 해를 구하고 고차원 벡터 공간을 이해할 수 있다.
선형방정식, 행렬과 행렬식, 가우스소거법, 벡터, 벡터공간, 선형독립, 내적과 외적, 고유값과 고유벡터
2학년
1. 공업수학 1
공학 분야에서 자주 접하게 되는 미분방정식을 소개하고 이에 대한 여러 가지 문제해결 기법을 강의한다.
2. 공업수학 2
벡터 연산과 복소수에 관한 기본 개념 및 응용 분야를 소개한다. 시스템을 모델링하는 방법, 벡터와 행렬식을 이용한 해석, 복소수와 관련된 함수 들을 강의한다.
3. 오픈소스및SW실습
다양한 open source 소프트웨어 기반의 프로그래밍 기술 습득, open source 툴, 플랫폼, 라이브러리를 경험하고 Github를 활용한 협업 개발 교육을 한다.
4. 자료구조 (전공필수)
자료구조의 개념과 기본적인 자료구조의 설계, 구현 및 응용에 대하여 강의한다.
추상적 자료형, 스택, 큐, 리스트, 이진 트리, 그래프 순회, 해싱
5. 논리회로
순차회로의 기본 장치와 개념을 익히고 레지스터를 활용한 다양한 순차회로 해석 및 설계 방법을 배운다.
플립플롭 기초, 동기식 순차회로, 레지스터와 카운터, 메모리 및 프로그래머블 논리, 레지스터 전송레벨 설계
6. 전기회로
저항, 커패시터, 인덕터 등 전기회로 소자의 전기적 특성과 이들 소자로 구성된 전기회로의 기본적인 법칙과 해석방법을 이해한다.
전류와 전압, 저항 회로, 회로해석법, 에너지저장소자, 1차 및 2차회로, 정현파 전원과 페이저
7. 전자기학
전기장을 위주로 하여 전자기학 법칙을 이해하고, 또한 도체 저항 및 정전용량을 정의하며, 아울러 자기장과 전자기파에 대해 소개한다.
벡터해석, 전계, 전속, 전위, 전류, 저항, 정전용량, 자계, 전자기파 등
8. 프로그래밍어론
C++를 중심으로 프로그래밍 언어의 여러 가지 개념을 실질적인 프로그래밍을 통해 배운다. 객체지향 프로그래밍 개념, 스코프, 함수 오버로딩, 이름 바인딩, 동적, 정적 성질 등 다양한 프로그래밍 언어 개념을 배울 수 있다.
9. 객체지향프로그래밍
Java를 이용하여 객체지향 프로그래밍의 개념을 실질적 프로그램을 통해 배운다. java 프로그래밍을 위한 IDE 사용법, 클래스의 속성과 메소드 정의, 상속, Java API 사용, GUI 프로그래밍 등 Java를 이용해 여러 가지 객체지향 프로그래밍을 함으로써 객체지향 프로그래밍 개념을 배울 수 있다.
10. 마이크로프로세서 및 실습
마이크로프로세서 시스템에 대한 구성, 동작 방식, 저수준 프로그래밍, 소프트웨어 개발 환경에 대하여 학습한다. 실습을 통하여 마이크로프로세서와 다양한 주변기기의 원리 및 동작을 확인 한다.
마이크로프로세서 동작, 메모리 시스템 구성, 주변장치 및 하드웨어 제어, 프로그램 실행 환경, 예외 처리, 소프트웨어 개발 환경
11. 알고리즘
문제해결을 위한 효율적인 알고리즘을 설계하고 그 성능을 분석하는 것에 대하여 강의한다.
알고리즘의 복잡도 분석, 분할과 정복 및 재귀, 정렬, 욕심쟁이 방법, 동적계획법, 그래프 알고리즘, 백트래킹
12. 웹프로그래밍
웹프로그래밍에 필요한 언어인 HTML5, CSS, JavaScript, PHP, JSP 등의 언어에 대해 배우고, 웹 사이트를 구축할 수 있는 수준의 웹프로그래밍을 배운다. DB 연동, 서버 구축, 웹 보안 등 다양한 웹프로그래밍 문제를 다룬다.
13. 전자공학및실험
회로에 대한 이해를 바탕으로 전자 소자의 특성과 응용 회로를 익힌다. 이론 수업과 병행하여 전기회로와 전자회로에 대한 실험을 수행하고 다양한 계측기의 사용 방법을 익힌다.
14. 확률과통계
확률과 랜덤변수의 기본적인 개념을 익힌 다음, 확률 분포함수와 밀도함수를 이용하여 기댓값 등의 확률적인 특성을 계산하는 방법을 배운다.
확률, 랜덤변수와 확률 분포, 기댓값, 이산 및 연속 확률 분포, 가설 검정과 추정
3학년
1. 공학영어프레젠테이션
엔지니어의 국제적인 의사소통능력에 대한 사회 요구가 높아지고 있다. 이 과목에서는 영어 문서 작성과 발표에 대한 교육을 실시한다.
2. SW산학프로젝트
교수, 산업체 멘토, 학생 다수로 프로젝트팀 구성, 산업체와 연계된 산학협동 프로젝트 주제 발굴, 캡스톤설계와 연계하여 프로젝트 지속 수행한다.
3. ICT학점이수인턴1, 2
인턴실습강좌로 정보공시, 고등교육통계 및 장학성적 제외.
4. 데이터마이닝
데이터마이닝은 데이터에서 유용한 패턴을 찾거나 예측하기 위한 이론과 기법을 의미한다. 이 과목에서는 데이터에 대한 이해, 탐색적 자료 분석, 연관규칙의 탐사, 분류 기법, 클러스터링, 추천 시스템, 텍스트 마이닝, 그래프 마이닝 등과 같은 기법을 학습한다.
5. 데이터통신
통신프로토콜 계층구조에서 하위 계층, 즉 물리계층과 데이터링크계층을 강의한다.
통신모델, 데이터 및 신호 정의, 디지털 및 아날로그 전송, 스위칭, 멀티플렉싱, 오류 감지 및 정정, 데이터링크 제어, 다중접속 제어, 무선 랜
6. 설계패턴
여러 가지 설계패턴을 Java를 이용하여 프로그래밍 함으로써 설계패턴의 개념을 배운다. Strategy Pattern, Factory Pattern, MVC Pattern 등 여러 가지 설계패턴을 프로그래밍을 통해 배운다.
7. 시스템프로그래밍
운영체제의 커널 인터페이스 사용법을 익히고, 이를 기반으로 여러 응용 분야의 시스템 수준 병행 프로그래밍 기법을 학습하여 시스템 엔지니어를 양성한다.
운영체제 소개, 병행 프로세스/스레드 개념, 시스템 호출과 인터럽트 처리 소개, 프로세스 기반 병행 프로그래밍, 멀티스레드 프로그래밍, 파일/레코드 처리 및 상호 배제, 프로세스 간 통신, 메모리 관리 API, 시간 관리 API, 네트워크 소켓 프로그래밍 기초
8. 디지털신호처리
선형 시스템과 신호를 연속/불연속 그리고 주기적/비주기적으로 각각 분류하여 처리하는 방법을 배운다.
신호의 정현파 표현, 샘플링, 푸리에 급수, 컨벌루션, 시불변 선형 시스템, 주파수 응답, z-변환
9. 컴퓨터구조
컴퓨터시스템의 주요 구성 요소와 상호 작용을 이해하고 시스템 설계와 성능 분석에 필요한 기본 지식을 학습한다.
명령어집합, 중앙처리장치, 파이프라이닝, 메모리 계층구조, 입출력장치, 멀티프로세서
10. 컴퓨터그래픽스
선 그리기, 텍스처 처리, 2D 및 3D 모델링, 렌더링 등의 컴퓨터그래픽의 기본 개념을 배우고, OpenGL를 이용한 3D 게임 프로그래밍을 배운다. 또한, 이들 개념 및 테크닉을 Windows 및 Android 하에서 실습하고 간단한 그래픽 응용을 구현한다.
컴퓨터그래픽스 기초, 컴퓨터그래픽스 기초 이론 - 선그리기, 다각형그리기, 앤티앨리어싱, OpenGL 프로그래밍, 기학적 변형, 3D 뷰잉, 텍스처 매핑, 조명, 프랙탈, 파티클, 그래픽 응용
11. 제어공학
선형 시스템을 대상으로 안정도 판정, 정상상태 및 과도상태 응답 해석, 제어기 설계 등에 대해 강의하고 매트랩을 이용한 실습을 병행한다.
피드백 제어, 전달 함수, 상태변수 해석, 시스템 안정도, 시간영역 해석, 근궤적법, 제어기 설계 등
12. 기계학습
기계학습은 인공 지능의 한 분야로, 컴퓨터가 데이터로부터 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 본 강좌에서는 인공신경망, 결정트리, 선형벡터 공간, 최적화 기법 등을 학습한다.
13. 데이터베이스
관계형 데이터베이스 이론, 질의, SQL을 이용한 데이터베이스 프로그래밍, 트랜잭션 등에 대해서 배운다.
데이터베이스 시스템, 관계형 데이터베이스 모델, 관계대수, 관계해석, SQL, 데이터베이스 프로그래밍, 기본적인 동시성 제어 개념, 트랜잭션 프로그래밍
14. 소프트웨어공학
이 과목에서는 소프트웨어의 개발, 운용, 유지보수 등의 소프트웨어 생명 주기 전반을 정량적으로 다루기 위한 방법을 강의한다. 구체적으로, 소프트웨어 사용자들의 요구를 수집 및 분석하고, 이를 소프트웨어 시스템의 설계에 반영하는 다양한 요구사항 분석기법 및 설계기법들과 이와 관련된 소프트웨어 도구들에 대해서 가르친다.
사용자 요구 분석 및 설계, 소프트웨어 설계 기법, 객체 지향적 분석과 설계, 소프트웨어 유지 보수 및 품질 보증, 테스팅
15. 운영체제
범용 및 내장형 운영체제의 내부 구조와 기술적 특징을 학습하고, 병행 프로세스의 동기화를 비롯한 운영체제 밀결합 고급 응용의 작성 능력과 적용 분야에 맞게 운영체제를 개선할 수 있는 능력을 키운다.
운영체제 종류 및 특성, 프로세스/스레드 개념, I/O 시스템 구조, 시스템 호출과 인터럽트 처리, 프로세스 관리, 프로세스 스케줄링, 프로세스 동기화, 데드락, 가상 메모리 관리, 파일 시스템 구조, 디스크 시스템 관리, 분산 시스템 및 클라우드 컴퓨팅 소개
16. 전기기기
이 과목 에서는 스텝모터, DC모터 및 BLDC모터의 동작 원리를 이해하고 구동 하드웨어 제작 및 제어 프로그램 작성을 실습한다.
17. 컴파일러구성론
컴파일러를 작성하는 기본 방법을 강의한다. 형식어론(Formal Language Theories), Lexical Analysis, Parsing에 대한 이론을 배우고, 각각의 구현을 통해 컴파일러를 작성하는 능력을 키운다.
18. 컴퓨터네트워크
TCP/IP 프로토콜에서 상위 계층, 즉 네트워크계층, 트랜스포트 계층, 응용계층을 강의한다.
네트워크 모델, 응용계층의 다양한 네트워크 응용서비스, 트랜스포트 계층의 TCP 및 UDP, 네트워크계층의 IP 및 라우팅 알고리즘, 네트워크 보안
19. 자연어처리
인공지능 기술이 발달하면서 자동번역, 챗봇, 문서에서의 정보 추출 등 자연어 처리 기술의 활용 분야가 증가하고 있다. 이 과목에서는 형태소 분석, 정보 추출, 질의응답, 기계 번역 등 자연어 처리 기술들을 살펴본다.
4학년
1. 캡스톤설계및실습 (전공필수)
본 수업은 전공교육과정을 통해 습득한 지식을 바탕으로 실제적인 문제를 설계하고 해결함으로써 학문간의 융합 능력과 창의적 문제해결 능력을 배양하는데 목적을 둔다. 학생들은 기업과 사회에서 제시하는 프로젝트를 팀 단위로 수행하면서 목표하는 기능과 성능을 포함한 제반 요구사항들을 만족시킬 수 있는 시스템을 고안하는 과정을 팀원들과 협업하면서 진행한다.
2. IoT시스템
IoT 시스템은 임베디드 시스템 플랫폼 기반 위에 각종 센서를 이용하여 센서 데이터 수집, 가공, 활용을 통해 IoT 관련 기술, 제품, 응용 개발에 대해서 학습하는 과목이다. 이 과목에서는 센서 제어, 센서 데이터 수집, 서버 관리, 모바일 응용 등을 다룬다.
3. 게임프로그래밍
멀티미디어 콘텐츠 중에서 컴퓨터 게임은 가장 많은 사람들이 관심을 가지며 상업성이 높다. 이 과목에서는 컴퓨터 게임의 기획 및 개발 방법론에 대한 이론을 배우고, 게임 개발 도구 및 언어를 익힌 후, 이를 이용하여 데모용 게임 작성을 실습한다.
게임 기획 및 프로그래밍 개론, 게임 개발 과정 및 설계 도큐먼트, 게임 메커니즘, 게임 플레이, 세팅 및 밸런싱, 게임 엔진 소개, 3D 모델링 저작 및 렌더링, 게임 프로그램의 구조, 게임 프로그래밍 언어, 게임 엔진의 API 및 실습
4. 데이터베이스설계
관계형 데이터베이스 설계에 대한 이론과 데이터베이스의 물리적 또는 논리적 설계 기법에 대해 배운다.
함수종속성, 정규화, 데이터베이스 설계 알고리즘, 데이터 분석, ER 모델링, EER 모델링, 화일 구조, 인덱싱, 트랜잭션 처리, 동시성 제어
5. 빅데이터처리
이 과목에서는 주요한 데이터 마이닝 알고리즘과 대용량의 데이터의 처리하기 위한 기초적인 분산 처리 방법 및 이와 관련된 기초 알고리즘에 대해서 강의한다.
데이터 마이닝 알고리즘, 패턴 분석 알고리즘, 그래프 분석, 데이터 스트림 알고리즘, 군집화 알고리즘, 분산 처리 방법, Hadoop, NoSQL 시스템 및 그와 관련된 기초 알고리즘
6. 컴퓨터비전
컴퓨터비전은 카메라와 컴퓨터를 이용하여 시각 기능을 구현하고자 하는 분야이다. 이 과목에서는 기본적인 영상처리 기법과 영역화, 3차원 비전, 물체 추적과 인식 등의 주제를 다룬다.
7. 로봇공학
다양한 유형 로봇 시스템에 대해 소개하고, 기구학, 동력학, 제어 등 로봇공학의 이론을 이해 하며, 드론의 제작과 프로그래밍을 병행하도록 한다.
8. 모바일프로그래밍
모바일 스마트폰 OS와 App의 동작 원리를 이해하고 모바일 App 개발 방법을 학습함으로써, 모바일 기반의 소프트웨어 개발방법론을 익힌다.
9. 딥러닝
최근 인공지능을 발전에 중심이 되는 딥러닝 개념 및 기초 지식을 습득하고 보편적으로 많이 활용되는 딥러닝 신경망 기술들을 소개한다. 딥러닝 신경망 학습의 주요 기술인 정규화, 최적화 관련 이론을 강의한다. 파이선 기반 프로젝트 수행을 통해 딥러닝 이론을 실질적인 응용에 활용할 수 있는 능력을 배양한다.
10. 컴퓨터보안
이 과목에서는 암호화 알고리즘에 대한 기초적인 이론과 사용자 인증 및 인가, 컴퓨터 네트워크 환경에서 기밀성과 무결성을 지원하기 위한 프로토콜, 소프트웨어 결함 및 멀웨어와 관련된 소프트웨어 보안에 대해서 강의한다.
암호 알고리즘 - DES, AES, RSA, 접근 제어, 사용자 인증과 인가, 보안 프로토콜, 컴퓨터네트워크 환경에서 기밀성과 무결성을 위한 방법, 소프트웨어 보안, 소프트웨어 버그와 멀웨어
11. 엔터프라이즈프로그래밍
산업체의 대형 엔터프라이즈 정보시스템을 개발하는데 필요한 핵신 개념과 방법론을 익힌다. 컴포넌트 기술을 기반으로 한 애플리케이션 개발에 강의의 주안점을 둔다.
12. SW연구프로젝트및실습
SW연구프로젝트 과목은 캡스톤설계를 마친 학생을 대상으로 캡스톤설계 문제 또는 관심 분야의 문제를 심화 연구하는 프로젝트 중심 교과목이다. 프로젝트는 개인별 또는 팀별 연구 프로젝트 위주로 진행이 되고, 주제는 캡스톤설계의 심화 주제이거나 알고리즘, 인공지능, 컴퓨터비전, 컴퓨터시스템 등의 다양한 이론 연구 주제 모두 가능하다.
13. 고급문제해결기법및실습
이 과목은 학생들의 문제 해결 능력을 배양하기 위함이다. 주어진 문제를 해결하는 방법은 여러가지가 있다. 기존의 다양한 문제 해결 기법을 학습하여 유사한 문제를 가급적 빠른 시간내에 정확하게 해결하는 기법을 익혀 실제 문제 해결 능력을 배양한다. 아울러 취업에 유리하게 하는 목적이다.
14. 소셜네트워크분석
본 교과목은 사람들이 생활하면서 형성하는 사회 연결망 데이터를 활용하여 사회 구조 및 연결망에 대해 분석하는 방법에 대해 배운다. IT 발전으로 사람들 사이의 관계는 복잡해지고 정교해 졌다. 이를 네트워크나 개인간의 상호 관계 등을 분석하는 것을 목표로 한다.
15. 인간컴퓨터상호작용
이 과목은 인간과 컴퓨터 간의 상호작용에 대해 연구하는 학문 분야다. 상호작용이란 사용자와 컴퓨터 사이에 있는 사용자 인터페이스 작동을 의미하며 하드웨어와 소프트웨어 모두를 포함한다. 기본 목적은 인간이 더 쉽고 간단하게 컴퓨터를 사용하게 하는 것이다.
16. 멀티코어컴퓨팅
이 과목은 컴퓨터의 병렬처리 환경을 소개하고 병렬프로그래밍 기법에 대해 공부한다. 대용량의 데이터를 효과적으로 처리하기 위해선 병렬프로그래밍이 필수이며 이를 분석/설계하는 방법에 대해 배운다.
17. 블록체인의이해
이 강의에서는 공개키 암호화, 해시 함수, 디지털 서명, 영지식 증명 등 블록체인의 기반기술과 합의 알고리즘, data feeds, 거버넌스(governance), 결정성(determinism) 등 블록체인의 중요 개념들을 설명한다. 그 뒤에 비트코인, 이더리움, 하이퍼레저 패브릭, 리플 등 대표적인 블록체인 시스템들을 설명한다. 블록체인이 탈중앙화(decentralization)의 핵심 기술임을 설명하기 위해 PoW, PoS, PBFT, Paxos 등의 합의 알고리즘과 Chord, Pastry, Kademlia 등의 P2P 네트워크를 설명한다.