프로그래밍및실습I(Programming and Practice I) 함수 활용 기반의 C언어를 학습하고 이를 통해 기초적인 프로그램 문법 및 제어문을 익힌다.
프로그래밍및실습II(Programming and Practice II)
객체지향 개념의 프로그래밍 언어를 학습하고 이를 활용할 수 있는 여러 가지 실기 기법을 습득한다.
이산수학(Discrete Mathematics) 컴퓨터 시스템 구조의 기반 전공으로 그래픽, 행렬, 알고리즘 등 다양한 분야에서 활용되는 이산적인 수학 구조와 연속되지 않는 공간에 대한 수학적인 개념을 학습한다.
컴퓨터개론(Introduction to Computer) IT 관련 학과의 세부 전공 과정에 들어가기 전에 알고 있어야 할 전반적인 컴퓨터 과학에 관한 내용을 다룬다. 기본적인 시스템 구조와 프로그래밍의 개념, 데이터 처리 및 알고리즘 기초 등으로 개념 정립을 목적으로 한다.
창의공학설계입문(Introduction to Creative Engineering Design) 공학설계에 대한 기본 전공과목으로 학생들은 공학설계의 이론적인 기초를 학습하며, 공학설계의 전 과정을 수행한다. 이 과정을 통하여 학생들은 공학설계에 필요한 내용에 대한 경험적인 지식을 습득한다.
오픈소스SW기초(Open-source SW Application) 오픈소스SW를 활용한 어플리케이션 개발을 학습한다. 특히, 전통적 오픈소스SW 개념과 기술을 이해하고 최근 오픈소스SW 활용 기술을 학습한다.
프로그래밍설계방법(Programming Design Method) 효과적인 프로그램 개발을 위한 방법론을 학습하는 과목으로 프로그램 개발의 전반적인 과정을 수행한다. 이 과정을 통하여 학생들은 프로그래밍에 대한 경험적, 이론적 지식을 습득한다.
IT인문(IT Humanities) 인문학적 상상력, 융합/통섭형 인간 육성 등 4차 산업 시대를 대비해야 하는 학생들의 인문학적 소양을 증진 시키고 이해한다.
파이썬프로그래밍(Python Programming) 동적 타이핑(dynamic typing) 범용 프로그래밍 언어로 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 사용량이 증가 되는 언어이다. 언어의 기본구조를 익히고 활용능력을 높여 다양한 프로젝트를 수행하는 데 목적을 둔다.
API활용(API Utilization) 현실 세계 및 기업에서 필요로 하는 프로그래밍을 개발하기 위해서는 API에 대한 이해와 활용능력이 필수요소이다. 본 과목에서는 언어 기반의 API와 응용 및 데이터 제공 수준의 API 등 다양한 API에 대하여 이해하고 이를 프로그램 개발에 활용할 수 있는 능력을 키운다.
정보보안론(Information Security) 정보보안 과목은 정보의 수집, 가공, 저장, 검색, 송신, 수신 도중에 발생하는 정보의 훼손, 변조, 유출을 방지하기 위한 기술에 대하여 학습한다. 정보 보안의 주요 목표인 기밀성, 무결성, 가용성에 대하여 이해하고 효율적인 정보보안 기법에 대하여 이해한다.
객체지향개발론(Object-oriented Development Theory) 프로그래밍 언어를 이용한 객체지향 설계와 프로그램의 구현을 소개한다. 캡슐화, 상속 다형성 등의 객체지향 프로그래밍 개념이 소개된다. 추가적인 주제로 네트워킹, UML(Unified Modeling Language), 객체지향디자인패턴, RMI (Remote Method Invocation) 등 또한 학습 대상에 들어간다.
프로토타입프로젝트I(Prototype Project I) 요구분석, 설계, 구현, 디버깅, 배포 등의 프로그램 개발 과정의 전 과정을 사이클할 수 있는 프로젝트를 구성하고 이를 구현함으로써 관련 능력을 배양한다.
직무능력개발론(Job Competency Development Theory) 학생들에게 조직에 대해 이해를 시키고 동시에 직장생활에서 더욱 효율적으로 업무를 수행할 수 있는 실무지식을 알기 쉽게 습득시킴으로써 적응성을 더욱 높일 수 있도록 학습한다.
기업프로젝트I(Enterprise Project I) 기업에서 필요로 하는 사업 방향에 맞는 프로젝트의 일부 모듈을 구현하고 프로젝트화 하여 현업에 대한 적응력을 극대화한다.
프로토타입프로젝트II(Prototype Project II) 프로토타입 프로젝트 I에서 개발 사이클의 전반적인 적용을 수행하고 본 전공에서는 상용화 수준의 프로젝트 주제를 기반으로 한 업그레이드된 프로토타입의 구축을 목표로 개발을 수행한다.
기업프로젝트II(Enterprise Project II) 기업에서 대응되는 실제 현업 핵심 기술을 적용한 프로젝트를 설계하고 수행한다. 이를 통해 기업에서 필요로 하는 맞춤 인력으로의 능력을 개발하고 신장한다.
빅데이터처리(Big Data Processing)
빅데이터의 실제 구축 사례를 학습하고 공공데이터 및 구성된 빅데이터를 활용하여 프로그래밍으로 관련 처리를 수행한다. 또한, 빅데이터 분석에 대한 Map-Reduce, master-task node 제어 등에 대한 구조를 이해한다.
기업프로젝트III(Enterprise Project III) 기업의 현업 코어 프로젝트와 연계하거나 계승하는 프로젝트 개발의 진행을 수행한다. 기업프로젝트의 최종 과목으로 기업 내에 적합한 전략적 인력을 배출한다.
데이터베이스(Database) 이 교과목에서는 데이터베이스 시스템의 개념과 구조를 학습하고, 관계형 데이터 모델을 중심으로 설계, 구현, 활용에 대한 이론을 학습한다. 특히 관계형 데이터베이스 시스템에서의 데이터모델링, 관계대수, SQL, 정규형 등을 깊이 있게 다루며, 객체관계 데이터모델, 객체지향 데이터 모델에 대해서도 소개한다.
선형대수(Linear Algebra) 행렬과 벡터의 연산과 같은 선형대수의 기본 이론 및 개념을 이해하고 학습한다. 또한 향후 학습한 내용을 바탕으로 응용분야인 컴퓨터 그래픽스, 영상처리 등의 영역에서 적용되는 방안에 대하여 살펴본다.
알고리즘(Algorithms) 이 과목의 목적은 알고리즘을 설계하고 분석하는 것으로 주제는 욕심장이 방법, 분할정복, 동적프로그래밍, 퇴각검색, 분기한정 등의 알고리즘적인 기법의 분석과, 몇몇 잘 알려진 알고리즘에 대하여 다룬다. 특히, 이러한 알고리즘의 정확성과 효율성에 대하여 교육한다.
운영체제(Operating Systems) 본 과목에서는 운영체제와 커널분석, 커널프로그래밍에 대하여 배운다. 그리고 임베디드 시스템에 적용되는 소규모 OS 레벨 및 다양한 OS의 특징에 대하여 이해한다.
인공지능(Artificial Intelligence) 지능 시스템에 대해 간단한 소개를 하며, 퍼지 논리의 기본과 신경망의 기본 원리 및 학습 구조 등을 다룬다. 간단한 지능 제어 시스템들의 예제들이 제시된다.
자료구조(Data Structures) 이 과목에서는 프로그래밍언어를 이용하여 컴퓨터에서 자료를 표현하고 조작하는 방법에 대하여 교육하며, 리스트, 스택, 뷰, 트리, 그리고 재귀호출 등의 주제를 포함한다. 학생들은 이 과정을 통하여 복잡한 컴퓨터 프로그램을 읽고 쓰는 데 필요한 문제 해결 능력과 설계방법을 결정하는 방법을 배우게 된다.
컴퓨터구조(Computer Architecture) 컴퓨터 연산 시스템의 기본구조 및 동작 원리를 이해하고 CPU의 처리 구조와 메모리 구조, IO 구조 등을 학습한다. 나아가서 ALU설계 능력을 배양한다.
임베디드시스템(Embedded System) 자동차, PDA, 가전제품 등의 실시간 내장형 시스템(Real-time Embedded System)을 위한 임베디드 시스템에 대한 이해와 개발 능력을 배양하기 위한 교과내용으로서 Embedded Java, Embedded Visual Basic 등에 대한 소개와 객체 지향 모델링 도구인 UML 등을 이용한 임베디드 시스템 개발방법론에 대하여 다룬다.
웹프로그래밍I(Web Programming I) 스마트 모바일 플랫폼에서 응용 앱 개발 방법을 소개한다. 모바일 플랫폼을 위한 개발환경, 응용 프로그램 설계, 사용자 인터페이스, 응용 개발 개념 등을 이해하고 학습한다.
디지털논리회로(Digital Logic Circuits) 디지털 회로의 기초 이론인 2진수의 개념 및 논리회로, 부울대수, 플립플롭 회로, 카운터 레지스터, 인코더와 디코더, 기억회로 및 동작원리, A/D와 D/A 변환 등을 익혀 디지털 컴퓨터 시스템의 구성을 이해한다.
앱프로그래밍(App Programming) 스마트 모바일 플랫폼에서 응용 앱 개발 방법을 소개한다. 모바일 플랫폼을 위한 개발환경, 응용 프로그램 설계, 사용자 인터페이스, 응용 개발 개념 등을 이해하고 학습한다.
캡스톤디자인I(Capstone Design I) 학생의 창의력, 실무, 팀워크, 의사소통 등의 훈련을 통한 설계 및 구현 능력의 향상을 목표로 하며 캡스톤디자인II 교과목에서 최종 완성할 프로젝트를 설계하고 프로토타입을 구현한다. 설계 주제 선정 방식은 팀 회의를 통한 학생 자발적 선정, 기업체 제시에 따른 선정, 교수 지정에 따른 선정 등을 활용하도록 한다.
캡스톤디자인II(Capstone DesignII) 캡스톤디자인I에서 설계하고 구현한 프로토타입을 심화시켜, 기존 프로젝트를 최종 완성하고 결과물을 산출하도록 한다. 이 교과목은 반드시 캡스톤디자인I을 이수한 후에 이수할 수 있다. 이 교과목에서 산출된 결과물들은 가급적 외부 경연 대회에 제출하도록 하여 완성도를 객관적으로 평가 받을 수 있도록 한다.
전공선택
확률과통계(Probability&Statistics) 확률에 대한 기본적인 이론과, 랜덤 변수들의 분포, 조건부 확률, 확률의 독립성을 살펴보고, 나아가 응용소프트웨어 관점에서 다수의 수치적 통계 방법과 통계적 알고리즘을 다룬다.
웹프로그래밍II(Web Programming II) HTML, 동적 HTML과 XML 등의 인터넷/웹 마크업 언어와 JavaScript, VBScript 등의 스크립트언어를 기반으로 웹프로그래밍에 대하여 학습한다. 이 과정에서는 웹 페이지들과 웹 기반의 응용에서 영상과 음성의 결과물을 산출하는 프로그램을 이용하여 프로그래밍의 개념에 대하여 충분히 다루며, 효과적인 웹 페이지의 설계와 클라이언트측 기본적인 웹이론에 대하여 다룬다.
4차산업혁명의이해(Understanding the Fourth Industrial Revolution) 4차 산업 혁명에 대한 여러가지 기술 및 환경에 대하여 이해한다. 또한 전공에서 학습하는 여러 교과목과 4차 산업 혁명 사이의 인과관계에 대하여 학습한다.
빅데이터의이해(Understanding Big Data) 빅데이터는 단순히 크기가 큰 것만을 의미하지 않고 데이터 형식과 처리속도에 대한 이른바 3V로 특징이 정의된다. 급증하는 데이터의 시대에서 다양한 가치와 통찰력을 학습한다.