2020년 IT공학전공 커리큘럼
구분 |
1학기 |
2학기 |
---|---|---|
1학년 |
IT기술의 이해 |
IT수학 |
2학년 |
객체지향프로그래밍 (Java)(필수) |
C++프로그래밍 |
3학년 |
데이터베이스 |
IT소프트웨어공학 |
4학년 |
|
HCI개론 |
졸업필수 |
★졸업프로젝트 (캡스톤디자인) |
★졸업프로젝트 (캡스톤디자인) |
교양 |
인터넷정보관리사 |
소셜미디어의이해와활용 |
교과목 해설 (가나다 순)
C++언어의 문법을 익히고 이를 활용한 프로그래밍 응용에 대해 학습한다. C++언어의 객체지향 특성인 객체(Object)와 클래스(Class), 상속성(Inheritance), 다형성(Polymorphism)등을 이해하고 C++언어에 대한 구문 구조 및 응용 프로그래밍 기법을 습득하기 위해 기존의 C언어에서 확장된 부분과 객체지향 프로그래밍을 지원하기 위한 다양한 기법을 학습한다. 또한 프로그램 최적화, 시스템 라이브러리 구축 및 활용 기법에 대하여 다룬다.
인간 컴퓨터 상호작용(Human Computer Interaction, HCI)은 컴퓨터 시스템과 이를 이용하는 인간을 위한 학문으로, 도구로서의 컴퓨터 잠재력을 극대화하여 인간의 창의력과 인간 사이의 의사소통 및 협력을 증진시키는 데에 있다. 다양한 인터랙션 기법들을 실제 현장 문제에 적용하고, 새로운 인터랙션 기법을 개발하거나, 새로운 하드웨어를 시험한다. 또한, 새로운 소프트웨어 시스템을 구현해보고, 새로운 패러다임을 찾거나, 모델이나 이론을 개발한다.
디지털 기술의 발전과 함께 개념이 확대되고 있는 IoT(Internet of Things)에서 통신 프로토콜의 발전에 따른 기본 개념과 각종산업 분야에서 IoT 기술을 활용하는 ICBM(IoT, Cloud, BigData, Mobile) 개념을 설명한다. 또한, ICT 융합 산업 분야에서 실제로 활용되는 IoT 기술을 이해하고, 이를 활용하는 능력을 배양한다.
IT기기의 핵심구조를 이해하고, IT 기기의 동작과 설계에 대한 기본원리를 학습한다. 하드웨어와 소프트웨어의 인터페이스에 대해 학습하고, 프로세서와 주변장치들의 구성 원리에 대해 이해하며, 하드웨어의 기초인 디지털 논리회로의 설계에 대해서 학습한다. 이러한 과정을 통해 소프트웨어가 IT 기기 상에서 어떤 원리로 실행되는지에 대해 하드웨어적인 관점을 이해할 수 있다.
최근 이슈가 되고 있는 IT관련 산업과 기술의 새로운 경향을 이해한다. 또한 지식기반의 창업 마인드 확산과 성공 포인트를 사례 중심으로 학습한다.
지식정보화사회에서 핵심으로 자리 잡고 있는 IT기술(정보기술)을 이해하기 위한 기본 원리를 소개한다. 컴퓨터 시스템과 소프트웨어의 원리와 컴퓨터와 IT기술이 다른 분야의 기술과 융합하여 활용되는 영역을 이해하도록 한다.
소프트웨어 개발에서 소프트웨어 공학의 필요성에 대하여 이해하고, 공학적 접근방법에 대해 학습한다. 또한 소프트웨어 개발과 관련된 기본 기술들(분석, 디자인, 구성, 테스트, 유지보수, 프로젝트 관리 및 품질보장 등)을 학습한다.
컴퓨터의 기초원리가 되는 이산수학을 주로 다룸으로써 컴퓨터 이론과 프로그래밍 과정에서 필요한 논리적인 사고력, 추리력을 배양한다. 집합과 행렬, 명제, 경우의 수와 같은 기초수학을 기반하여 리스트와 배열, 그래프, 트리, 알고리즘, 논리회로 등을 다룬다.
IT분야의 소프트웨어나 어플리케이션을 개발할 때 중요한 요소인 UX(사용자경험)에 기반한 UI설계 기법에 대해 배운다. 모바일 기기나 웹 환경에서 사용자 인터페이스의 설계, 프로토타입 개발, 평가 기법에 대해 다음과 같은 항목을 학습한다.
- UX 기반의 사용자의 요구 및 작업 분석
- UI 프로토타입 개발 기법
- UI 설계에 대한 사용성 평가 기법
- UI 설계에 영향을 주는 인지적(cognitive/perceptua) 요소
컴퓨터 환경에서 현실과 유사한 가상 및 증강세계를 구현하는 이론적 배경과 구현하는 기술을 익히는 과정이다. 사이버공간에서 현실감 있는 작업을 수행하도록 하는 가상현실에 대해 이론적 배경을 이해한다. 현실세계에서 가상의 물체를 함께 작동시키게 하는 증강현실의 기술적 이론을 이해한다. unity를 이용해 직접 가상공간을 제작한다.
객체 지향 개념을 이해하고 Java 언어 실습을 통한 멀티미디어 응용 소프트웨어 개발 방법을 습득한다. 또한 소프트웨어 재사용 및 복잡한 객체, 멀티미디어 데이터 표현 등의 새로운 요구사항을 충족시키는 확장 멀티미디어 라이브러리 구축방법을 습득한다. Java 언어와 관련된 개발환경과 응용 시스템의 구조를 연구하게 된다.
본 전공은 전공을 이수하기 위한 가장 필요하면서도 기본적인 과목이다. 향후, 본 전공에서 사용될 프로그래밍 언어를 학습한다. 본 강좌에서는 프로그래밍 언어의 기초인, “C 언어”에 관련된 Syntax와 Semantics를 배운다. 주로 대학 첫 입학생을 대상으로 하는 과목으로, 컴퓨터를 처음 접하고자 하는 학생이나, 타 전공학생들도 수강 가능하며, 컴퓨터 프로그래밍 언어를 통하여 컴퓨터의 기본을 학습할 수 있도록 강의하는 과목이다. C 프로그래밍을 할 수 있도록 하는 것과 데이터 구조를 학습하기 위한 기본 내용을 목표로 한다.
IT 기술의 발달에 고기능의 멀티미디어 서비스가 가능한 휴대용 단말기 기반의 분산 멀티미디어 응용 소프트웨어를 만들기 위하여 필요한 UNIX Network Programming기법을 다룬다. 프로세스 관리, 프로세서(서버, 클라이언트)간 통신프로그램, 유닉스 소켓 프로그램, Java RMI를 이용한 프로그램, 서블릿 등을 이용한 멀티미디어 분산 시스템을 구축하기 위한 다양한 네트워크프로그래밍 기법을 습득한다.
컴퓨터 시스템에서 멀티미디어 데이터를 효과적으로 구성하기 위한데이터의 설계, 구현, 선택, 사용 기법을 제공한다. 과목의 주제는 배열, 스택, 큐, 리스트, 트리, 그래프, 정렬, 히프 구조, 탐색 기법, 파일구조, 색인 파일, 해쉬 파일등을 포함한다. 아울러, 각 데이터 및 파일 구조에 대한 수학적 해석을 통해서 학습한 내용을 응용하는 기법도 학습한다.
빅데이터 분석의 핵심 기술을 배워 연관규칙(associationrules), 분류(classifications), 클러스터링(Clustering), 유사검색(Similarity Search) 등을 학습한다. 따라서, 빅데이터 대상 분석 기술을 익히는 것을 목표로 한다. 데이터 마이닝이라 불리는 세 가지 핵심 기술과 주변기술을 습득하고 R프로그래밍 기술 습득 및 R을 활용한 마이닝 기술을 실습한다.
컴퓨터상에서 발생하는 데이터를 효과적으로 저장하고, 관리하는 방법을 강의한다. 수강생들은 본 강좌를 통하여, 사회 (회사, 연구소, 대학원)에서 요구하는 실질적인 DBMS 프로그래밍을 배울 수 있다. 이를 통해, 취업현장에서 데이터베이스를 바로 실행할 수 있도록 강의한다. 데이터베이스는 현존하는 지식을 Database에 저장하기 위한 다양한 기법들이 소개된다. 자세히 설명하면, DBMS는 그 자체만으로도 수많은 타 학문(생명공학, 경영학, 경제학, 건축, 자동차, 토목 등) 과 결합되는 중요성을 가진다. 그러므로 그들 분 야에서 다루고자 하는 중요한 데이터에 대한 저장 및 검색 방법을 제시한다. 구체적인 학습 내용은 관계형 데이터베이스 시스템 및 관련 응용들을 설계, 사용, 구현하기 위한 기본 개념을 배운다. 강좌의 주된 내용은 다음을 포함한다: (관계형) 데이터베이스 모델링 및 설계 기법, 데이터베이스 언어, 저장 및 색인 기법, 질의 처리 기법, 트랜잭션 처리 기법, DBMS(Database Management System) 실습, 또한, 본 강좌에서 사용되는 프로그래밍언어(C,C++, Java 중 1과목)와 웹 언어(JSP, PHP, ASP 중 1과목) 등은 관련 과목 사전 수강이나 독자학습을 권고한다.
데이터 분석 오픈소스 플랫폼을 활용한 데이터 분석 기법과 이에 대한 활용을 학습한다. Hadoop기반의 MapReduce 플랫폼을 활용한 데이터 분석과 인메모리기반의 Spark 플랫폼을 활용한 데이터 분석 기법을 학 습하고, 이외의 다양한 최신의 오픈소스 데이터분석 플랫폼을 활용하는 기법에 대하여 학습한다. 또한 데이 터 분석을 통해 획득된 지식을 활용하는 다양한 어플케이션들과 산업체 현장에서의 실제 사례에 대해 학습한다.
모바일 응용서비스에 대한 기초지식을 연구하고 이를 바탕으로 멀티미디어 응용서비스의 구축방법, 서비스 활용방법 등에 대한 지식을 습득한다. 이를 위하여 프로그램 언어(Java)를 바탕으로 모바일 응용서비스 플랫폼 구현과 응용서비스의 실험을 통하여 지식을 터득한다. 모바일 디바이스에 멀티미디어 서비스를 지원하기 위한 콘텐츠 제작과 유통 소프트웨어의 기획, 설계, 구현, 및 운영에 필요한 기술을 습득한다.
서버 운영체제로 많이 사용되는 리눅스를 설치하고 리눅스를 기반으로 한 서버 시스템의 사용 기법을 습득한다. 특히, 초보자의 입장에서 리눅스 시스템관리를 위한 사용 방법을 학습한다. 또한 리눅스 시스템 내에서 동작되는 인트라넷/인터넷 서비스 구축 방법을 습득하여 서비스 관리 지식을 습득한다. 아울러 웹 서비스 운 영 중에 발생할 수 있는 보안 이슈들에 대해 공부하고 내외부로부터의 침입에 대비할 수 있는 웹 서버 운영 방안을 습득한다. 웹 서버운영 시 발생하는 침입의 유형에 대해 다루고 이들 웹 서버 침입에 대비할 수 있는 방안과 그 실무를 익힌다.
사물 인터넷(Internet of Things)은 최근의 우리 삶은 혁신적으로 변화시킬 주요 기술 중의 하나이다. 그 중심에는 지능형 센서 기술이 있으며 이를 통해 네트워크를 통해 정보의 전송 및 연동이 가능하게 하는 기술로 정의된다. 본 교과목에서는 IoT 기술의 기본 요소를 이해하기 위하여 오픈 소스 하드웨어(OSHW)인 Raspberry Pi 3에서 센서의 동작 원리와 IoT 센서 제어 기술 습득을 목표로 Python기반에서 IoT Peripheral 기초 이론 및 실습과 IoT종합 프로젝트를 진행함으로써 IoT에 대한 이해와 기본 활용 능력을 배양하고자 한다.
스마트 콘텐츠의 정의 및 특징을 이해하고 스마트 콘텐츠 산업의 현황 및 시장의 흐름에 맞춰 사용자의 요구를 분석한다. 브레인스토밍 등 팀워크 및 창의력을 키우는 활동을 통해 스마트 앱 서비스를 설계 및 기획 하며 프로토타입을 개발하기까지의 과정을 다룬다.
알고리즘은 IT공학의 모든 분야를 이해하는 기초가 되는 중요한 분야이다. 이 과목을 통해서 문제 해결을 위한 접근 방법들과 그 방법에 대한 성능평가를 수행하고, 이를 효과적으로 구현할 수 있는 능력을 배양하고자 한다. 복잡도 분석을 통해 알고리즘 성능 평가 방법을 배우고, 정렬, 선택알고리즘, 검색 트리, 해시테이블 등을 통해 효율적인 자료 찾기 방법을 배운다. 아울러 집합처리, 동적 프로그래밍, 그래프알고리즘, 문자열 매칭 학습을 통해 고급 알고리즘을 익힌다. 시간이 허락할 경우 NP-Complete 문제들과 상태공간 트 리 탐색 등 고차원적인 알고리즘에 대해서도 공부한다. 이 과정을 마치고 나면 수강생들은 효율성이 컴퓨팅 에 얼마나 중요한 요소인지 알게 될 것이며, 이를 통해 수강생들은 간결하면서도 비용이 적게 드는 프로그램 을 작성할 수 있는 소프트웨어 프로그래머로 발돋움할 수 있을 것으로 확신한다.
디지털 영상처리의 기초 이론을 소개하고 이를 기반으로 영상처리 구조를 실습한다. 영상 데이터의 생성 원리부터 기본 데이터 처리 구조, 실제 화소 단위의 다양한 처리 알고리즘, 실제 응용 사례등을 다루며, 실습 프로젝트를 통하여 영상처리의 기술 활용 능력을 습득한다.
컴퓨터 또는 스마트 기기의 시스템 구조를 이해한 후(IT기기구조), 운영체제의 구조와 프로세스 개념, CPU 스케줄링 기법을 공부한다. 이를 통해 시스템 내에 여러 프로세스들이 동시에 실행되는 것이 어떻게 가능한지를 이해할 수 있게 된다. 이어서 프로세스 동기화와 Dead Lock을 공부함으로써 다중-스레드 프로그래밍의 중요성을 이해한다. 아울러 메모리 관리와 가상 메모리 시스템 원리를 배움으로써 메모리의 효율적 사용이 시스템의 성능 향상에 어떤 영향을 미치는지 파악한다. 마지막으로 파일 시스템 인터페이스와 파일 시스템 내부구조, I/O시스템, 외부 저장 장치 구조 등을 살펴봄으로써 운영체제가 데이터 저장을 어떻게 하고 있는지에 대해 이해한다. 운영체제 내부구조 및 설계 원리를 익힌 후 IT기기가 갖추어야할 요건들에 대해 공부한다.
인터넷에서 웹 페이지를 표현하는 기법과 원리를 학습한다. HTML, JavaScript등 클라이언트 프로그래밍 기법을 학습하고, 웹2.0으로 불리는 최근의 기술동향의 원리에 대해 살펴본다. 프로젝트를 진행하여 활용 능력을 배양한다.
최근 웹 페이지 기술언어로 각광받고 있는XML에 대하여 이해하도록 한다.XML은 무엇인지, 어떻게 사용되는지, 어떻게 작동되는지에 대하여 배운다. 주제별로는XML 문서작성 및XSLT 변환, DTD/Schema 작성, DOM 및SAX, 기타관련 표준 등에 대하여 배운다.
팀을 구성하여 기획부터 제작까지 다뤄봄으로써 프로젝트 수행능력을 배양하고 산업체에서 필요한 기술을 중심으로 수행함으로써 응용력을 적극적으로 강화한다. 동시에 창의력을 고취시킨다. 전반적인 설계 디자인 및 기획력을 증강하고 프로그램 개발 부분 까지 다룰 수 있는 IT전문가를 양성한다. IT공학과의 졸업 요건을 위해 수강이 필요하다.
인공지능의 기본원리와 방법에 대해 소개한다. 특히, agent system, searching algorithm, learning algorithm등을 통해 해답을 찾아가는 기본 기술들을 학습한다. 딥러닝과 관련한 내용을 학습할 수 있으며 인공지능을 기반으로 하는 응용 분야에 대해 학습한다.
학생들은 각종 영상을 컴퓨터를 통하여 묘사하기 위한 그래픽 저작도구들의 사용 기법을 습득한다. 특히3D 객체를 모델링하여 실내의 인테리어 등을 디자인하며, 카메라, 조명, 애니메이션을 배운다. 또한 openGL 을 이용하여 그래픽 프로그램의 설계와 응용기법도 습득한다.
본 교과목에서는 기본 영상의 생성 및 다양한 변환 모델링을 통한 변화 과정등의 사람의 시각시스템 관점에 서 컴퓨터 비젼에 대한 내용을 소개한다. 이를 위해 기본 영상 전처리 과정인 화소처리, 히스토그램 처리, 영 상 이진화 등기본 내용을 이론적으로 학습하고 실제 전처리 데이터의 분석을 통한 인식 및 분류를 위한 특 징 기반 해석 방법에 대해서 강의한다. OpenCV 기반 실습을 통하여 실제 배운 이론을 적용해 봄으로써 실 무 능력까지 겸비하도록 구성하였다.
분산 컴퓨팅 환경의 발전과 함께 자원의 공유라는 차원에서 대두되고 있는 클라우드 컴퓨팅의 개념을 설명한다. 본 과목에서는 클라우드 컴퓨팅 기술과 사례를 소개한다. 특히, 정의된 개념과 모델, 기술 메커니즘 및 아키텍처 등을 중심으로 기본 기술들을 학습한다. 또한 사례 연구를 기반으로 전통적인IT컴퓨팅과의 비교가 가능하도록 한다.
컴퓨터 소프트웨어 개발에 필요한 프로그래밍 언어 중 최근 가장 각광받고 있는 파이썬(Python)을 학습하고 연습하는 과목이다. 본 강좌에서는 배우기 가장 쉬우면서도 프로그래밍의 다양한 기능들을 지원하는 언어인 파이썬의 문법(Syntax)과 의미(Semantics)를 강의한다. 프로그래밍 언어란 컴퓨터가 이해하는 언어로써 프로 그래머는 프로그래밍 언어를 사용하여 컴퓨팅 장치에 명령을 주고 원하는 작업을 시킬 수 있다. 본 강좌는 수강생들이 컴퓨터 프로그래밍을 쉽게 배울 수 있도록 함과 동시에 컴퓨터 소프트웨어 개발 원리도 습득할 수 있도록 구성되어 있다. 프로그래밍 언어 학습을 통한 프로그래밍 능력은 향후 IT공학과의 다양한 교과목 들을 제대로 이수하기 위해 필수적인 소양이다. 실험/실습 환경으로는 IT공과학과 실습실에 설치된 무료 파 이썬 개발 도구를 사용하여 실습한다. 선수과목은 없으며 본 강의가 여러분의 생애 최초 프로그래밍 강좌라 는 가정 하에 쉽고 완만한 속도로 진행될 예정이다.
인공지능공학부 커리큘럼(예정)
* 아래내용은 학부 사정에 따라 변경될 수 있습니다.
|
1 학 기 |
2 학 기 |
1학년 |
프로그래밍입문
|
|
2학년 |
공학수학Ⅱ 객체지향프로그래밍
데이터구조
오픈소스프로그래밍 |
모바일프로그래밍
인공지능입문
|
3학년 |
인공지능과 기계학습
컴퓨터그래픽프로그래밍
|
네트워크
센서프로그래밍
딥러닝개론
|
4학년 |
졸업프로젝트(캡스톤디자인) |
지능형언어처리 컴퓨터비젼
졸업프로젝트(캡스톤디자인) |