교과목개요
- 1학년
- 2학년
- 3학년
- 4학년
-
이산수학(Discrete Mathematics)
컴퓨터과학 및 디지털정보처리 분야의 수학적 기초가 되는 논리, 함수, 관계를 포함한 집합, 알고리즘, 수학적 귀납법 및 증명방법, 그래프, 트리, 부울 대수 등을 학습한다.
미래설계탐색(Exploration of Future Design)
스트롱 직업흥미검사를 온라인으로 실시하고, 해석 워크샵을 그 결과를 알게함으로써 자신의 직업적 흥미 경향성을 알아보고, 지속적인 상담 및 지도를 통해 자기를 이해하고 개인 가치관을 확립한다.
컴퓨터시스템개론(Introduction to Computer Systems)
컴퓨터에 대한 기초 지식을 부여하는 과목으로서 하드웨어, 소프트웨어 및 Firmware의 기능을 정의하고 프로그램과 컴퓨터 상호간에 관계 및 문제의 해결을 컴퓨터로 처리하는 방법을 습득한다.
오픈소스 소프트웨어 이해와 실습(Introduction to Open Source SW)
IT분야에서 활발하게 사용되고 있는 오픈소스소프트웨어의 종류, 올바른 활용방법, 개발환경의 구성, 다양한 응용 등에 대해 학습하여 오픈소스소프트웨어에 대한 이해를 높이고 기본적인 활용방법을 배운다.
미래설계준비(Preparation of Future Design)
바람직한 직업관, 성공관 등 개인의 가치관을 재확립하고, 전공과 관련된 사회진출분야(관심 직종의 비젼, 기술의 발달 정도, 시장성 등)를 탐구한 후 그 결과를 보고서로 작성하여 발표회를 실시함으로써 다양한 직업세계를 이해하고, 본인의 진로설정과 직무역량 계발계획을 수립한다.
-
자료구조(Data Structures)
컴퓨터에서 처리하는 데이터 기본 개념과 이를 효율적으로 처리하기 위한 자료 구조인 Array, Stack, Queue 및 Linked List 등의 자료구조에 대하여 공부한다. 또는 이를 이용한 Tree Manipulation, 그래프 이론, 자료 정렬 및 검색과 Symbol Table 작성 방법에 대하여 학습한다.
컴퓨터구조(Computer Architecture)
컴퓨터 관련 전공자들이 필수적으로 알고 있어야 할 컴퓨터 하드웨어의 동작 원리에 대하여 학습한다. 컴퓨터의 구성 요소인 중앙처리장치, 기억장치, 입출력장치의 동작 원리를 이해하고, 중앙처리장치가 명령어를 실행하는 과정에 대하여 자세히 배운다.
소프트웨어 실전영어(English for SW Development)
본 수업은 소프트웨어 개발자들의 다양한 업무에서 요구되는 영어 능력 향상을 위해 다양한 관련 상황을 통해 영어를 학습해나간다. 학생들은 소프트웨어 개발자로써 필요한 영어 능력들, 예를 들어 코드 분석 문서, 버그 리포팅, 이메일, 이력서 등을 영어로 작성함으로써 실제 문법과 쓰기를 배우고, 이들을 영어로 발표하거나 실제 인터뷰를 진행하는 등의 방식으로 실질적인 영어 학습의 기회를 얻는다.
객체지향 프로그래밍(Object-Oriented Programming)
객체지향 개념 및 프로그래밍 기법에 대한 이론적 학습과 실습을 통하여 객체지향 프로그램을 개발하고, 실제 응용 프로그래밍에 활용할 수 있는 능력을 함양한다.
선형대수학(Linear Algebra)
행렬과 연립방정식, 행렬식, 벡터공간, 선형변환, 고유값, 특이값 분해 등의 이해를 통해 전산 응용 수학의 기초지식을 습득한다.
미래설계구현(Implementation of Future Design)
산학협력을 맺은 기업들을 우선 대상으로 한 해당기업의 CEO 특강을 통해 학생들의 리더쉽을 함양시키고, 최신업계 트랜드를 알 수 있도록 하며, 나아가 이를 기반으로 한 진로상담을 통해 미래의 진로를 계획하는 데 초석이 되도록 한다.
오픈소스기초프로젝트(Fundamental of Open Source SW Project)
정보기술 및 소프트웨어의; 폭 넓은 이해를 위하여 해당 분야의 전반적인 기술 동향을 조사 분석하고, 발전 추세를 예측함으로써, 향후에 출현할 기술에 대한 선행적 이해를 도모한다.
알고리즘(Algorithm)
일반적으로 널리 알려진 알고리즘 및 대표적인 응용분야에 적용되는 알고리즘 기능 및 처리 과정을 배운다. 알고리즘의 난해도를 분석하고 효율적인 알고리즘을 설계하는 기법을 익힌다.
프로그래밍언어론(Programming Language)
이 과목은 컴퓨터 프로그래밍 언어에 적용되고 있는 기본 개념에 대해서 학습하고 최신 프로그래밍 언어가 가지고 있는 특징을 개괄한다. 이를 통하여 사용할 프로그램 언어를 선택할 수 있는 능력을 배양하고 프로그램 언어의 설계 능력을 갖추도록 한다.
시스템소프트웨어(System Software)
컴퓨터 시스템의 효율적인 사용이 요구되는 하드웨어와 소프트웨어 구조의 이해, Assembly Language 이해를 통해 Assembler, Loader 등의 설계방법 도입
창업 탐색(Start-up Exploration)
4차 산업 혁명과 관련된 기술 동향을 파악하고 창업 과정에 필요한 기본 지식을 습득한다. 초청 강연과 창업에 관한 다양한 활동를 통하여 전공 역량을 강화하고 도전 의식을 함양한다.
오픈소스개발프로젝트(Open Source Development Project Practice)
오픈 소스 프로그래밍 언어인 자바를 이용하여 실생활에 적용 가능한 소프트웨어를 개발하고, 이러한 개발과정에서 프로그램의 역할과 프로그램 코드의 체계적인 개발에 대한 중요성을 이해한다.
확률및통계(Probability and Statistics)
통계적 개념과 통계적 사고방법의 도입을 통해 전자계산기 시스템 분야에서의 응용 능력 배양
컴퓨터그래픽스(Computer Graphics)
컴퓨터 그래픽스 분야를 구성하는 렌더링, 애니메이션, 그리고 기하모델링 등의 기본 주제에 관한 이론과 실제를 다루며 대표적인 실시간 3차원 그래픽스 프로그래밍 툴을 사용하여 그래픽스 프로그래밍 기법을 익힌다.
-
운영체제(Operating System)
운영체제, 특히 다중 프로그래밍 시분할 시스템, 비동기 병행프로세서의 기본개념을 다룬다. 스케쥴링, 메모리 관리 정보의 고유 및 보호 등의 개념을 습득한다.
객체지향 설계(Object-Oriented Design)
객체지향 개발 방법에 의하여 소프트웨어를 분석하고 설계하기 위한 기본 개념의 이해 및 기법들을 대하여 학습하고, 프로젝트를 통한 문제 분석 및 설계 과정을 진행한다.
컴퓨터네트워크(Computer Networks)
네트워크의 기본 개념과 네트워크의 구조, TCP/IP 프로토콜 구조, 네트워크, 전송 및 응용 계층 프로토콜들에 관련한 기술 및 원리에 대해 인터넷을 중심으로 학습한다.
창업 기획(Start-up Planning)
4차 산업 혁명과 관련된 기술 동향을 파악하고 창업에 관련된 전문 역량을 키운다. 초청강연과 창업에 관한 다양한 활동를 통하여 전공 역량을 강화하고 도전 의식을 함양한다.
산학프로젝트(종합설계)(Interlink Project Practice, Comprehensive Design)
산업체(가족회사)의 멘토 또는 취업 선배(멘토)와의 연계를 통해 산업체가 수행하고 있는 프로젝트를 이해하고, 산업체에서 프로젝트 수행에 따른 문제점과 이에 대한 해결 방안을 멘토와 함께 해결함으로써, 현장의 실전을 이해한다
창업 설계(Start-up Challenge)
4차 산업 혁명과 관련된 기술 동향을 파악하고 창업에 관련된 실무 경험을 수행한다. 초청 강연과 창업에 관한 다양한 활동를 통하여 전공 역량을 강화하고 도전 의식을 함양한다.
데이터베이스시스템(Database System)
이 과목에서는 데이터베이스의 기본 개념과 개체-관계(E-R) 다이어그램, 관계형 데이터 모델 및 SQL 문의 사용, 데이터베이스 설계, 데이터베이스 보안 등은 물론 DBMS 구조와 그 기능을 공부한다. 아울러 실제 응용에서 시스템 개발과 웹의 연동 방법 등을 학습한다.
오픈소스 AI 웹소프트웨어(Open Source AI Web SW)
지능형 웹기반의 소프트웨어를 개발하는데 필요한 데이터 조작 및 처리 방법 등에 대한 프로그램 기법들에 대해 학습을 하며 이를 실제 적용하여 지능형 웹기반의 소프트웨어를 개발하는 기법을 학습한다.
AI오픈소스전문프로젝트(AI Open Source Project Application Practice)
소프트웨어 개발이 단순한 코딩 작업만이 아니라, 분석 및 설계 과정을 거쳐 개발되어야 함을 이해하고, 오픈 소스 및 인공지능 툴을 사용하여 웹과 앱에서 실행되는 인공지능 혹은 기계학습 기반 어플리케이션을 개발하는 기술을 학습한다.
인공지능수학(Mathematics for Artificial Intelligence)
인공지능을 위한 학습 모델을 구축하기 위해서는 정확하고 논리적인 인간의 사고 방식을 이해해야 한다. 이러한 사고 방식의 표현은 수학적 이론을 기반으로 가능하다. 이 교과목에서는 미분, 선형대수, 선형 회귀, 확률 및 통계 등의 수학 이론을 학습함으로써, 인공지능 구현을 위한 기초 능력을 다진다.
인공지능(Artificial Intelligence)
인공지능의 성공적인 적용분야 및 목표를 살펴보고, 대표적인 지능적인 문제 해결 기법들, 지식표현 방법 및 추론, 지식기반 시스템, 자연어처리, 컴퓨터 비전, 지능로봇 등에 대해서 학습한다.
소프트웨어공학(Software Engineering)
소프트웨어 공학에 대한 기본적인 개념의 이해와 소프트웨어 개발 과정에서 품질을 향상시키기 위해 요구되는 공학적 활동에 대하여 학습하고, 주어진 문제의 소프트웨어 개발을 위한 프로젝트를 진행한다.
정보검색(Information Retrieval)
정보 표현 및 저장 방법, 문헌 질의와 매칭과정, 텍스트 분석, 정보검색 검색효과 측정, 효과성 향상기법 등을 포함한 대량 정보의 조직적인 저장, 관리, 검색, 마이닝 기법에 대한 이론과 방법을 학습한다.
VR·AR·GAME 이론및실제(VR·AR·GAME Theory and Practice)
컴퓨터가 만든 가상공간에서 사람의 5감을 활용하여 현실과 동등한 체험을 제공하기 위하여 콘텐츠 설계, 크래픽 랜더링, 모션 트랙킹, 운영 플랫폼 등과 같은 기술이 필요하다. 이 교과목에서는 가상현실, 증간 현실 및 3차원 게임등을 개발하기 위한 이론을 학습하고 실습을 통해 가상 현실에 대한 이해를 높인다.
오픈소스 웹소프트웨어(Open Source Web SW)
웹기반의 소프트웨어를 개발하는데 필요한 데이터 조작 및 처리 방법 등에 대한 프로그램 기법들에 대해 학습을 하며 이를 실제 적용하여 웹기반의 소프트웨어를 개발하는 기법을 학습한다.
컴파일러(Compiler)
최신 컴파일러를 중심으로 어휘분석, 파싱 및 코드생성 등 일련의 컴파일 과정을 학습한다. 특히 컴퓨터 프로그래밍 언어가 가지고 있는 다양한 특징들을 컴파일 단계에서 어떻게 구현되는 가를 학습한다.
오픈소스전문프로젝트(Open Source Project Application Practice)
소프트웨어 개발이 단순한 코딩 작업만이 아니라, 분석 및 설계 과정을 거쳐 개발되어야 함을 이해하고, 오픈 소스 툴을 사용하여 웹과 앱에서 실행되는 어플리케이션을 개발하는 기술을 학습한다.
서버프로그래밍(Server Programming)
리눅스/유닉스 시스템 상에서 프로그래밍을 위해 필요한 시스템 구축부터 셸의 사용법과 시스템 API를 활용한 프로그래밍 방법을 학습하고, 이를 활용하여 실질적인 서버 프로그래밍 능력을 배양하는 것을 목표로 한다.
정보보호(Information Security)
정보보호 기초 이론 학습과 네트워크 보안 및 시스템 보안의 기본 개념을 이해하고 안전한 정보 시스템 구축 및 안전한 네트워크 서비스를 제공할 수 있는 방법을 습득한다.
-
캡스톤 디자인(Capstone Design)
컴퓨터과학의 기본 이론을 바탕으로 팀을 구성하여 주제를 선정하고, 프로젝트 진행 방법을 계획하여, 최종 결과물을 도출하기까지의 프로세스를 체계적으로 준수하면서 팀 기반의 프로젝트 수행을 경험한다.
임베디드시스템(Embedded Systems)
ARM기반 임베디드 시스템의 구조 및 시스템 소프트웨어 동작에 대해 학습하고, 리눅스 포팅, 부트로더, 디바이스 드라이버 작성 등의 실습 프로젝트를 수행한다.
창업산학초청세미나Ⅰ(Entrepreneurship and Educational-Industrial Special SeminarⅠ)
산업체와 학교의 교류를 통한 기업가정신, 최신 IT기술 동향 및 산업체의 경영철학과 경영방법을 습득한다.
알고리즘과문제해결기법(Algorithm-based Problem Solving Technique)
사회와 산업 분야에서 발생하는 문제를 소프트웨어 기술로 해결하기 위한 방안을 모색하고, 이를 해결하기 위한 문제 분석, 알고리즘 개발, 그리고 코딩을 통한 솔루션 개발 과정을 학습하여 문제해결 능력을 함양한다.
창업파일럿프로젝트(종합설계)(Entrepreneurship Capstone Design(Comprehensive Design))
학부에서 배운 지식을 바탕으로 컴퓨터과학 분야의 임의의 연구 주제를 선택하여 연구계획서 작성부터 완료보고서의 작성 및 발표까지 연구 과제를 수행한다.
창업산학초청세미나Ⅱ(Entrepreneurship and Educational-Industrial Special SeminarⅡ)
산업체와 학교의 교류를 통한 기업가 정신, 최신 IT기술 동향 및 산업체의 경영철학과 경영방법을 습득한다.
병렬컴퓨팅(Parallel Computing)
크고 복잡한 문제를 해결하기 위해 병렬컴퓨팅 환경이 요구되고 있다. 병렬컴퓨팅환경을 구성하는 다양한 시스템의 개념을 이해하고 시스템을 활용한 프로그래밍 기법에 대해 학습한다. Pthread, OpenMP, MPI, HTC, GPGPU와 같은 고전적 방식의 처리부터 양자컴퓨팅을 활용한 방법까지 다양하고 도전적인 문제를 병렬컴퓨팅을 통해 해결할 수 있는 능력을 배양한다.
인턴십Ⅰ,Ⅱ,Ⅲ,IV(InternshipⅠ,Ⅱ,Ⅲ,IV)
학교에서 습득한 전공기술을 산업현장 기술과의 접목을 통하여 현장적응 능력을 배양하고 대학과 지역 산업체간의 유기적인 산학협동 관계를 정립한다.
실무프로젝트Ⅰ,Ⅱ(Practical Software ProjectⅠ,Ⅱ)
설계 프로젝트 수행 경험을 바탕으로 보다 실질적이고 실무 중심적 과제 수행의 관점에서 학습자 주도적으로 학습을 진행한다. 이를 위하여 적용 현장의 특성 분석을 바탕으로 IT 최신 기술의 사용 능력과 실무 현장에서의 요구사항분석, 다양한 소프트웨어 설게 방법론의 활용과 프로젝트 관리 능력 배양의 관점에서 과제를 수행한다.
기계학습(Machine Learning)
데이터로부터 패턴을 추천하는 기계학습에 대한 핵심적인 원리를 소개한다. 지도학습, 비지도학습, 강화학습의 기본 개념을 소개하며, 주요 기계학습 알고리즘과 딥러닝 기법을 다룬다.
컴퓨터비전(Computer vision)
이 교과목에서는 인간의 시각을 컴퓨터에 구현하기 위한 이론을 학습한다. 이를 위해 영상 처리, 특징 추출, 모션 인식, 3차원 비전, 기계학습 등의 기술에 대한 원리 이해와 OpenCV를 이용한 프로그래밍 과정을 학습한다.
데이터사이언스(Data Science)
본 교과목에서는 데이터 분석을 통해 데이터 발생 패턴을 도출하고, 이를 통해 유용한 정보를 발견하는 능력을 향상시키는데 주안점이 있다. 이를 위해 데이터 분석 프로세스, 가설 수립 및 유의성 검증, 탐색적 데이터 분석 등의 기법을 학습하고, 실례 적용을 통해 응용 능력을 향상시킨다.
자연언어처리(National Language Processing)
사람이 사용하는 언어를 컴퓨터가 이해하여 지능적으로 처리하기 위한 다양한 알고리즘을 학습한다. 특히 웹 등에서 비정형 데이터로 존재하는 자연언어 텍스트를 처리하기 위해 단어 패턴 추출, 텍스트 정규화, 품사 태깅, 의미 모호성 해소, 부분 파싱, 개체명 인식, 관계 추출, 문서 분류 등에 대해 학습하고 이를 구현 및 활용하는 방법을 익힌다.
딥러닝이론및실습(Deep learning Theory and Exercise)
딥 러닝은 인공신경망을 기반으로 하는 기계학습의 유형이지만, 자율적 학습과 지능적 의사결정을 필요로 한다. 이 교과목에서는 인공신경망에 대한 이해와 신경망 구성 방법 등의 학습을 통해 심도있는 기계학습에 대하여 공부하고 예제를 통한 적용 능력을 향상시킨다.
인공지능시스템응용(AI System Application)
다양한 영역에서 인공지능 및 기계학습의 기술이 적용되고 있다. 본 교과목에서는 인공지능이 적용되는 특정 사례를 심도있게 분석하고, 새로운 문제 정의를 통해 인공지능 기술을 적용하는 프로젝트 기반 학습(문제기반 학습)을 진행한다.
빅데이터시스템설계(Big Data System Design)
빅데이터시스템에서 데이터 전처리와 플랫폼, 그리고 정형 및 비정형의 빅데이터 수집, 저장, 분석과 탐색, 공유, 전파, 시각화, 질의, 갱신 등의 방법에 대한 이론과 실무를 학습한다. 또한 빅데이터시스템을 위한 동시성 제어와 회복기법, 보안정책을 학습한다.
클라우드컴퓨팅(Cloud Computing)
클라우드컴퓨팅의 핵심 기술인 가상화 기술, 가상머신 관리, 가상클러스터 시스템, 컨테이너, 클라우드컴퓨팅 응용에 대해 학습하고 실무적 능력을 배양한다.
소프트웨어 테스팅(Software Testing)
소프트웨어의 결함은 심각한 사고를 유발할 수 있는 원인이다. 따라서 소프트웨어의 신뢰성을 높이기 위하여 개발된 소프트웨어의 정확성을 검증하는 것은 매우 중요하다. 이 교과목에서는 소트웨어 테스팅 절차, 테스트 데이타 생성 기법, 테스트 결과 해석 방법 등을 학습하고, 인공지능을 결합한 진보된 테스트 기법에 대하여 이해한다.
정보·컴퓨터교재연구및지도법(Computer Instructional Resources and Methods)
컴퓨터 교과지도에 필요한 능력을 배양하고 컴퓨터와 그 응용에 관하여 지식을 습득하게 하며 기초적인 프로그래밍 실무를 익힐 수 있는 교재를 연구한다.
빅데이터분석시각화(Big Data Analysis and Visualization)
이 강좌에서 수집된 데이터를 보다 쉽게 이해할 수 있도록 시각화는 대표적인 방법을 공부한다. 공부할 시각화 기법으로는 시간 시각화, 연계 시각화, 비교시각화, 분포시각화, 공간시각화 등이 있다. 머신 러닝 기법을 이용한 데이터 분석 결과를 보다 쉽게 볼 수 있는 시각화 기법도 소개한다.
모델링과 시뮬레이션(Modeling and Simulation)
시뮬레이션은 실 세계에서 수행하기 어려운 실험을 물리적 또는 추산적인 모델로 표현하고 컴퓨터 가상 공간에서 실험을 하는 것이다. 이 교과목에서는 이산 사건과 같은 시스템 특성을 모델링및 시뮬레이션하기 위하여 대상 시스템에 대한 추상화, 모델링, 실험 설계 등에 대하여 학습한다.
소프트웨어시스템응용(Software System Application)
이 교과목에서는 빅데이터 처리, 클라우드 컴퓨팅 등과 같은 최근의 이슈를 기반으로 하는 응용 시스템의 사례 분석을 통해 시스템 특성을 이해하고, 해당 기술을 이용하여 기존 시스테을 새롭게 설계하고 확장하는 과정을 학습한다. 부가가치를 높일 수 있는 응용 영역의 확대에 주안점을 둔다.
정보·컴퓨터논리 및 논술(Logic and Essay Writing in Computer Education)
컴퓨터 교과를 중심으로 학생의 새로운 창조적 아이디어로 표현하고, 아이디어의 타당성과 정당성을 체계적으로 전개하는 능력을 함양하도록 한다. 아울러 컴퓨터 논리에 대한 관련 자료의 탐색을 수행하여 그 결과를 정리하고 발표 및 토론하는 방식으로 중등 교육 현장에서 수요자 중심교육을 실시할 수 있도록 한다. 궁극적으로 컴퓨터 교과 교사로서의 기본 자질인 스스로 문제를 해결할 수 있는 창조적 사고력을 기반으로 지식사회가 필요로 하는 논리적 사고 능력을 습득한다.
정보·컴퓨터교육론(Computer Subject Teaching)
컴퓨터에 관한 교육과 컴퓨터를 이용한 교육의 이론과 실제를 학습한다. 컴퓨터 교과의 역사적 배경, 컴퓨터 교과교육의 목표, 중·고등학교 교육과정의 분석 등 중등과정의 정보·컴퓨터 교육의 전반에 관하여 학습한다.