fnctId=pdfView,fnctNo=190
본 자료는 PDF파일로 제공되며, 따라서 Acrobat Reader 프로그램이 컴퓨터에 설치되어 있어야 파일을 열어보실 수 있습니다.
Acrobat Reader 프로그램이 설치되어 있지 않으면 설치파일을 다운받아 설치하신 후 파일을 열어보시기 바랍니다.
전공 교육과정 교과목 해설
- 이산수학 컴퓨터 관련 과목을 이수하기 전에 필요한 지식인 이산 개념에 기초를 둔 학문으로 수학적 논리, 집합과 함수, 행렬, 관계, 트리, 그래프, 부울대수, 조합, 알고리즘, 형식언어, 오토마타 등을 다룬다.
- C언어프로그래밍 기초적인 컴퓨터 프로그래밍 방법을 C언어를 이용하여 배운다. C언어는 프로그램 개발 분야에서 가장 많이 사용되는 컴퓨터 프로그램 언어이다. 이 과목을 수강 후에 학생들은 C언어를 이용하여 간단한 프로그램을 자신이 직접 개발할 수 있다. 다루는 주된 내용은 C언어 개요, 자료형, 제어문, 함수, 기억 클래스, 구조체와 공용체, 포인터, 입출력 함수와 파일, 선행처리기, 고급 프로그래밍 기술들을 중점적으로 다룬다.
- 파이썬프로그래밍 파이썬 프로그램을 이용하여 IT분야 프로그램을 개발할 수 있는 능력을 배양하는 교과목이다.
- 컴퓨터구조론 컴퓨터시스템의 기본적인 구조와 동작 원리를 배운다. 또한 중앙처리장치(CPU)와 입출력 장치의 기능을 이해하고, 병렬 및 분산컴퓨터의 기본적인 구조 동작 원리를 배운다.
- 자료구조론 자료 구조 및 취급 방법에 대한 알고리즘들을 배운다. 스트링, 리스트, 스택, 큐, 트리, 그래프, garbage collection 및 동적 기억장치 할당 방법들을 배운다.
- JAVA프로그래밍 객체지향의 개념과 객체지향개발 방법론을 학습한 후, 객체지향기반의 대표적 프로그래밍 언어인 자바의 문법 및 문법 구문의 사용을 프로그래밍하여 익힌다. 이론과 실습을 병행하여 습득한 자바 문법을 실제 활용할 수 있는 능력과 방법을 익히도록 교육한다. 주요학습 내용은 객체지향 기본개념, 조건 및 반복 제어 구문, 자바언어의 기본구조, 인터페이스, 컬렉션을 포함한 자바의 패키지, 예외처리 및 쓰레드를 다룬다.
- C++프로그래밍 객체 지향 프로그램 언어인 C++를 이용하여 객체지향 프로그래밍, 객체 지향소프트웨어 설계, 수정과 테스트 등을 공부하고 여러 간단한 문제들을 프로그래밍 함으로써 고급 언어를 이용한 문제 해결법을 학습한다.
- 선형대수학 선형대수의 기본인 백터공간, 내적 공간, 고유치와 고유벡터, 선형변환 및 응용문제와 컴퓨터 그래픽의 객체의 이동, 회전 변환 등을 적용하기 위한 필수적인 내용을 다룬다.
- 2D프로그래밍 메카닉과 Physics2D로 플레이어와 적 캐릭터를 만들고 트리거와 애니메이션 이벤트로 공격 액션을 만든다. 스크립트로 적 캐릭터 관리 시스템을 만들고 카메라 조작, 레벨 디자인, 배경음과 효과음을 구현한다. 이후에 게임 기획서를 작성한 후 이 기획서대로 2D 게임을 제작한다.
- 디지털영상처리 영상 시스템의 모델링, 샘플링, 양자화, 영상 개선과 복구, 2차원 데이터의 필터링과 변환이론 등의 영상 처리 기법을 학습하고 이를 사용하여 이미지 변환(Image Trans-forms), 이미지 개선(Image Enhancement), 이미지 복원(Image Restoration), 그리고 에지 분할(Edge Segmentation) 등에 관한 영상처리 기술들을 실제 영상들을 사용하여 실습함으로서 디지털 영상처리 기술들을 학습한다.
- 파이썬응용 파이선 언어를 활용하여 다양한 프로젝트를 수행하여 실제 상황에서 활용할 수 있는 응용 프로그램을 개발한다.
- 데이터통신 컴퓨터 및 각종 정보통신 단말기간의 데이터 전송 기술과 관련 통신망 기술을 익힌다. 특히 전송매체, 데이터 부호화, 링크 제어 기법 및 다중화 등의 전송 기술과, 회선 및 패킷 교환망, 근거리 통신망, 이동 통신망, 종합 정보 통신망 등의 구조 및 관련 프로토콜에 대해 학습한다. 또한 CCNA 국제공인자격증 준비를 위한 이론/실습을 강의한다.
- 컴퓨터그래픽스 2D 및 3D 컴퓨터 그래픽에 대한 이론과 디스플레이 장비의 특성 및 다양한 모델링 및 렌더링 기법에 관해 개념과 원리를 배우고 이를 컴퓨터 프로그램으로 구현하기 위해 그래픽 라이브러리의 대명사인 OpenGL 라이브러리의 사용법을 학습한다. 특히 3D 물체의 모델 변환과 시점변환, 투상변환과 뷰 포트 변환, 가시성 판단, 조명과 음영 등의 그래픽 파이프라인 처리 과정을 OpenGL 라이브러리에 기반한 프로그래밍을 통해 기초부터 고급 과정까지 단계적으로 학습한다. 또한, 물체 표면에 질감을 입히는 텍스쳐 매핑, 장면에 설치된 물체에 조명과 카메라를 설치하여 이를 시각화하는 랜더링 기법 등을 배우고, 파티클 시스템(particle system), 애니메이션, 가상현실, 레이 트레이싱(ray tracing), 스플라인(spline), 프랙탈(fractal) 등의 고급 그래픽 이론도 병행하여 이해하고 학습한다.
- 알고리즘 알고리즘 설계 및 분석 기법, 리스트, 스택, 큐, 트리, 그래프 등의 자료구조의 활용, 정렬과 탐색 및 그래프 알고리즘을 학습한다. 컴퓨터 응용 분야에서 자주 발생하는 실제적인 문제들을 해결하기 위한 알고리즘들의 해석에 역점을 둔다. 이를 위하여 sorting, graphs, string matching, dynamic programing과 computational complexity 등을 다룬다.
- 인공지능 Problem Reducing 방법, 상태 공간표현, Heuristics와 같은 문제 해결 기법을 포함하여 지식의 표현 및 사용, 탐색기법, 기계학습, 자연어 처리, 전문가시스템, 퍼지이론, 신경망 등에 대해 교수함과 동시에 관련된 주요 알고리즘을 컴퓨터 프로그래밍화해 봄으로써 심화 학습을 유도하고자 한다.
- 데이터베이스이론 및 실습 데이터베이스의 기본 개념과 일반 이론에 대하여 학습하며, 데이터베이스 모델을 설계한다. 데이터베이스 언어인 SQL을 사용하여 데이터베이스를 설계하고 데이터베이스 시스템을 구축한다. 데이터베이스의 기본 설계 이론과 구현 방법 등에 대한 이해력과 응용력을 배양한다.
- MFC프로그래밍 윈도우즈 시스템 프로그래밍을 수강한 학생들을 대상으로 MFC를 활용하여 프로그래밍을 하는 방법을 배운다. MFC는 C++ 언어를 학습한 사람이 윈도우 프로그램을 쉽게 개발할 수 있도록 만들어 놓은 클래스 라이브러리이다. 본 교과에서는 윈도우즈 어플리케이션 구조를 이해하고, 시스템 설계 및 구현 능력을 배양하며, MFC를 활용한 응용 어플리케이션의 개발을 실습함으로써 윈도우즈 소프트웨어 시스템에 대한 설계 및 구현의 능력을 배양한다.
- 모바일프로그래밍 안드로이드폰에서 실행되는 앱 제작 방법을 학습한다. 이를 위하여 안드로이드 개발환경인 Eclipse에 대해 학습한다. 이후에 안드로이드와 모델-뷰-컨트롤러, 액티비티, 디버깅, UI 프래그먼트와 프래그먼트 매니저 등을 익혀서 앱을 개발하여 퍼블리싱 하는 것을 최종 목표로 학습한다.
- UI/UX디자인 사람이 취급하는 컴퓨터관련 작업을 하는데 있어서 사용자 인터페이스 기술과 사용자 경험 기술은 필수적이다. 본 교과에서는 소프트웨어 응용에서 사용자 인터페이스를 구성하는데 필요한 디자인 요소나 개념을 소개하고, 스마트폰이나 웹 디자인에서의 UI/UX 설계방법론을 교육하며, 실제 응용사례에 대한 UI/UX 디자인해 봄으로써 체험적인 학습이 가능하도록 한다.
- 언리얼엔진게임프로그래밍 언리얼 엔진에서 C++를 활용하여 게임을 개발하는 방법을 학습한다. 언리얼 게임 엔진의 사용법을 배우고 C++를 이용한 언리얼 게임 엔진을 배운다. 게임을 제작하는 과정에서 발생되는 게임논리와 구현상의 차이를 배우고 디버깅 과정과 구글링을 이용한 커스터마이징을 학습한다.
- 패턴인식 패턴 인식의 기본 개념과 패턴 인식 시스템의 설계 방법론 및 학습에 관하여 그 개념을 소개한다. 패턴인식의 주요 연구 분야로는 크게 문자인식, 음성인식, 영상 인식 등이 있으며, 일반적인 패턴인식 방법으로는 통계적 패턴 인식, 구문론적 패턴 인식, 그리고 신경망을 이용한 패턴 인식 등 세 가지 접근방법 등에 대하여 기본 개념을 정립하고 그 중 통계적 패턴인식을 중점적으로 학습한다.
- 데이터분석 이론 및 실습 데이터 분석에 필요한 데이터 엔지니어링의 과정을 이해하고 이를 기반으로 텀프로젝트를 통해 수집 및 분석과정을 수행한다. 이를 위해 공공데이터(JSON/XML)를 수집하여 데이터 분석을 위한 데이터 준비과정을 학습한다. 또한 교과목에서는 파이썬(Python) 언어와 관련 데이터 수집 및 분석 패키지를 사용하여 실습을 진행한다. 데이터 분석 및 가시화를 위해서는 Numpy, Pandas, Matplotlib 패키지를 이용한다. 수집 및 분석 결과는 파이썬 패키지를 사용하여 가시화한다.
- 가상현실 인터넷 속의 가상현실과 Web 3D와의 만남. 네트워크 가상현실의 개요와 기술 동향을 배우고, PC 환경에서 인터넷을 통하여 모두가 공유할 수 있는 수준 높은 3차원 멀티미디어 공간을 쉽게 만들 수 있는 방법에 대해 학습한다. 가상현실 장면에 상호 작용을 만들 수 있는 방법에 대해 기술하고, 웹을 이용한 오브젝트에 다양한 이벤트와 기능을 부여하는 기능에 대해 학습한다.
- 3D캐릭터디자인 3차원 객체를 표현하는 그래픽 툴 3ds Max를 활용하여 모델링, 매핑, 라이팅, 카메라, 랜더링, 애니메이션 등, 각각의 개념과 기술적 특징을 이해하고, 캐릭터애니메이션 제작을 위한 아이디어 발상 훈련, 컨셉 기획, 모델링, 애니메이션 기초 실습 등을 바탕으로 창의적인 3차원 캐릭터애니메이션 제작 능력을 기른다. 이를 통해 공학전공자에게 필요한 ICT와 디자인의 융합역량, User 중심의 개발 마인드로 OSMU 가능한 고부가가치 멀티미디어콘텐츠 제작 및 3D 프린터 등 관련 분야 취업에 도움을 주고자 한다.
- 모바일게임프로그래밍 안드로이드폰용 게임 제작을 위한 Eclipse 제작 환경과 클래스 설계, 쓰레드, 서피스 뷰, 디자인 패턴, 프레임워크, 팩토리 패턴 등을 학습한 후 상용화된 2D 모바일 게임 소스를 분석한다. 이후에 게임 기획서를 작성한 후 모바일 게임을 제작하여 공모전이나 포트폴리오 제작에 도움을 주도록 한다.
- 3D게임프로그래밍 먼저 미니게임을 제작해 보고 도트먹기 게임, 커뮤니케이션 게임 만들기, 미로 탈출게임 만들기, AI 대전 게임 만들기를 학습한다. Kinnect를 이용한 동작 인식 게임 제작법을 추가로 학습한다. 이후에 게임 기획서를 작성한 후 이 기획서대로 3D 게임을 제작한다.
- 빅데이터 대부분의 빅데이터 분석 기술의 바탕이 되는 텍스트 마이닝, 오피니언 마이닝, 소셜네트워크 분석, 군집 분석 등 데이터 마이닝과 기계 학습, 자연 언어 처리의 원리에 대해 소개한다. 대규모의 정형/비정형 데이터를 처리하는 데 있어 기본적인 분석 인프라인 하둡의 설치 및 활용을 학습하고 데이터의 유연하고 빠른 처리를 위한 NoSQL 기술을 학습한다. 또한 분석된 데이터의 의미와 가치를 시각적으로 표현하기 위한 R프로그래밍언어를 학습한다.
- 캡스톤디자인 전 학기 과정을 통해 습득한 이론과 실습능력을 활용하여 최종적인 소프트웨어 개발과 관련한 산출물을 작성하는 방법을 훈련하는 과목이다. 이 과목은 프로젝트의 수행에 대한 체험적인 교육을 지향하는 한편, 선수과목으로 이수한 교과목들이 실제 공학도로서 산업현장에서 활용할 수 있는 가를 검증하는 데 교육의 목표를 두고 있다. 또한 팀 프로젝트를 통해 협동심 및 리더십의 확립과 아울러, 프로젝트의 진행과정을 문서화하거나 발표하는 능력을 배양하도록 한다.
- 현장실습 현장실습은 능력발전 또는 능력개발을 위해 실무적인 직무를 수행하는 과정에서 지도 및 훈련, 경험을 쌓고 배우게 되는 교육훈련의 방법이다. 본 과목을 통해 학생들은 학교에서 습득한 이론 및 실습을 현장에서 활용해 봄으로써 숙지한 지식을 현장에서 활용이 가능하도록 더욱 발전시키며, 또한 장차 취업 후의 직업 환경을 미리 체험함으로써 중점적으로 갖추어야 할 기술적인 지식이나 기타의 소양을 준비할 수 있게 된다.
- OpenCV프로그래밍 본 교과에서 학습할 OpenCV 라이브러리는 Windows, Linux, Mac OS, Android 등의 운영체제에서 모두 동작하며 무료이면서 소스가 공개된 영상처리 및 컴퓨터 비전 관련 범용 라이브러리이다. OpenCV 라이브러리는 다양한 영상처리 및 컴퓨터 비전 알고리즘이 500여개의 함수로 구현되어 있는 바, 본 교과는 컴퓨터 비전의 기본 이론을 학습하면서 OpenCV의 자료구조, 영상 및 행렬 접근, 움직임 검출 및 추적, 코너 및 대응점 검출, 스테레오 정합, 3D 깊이 계산, 3D 재구성 및 카메라 캘리브레이션 (camera calibration), 얼굴 검출 등을 학습하고 관련된 응용 프로그램을 OpenCV를 사용하여 실무 중심으로 개발하고 실습할 수 있도록 구성된다.
- 딥러닝프로그래밍 딥러닝 및 기계 학습의 기본 이론과 TensorFlow 및 Keras 라이브러리 활용에 대한 기반 지식을 이해한다. 텐서플로우 라이브러리(TensorFlow Library)는 Google에서 개발 공개한 딥러닝(deep learning)과 기계 학습(machine learning)용 범용 공개 라이브러리이고, 딥러닝(Deep Learning)은 분류 학습에 국한된 전통적인 인공 신경망의 노드 폭과 계층 깊이를 확장해 특징 학습과 분류 학습을 통합하고 이에 따른 일련의 제약 요인을 극복함으로써 도약적 성과를 낳고 있는 최근의 기계 학습(인공 신경망) 응용 기술이다. 이를 위해 본 교과목은 딥러닝의 기본 이론에 대한 이해를 기반으로, Python 환경에서 Keras와 TensorFlow 기반의 선형 회귀(Linear Regression), CNN(Convolutional Neural Networks), RNN(Recurrent Neural Networks), LSTM(Long Short Term Memory), GAN(Generative Adversarial Networks), 강화 학습(Reinforcement Learning), DQN(Deep Q-learning Networks) 등과 관련된 실용적이고 확장가능한 예제를 중심으로 프로그래밍 실습을 병행하며, 이를 토대로 기말 프로젝트를 수행함으로써 Keras와 TensorFlow 기반의 딥러닝 응용 프로그램 개발 능력을 취득한다.