컴퓨터수학 (Computer mathematics)
컴퓨터 기반 과학 기술과 공학적 응용의 핵심은 수학인데, 이산수학(Discrete Mathematics)을 통하여 해결하고자 하는 복잡한 문제들을 추상화한다. 본 과목에서는 컴퓨터공학과 관련된 이산수학 및 선형대수에 대해서 고찰하고 학습한다. 논리, 명제, 집합, 관계, 순열, 행렬, 트리, 그래프 등과 같은 기초 컴퓨터 수학 이론을 학습하도록 한다.
컴퓨터논리개론 (Introduction to Computer Logic)
컴퓨터 분야에서 사용되는 기본적인 이산 수학과 논리 단계의 컴퓨터 하드웨어 구성을 배운다. 이를 위해 이산 수학의 다양한 컴퓨터 응용을 살펴보고 컴퓨터 논리회로의 기본 소자와 이를 이용한 컴퓨터 부품 단계의 설계 및 동작을 학습한다.
공학설계 (Introduction to Engineering Design)
본 강좌는 문제의 정의 및 개념화, 상상한 것을 제품으로 만들기 위하여 필수적인 설계 과정을 다룬다. 이 강좌를 통하여 학생들은 개방형 문제를 해결하기 위한 체계적인 접근 방법을 배우며, 팀 프로젝트를 통하여 팀웍과 문제 해결 과정을 경험하게 된다.
고급파이썬프로그래밍 (Advanced Python Programming)
기초 프로그래밍 과정을 이수한 학생을 대상으로 운영되는 본 과목은 프로그래밍 역량을 강화하는 것을 목표로 한다. 객체 지향 프로그래밍, 예외처리, 파일 입출력 등 고급 프로그래밍 기법을 학습하고, 다양한 문제를 프로그램으로 코딩하는 연습을 통해 문제 해결 능력을 습득한다.
자료구조 (Data Structure)
자료구조의 개념과 기본적인 자료구조의 설계, 구현 및 이의 응용에 대하여 강의한다. 강의 내용은 추상적 자료형, 스택, 큐, 리스트, 이진트리, 그래프 순회, 해싱을 다룬다.
확률과통계 (Probability and Statistics)
확률과 통계의 기본개념인 데이터의 생성과 처리, 통계적 모델을 설정하는 방법을 익힌다. 자료 정리와 표현, 데이터의 통계적 분석, 확률의 개념 및 해석, 랜덤 변수, 통계적 추정 과 신뢰도등을 포함한다.
컴퓨터구조 (Computer Architecture)
컴퓨터시스템의 주요 구성 요소와 상호 작용을 이해하고 시스템 설계와 성능 분석에 필요한 기본 지식을 학습한다. 학습 내용으로 명령어집합, 중앙처리장치, 파이프라이닝, 메모리 계층구조, 입출력장치, 멀티프로세서를 다루며 아두이노를 이용하여 시스템 동작을 확인한다.
알고리즘 (Algorithm)
문제해결을 위한 효율적인 알고리즘을 설계하고 그 성능을 분석하는 것에 대하여 강의한다. 강의내용: 알고리즘의 복잡도 분석, 분할과정복 및 재귀, 정렬, 욕심쟁이 방법, 동적계획법, 그래프 알고리즘, 백트래킹
운영체제 (Operating System)
컴퓨터 운영체제의 구조 및 기능을 이해하고, 운영체제 각 요소의 구현 방법을 학습한다. 프로세스 관리, 메모리 관리, 파일시스템, 입출력 관리, 보안 등이 주요 학습 주제이며, 윈도우즈, Linux 등의 실제 주요 운영체제 사례를 소개한다.
소프트웨어 공학 (Software Engineering)
소프트웨어 생명주기, 구조적 설계 및 분석기법 등을 학습함으로써 고품질의 소프트웨어 개발 능력을 배양하고, 소프트웨어 생산품의 생산과 품질 유지를 위한 공학적 접근 방법과 실제 적용 방법론을 학습한다.
데이터베이스 (Database)
관계형 데이터베이스 이론, 질의, SQL을 이용한 데이터베이스 프로그래밍, 트랜잭션 등에 대해 배운다. 세부 내용은 다음과 같다: 데이터베이스 시스템, 관계형 데이터베이스 모델, 관계대수, 관계해석, SQL, 데이터베이스 프로그래밍, 기본적인 동시성 제어 개념, 트랜잭션 프로그래밍.
기계학습 (Machine Learning)
본 과목은 기계학습의 다양한 이론 및 실제적인 구현 방법에 대해서 학습한다. 기계학습을 이해하는데 필요한 선형대수와 같은 수학적인 기초에서부터 기계학습의 기본 개념, 회귀, 지도 학습 모델, 비지도 학습 모델등 다양한 기계학습에 대해서 다룬다.
컴퓨터 네트워크 (Computer Network)
TCP/IP 프로토콜에서 상위 계층, 즉 네트워크계층, 트랜스포트계층, 응용계층을 강의한다. 강의 내용으로 네트워크 모델, 응용계층의 다양한 네트워크 응용서비스, 트랜스포트 계층의 TCP 및 UDP, 네트워크 계층의 IP 및 라우팅 알고리즘 등이 있다.
데이터사이언스 (Data Science)
일상생활이나 산업현장, 인터넷, SNS 등 다양한 데이터 소스로부터 생성되는 다량의 데이터를 분석하여 유용한 정보를 추출하고, 이를 의사결정에 활용하는 방법에 대하여 학습하며, 실제 분석용 툴을 활용함으로써 데이터 분석 실무 능력을 배양한다.
웹프로그래밍 (Web Programming)
웹 기반 소프트웨어 개발방법에 필요한 웹, 웹 기반 스크립트 언어, 데이터베이스 접근 방법 등 웹 기반 소프트웨어 개발방법에 대하여 강의한다.
인공지능 (Artificial Intelligence)
최근 이슈가 되고 있는 인공지능 기반의 공학적 문제 해결 방법을 학습한다. 인곤지능의 문제 해결 방법인 신경회로망, 심층신경망, RNN GNN등 인공지능 관련 다양한 머신러닝 및 딥러닝 기법을 배우고 이를 공학적 시스템에 적용하는 방법을 다룬다.
빅데이터 (Big Data)
본 과목은 다양하고 광범위한 데이터에 대한 효율적인 처리 및 분석 방법과 이를 가능하게 하는 데이터 처리 저장 분석 방법을 학습한다. 또한 적절한 데이터 레이크를 생성하기 위해 대량의 비정형 데이터를 저장, 관리, 처리 및 분석하는 데 필요한 기술을 습득한다.
정보보안 (Information Security)
정보시스템 및 네트워킹 환경에서 요구되는 정보보안의 원리, 암호의 기초, 보안 이론, 보안 메커니즘 및 절차 등을 습득하게 하고, 소프트웨어에서의 이의 활용을 학습한다.
종합설계 (Capstone Design)
소프트웨어 전문 지식을 가진 인문 전공 학생들에게 스스로 대상을 설정하고, 그 대상에 대하여 기획, 설계, 제작, 시험 및 평가는 일련의 과정을 체험하게 함으로써 소프트웨어 공학적인 창의성을 학습한다.
인턴쉽 (Internship)
교과목 학습을 통하여 얻은 지식 및 기술을 활용할 수 있는 실제적인 경험을 갖게 하며 IT 분야 산업계의 이해를 증진시키기 위하여 산업 현장에서 실습을 실시한다.
해외인턴쉽 (Global Internship)
해외 파견 인턴쉽을 통하여 IT 관련 지식을 해외의 산업 현장의 문제에 직접 적용하고 실제 해외의 산업 현장을 체험함으로써, 글로벌 감각을 키움과 동시에 현장 실무 능력을 기르도록 한다.