교과목개요

  • 1학년
  • 2학년
  • 3학년
  • 4학년
  • 소프트웨어학부 공통

    이산수학(Discrete Mathematics)

    컴퓨터과학 및 디지털정보처리 분야의 수학적 기초가 되는 논리, 함수, 관계를 포함한 집합, 알고리즘, 수학적 귀납법 및 증명방법, 그래프, 트리, 부울 대수 등을 학습한다.

    컴퓨터시스템개론(Introduction to Computer Systems)

    컴퓨터에 대한 기초 지식을 부여하는 과목으로서 하드웨어, 소프트웨어 및 Firmware의 기능을 정의하고 프로그램과 컴퓨터 상호간에 관계 및 문제의 해결을 컴퓨터로 처리하는 방법을 습득한다.

    오픈소스 소프트웨어 이해와 실습(Introduction to Open Source SW)

    IT분야에서 활발하게 사용되고 있는 오픈소스소프트웨어의 종류, 올바른 활용방법, 개발환경의 구성, 다양한 응용 등에 대해 학습하여 오픈소스소프트웨어에 대한 이해를 높이고 기본적인 활용방법을 배운다.

  • 소프트웨어학부 공통

    자료구조(Data Structures)

    컴퓨터에서 처리하는 데이터 기본 개념과 이를 효율적으로 처리하기 위한 자료 구조인 Array, Stack, Queue 및 Linked List 등의 자료구조에 대하여 공부한다. 또는 이를 이용한 Tree Manipulation, 그래프 이론, 자료 정렬 및 검색과 Symbol Table 작성 방법에 대하여 학습한다.

    컴퓨터구조(Computer Architecture)

    컴퓨터 관련 전공자들이 필수적으로 알고 있어야 할 컴퓨터 하드웨어의 동작 원리에 대하여 학습한다. 컴퓨터의 구성 요소인 중앙처리장치, 기억장치, 입출력장치의 동작 원리를 이해하고, 중앙처리장치가 명령어를 실행하는 과정에 대하여 자세히 배운다.

    창의문제해결과 설계(Creative Problem Solving and Design)

    생성형 AI와 같은 인공지능에 의존하지 않고, 제시되는 문제에 대하여 문제 이해, 문제 분석, 입출력 설계, 알고리즘 작성, 코드 매핑 등과 같은 학습 과정을 수행함으로써, 창의적 문제 해결 및 설계 능력을 함양한다. 이의 결과와 인공지능의 풀이 결과를 상호 비교하여 문제점을 식별하는 과정도 학습한다.

    선형대수학(Linear Algebra)

    행렬과 연립방정식, 행렬식, 벡터공간, 선형변환, 고유값, 특이값 분해 등의 이해를 통해 전산 응용 수학의 기초지식을 습득한다.

    객체지향 프로그래밍(C++)(Object-Oriented Programming(C++))

    C++ 언어를 활용하여 객체지향 개념 및 프로그래밍 기법에 대한 이론적 학습과 실습을 진행하며, 특히 시스템 중심의 객체지향 프로그램을 개발하고, 실제 응용 소프트웨어 개발에 활용할 수 있는 능력을 함양한다.

    객체지향 프로그래밍(JAVA)(Object-Oriented Programming(JAVA))

    JAVA 언어를 활용하여 객체지향 개념 및 프로그래밍 기법에 대한 이론적 학습과 실습을 진행하며, 특히 웹 기반의 객체지향 프로그램을 개발하고, 실제 응용 소프트웨어 개발에 활용할 수 있는 능력을 함양한다.

    알고리즘(Algorithm)

    일반적으로 널리 알려진 알고리즘 및 대표적인 응용분야에 적용되는 알고리즘 기능 및 처리 과정을 배운다. 알고리즘의 난해도를 분석하고 효율적인 알고리즘을 설계하는 기법을 익힌다.

    프로그래밍언어론(Programming Language)

    이 과목은 컴퓨터 프로그래밍 언어에 적용되고 있는 기본 개념에 대해서 학습하고 최신 프로그래밍 언어가 가지고 있는 특징을 개괄한다. 이를 통하여 사용할 프로그램 언어를 선택할 수 있는 능력을 배양하고 프로그램 언어의 설계 능력을 갖추도록 한다.

    시스템소프트웨어(System Software)

    컴퓨터 시스템의 효율적인 사용이 요구되는 하드웨어와 소프트웨어 구조의 이해, Assembly Language 이해를 통해 Assembler, Loader 등의 설계방법 도입

    확률및통계(Probability and Statistics)

    통계적 개념과 통계적 사고방법의 도입을 통해 전자계산기 시스템 분야에서의 응용 능력 배양

    컴퓨터그래픽스(Computer Graphics)

    컴퓨터 그래픽스 분야를 구성하는 렌더링, 애니메이션, 그리고 기하모델링 등의 기본 주제에 관한 이론과 실제를 다루며 대표적인 실시간 3차원 그래픽스 프로그래밍 툴을 사용하여 그래픽스 프로그래밍 기법을 익힌다.

    인공지능 프로그래밍(AI Programming)

    인공지능 및 기계 학습 모델을 개발하기 위한 고급 Python 언어에 대하여 학습하고, 또한 기계학습 모델을 개발하기 위해 요구되는 PyTorch 라이브러리에 대하여 구체적으로 분석, 이해를 통해 신경말 모델을 개발하는 과정을 연습한다.

  • 소프트웨어학부 공통

    운영체제(Operating System)

    운영체제, 특히 다중 프로그래밍 시분할 시스템, 비동기 병행프로세서의 기본개념을 다룬다. 스케쥴링, 메모리 관리 정보의 고유 및 보호 등의 개념을 습득한다.

    컴퓨터네트워크(Computer Networks)

    네트워크의 기본 개념과 네트워크의 구조, TCP/IP 프로토콜 구조, 네트워크, 전송 및 응용 계층 프로토콜들에 관련한 기술 및 원리에 대해 인터넷을 중심으로 학습한다.

    오픈소스 웹소프트웨어(Open Source Web SW)

    웹기반의 소프트웨어를 개발하는데 필요한 데이터 조작 및 처리 방법 등에 대한 프로그램 기법들에 대해 학습을 하며 이를 실제 적용하여 웹기반의 소프트웨어를 개발하는 기법을 학습한다.

    클라우드컴퓨팅(Cloud Computing)

    클라우드컴퓨팅을 활용한 유연하고 확장 가능한 클라우드 서비스를 제공하는 기술을 학습한다. 클라우드의 개념, 서비스 모델, 배포 모델을 포함한 가상화 기술, 컨테이너, 오케스트레이션, 재해복구와 같은 현대적 클라우드 인프라의 핵심요소를 이해하고 실무능력을 배양한다.

    데이터베이스시스템(Database System)

    이 과목에서는 데이터베이스의 기본 개념과 개체-관계(E-R) 다이어그램, 관계형 데이터 모델 및 SQL 문의 사용, 데이터베이스 설계, 데이터베이스 보안 등은 물론 DBMS 구조와 그 기능을 공부한다. 아울러 실제 응용에서 시스템 개발과 웹의 연동 방법 등을 학습한다.

    소프트웨어학부 인공지능전공

    인공지능(Artificial Intelligence)

    인공지능의 성공적인 적용분야 및 목표를 살펴보고, 대표적인 지능적인 문제 해결 기법들, 지식표현 방법 및 추론, 지식기반 시스템, 자연어처리, 컴퓨터 비전, 지능로봇 등에 대해서 학습한다.

    인공지능수학(Mathematics for Artificial Intelligence)

    인공지능을 위한 학습 모델을 구축하기 위해서는 정확하고 논리적인 인간의 사고 방식을 이해해야 한다. 이러한 사고 방식의 표현은 수학적 이론을 기반으로 가능하다. 이 교과목에서는 미분, 선형대수, 선형 회귀, 확률 및 통계 등의 수학 이론을 학습함으로써, 인공지능 구현을 위한 기초 능력을 다진다.

    시스템분석및설계(System Analysis and Design)

    소프트웨어 시스템 개발을 위해 객체지향 개발 방법에 의하여 소프트웨어를 분석하고 설계하기 위한 기본 개념의 이해 및 기법들을 대하여 학습하고, 프로젝트를 통한 문제 분석 및 설계 과정을 진행한다.

    머신러닝(Machine Learning)

    데이터로부터 패턴을 추천하는 기계학습에 대한 핵심적인 원리를 소개한다. 지도학습, 비지도학습, 강화학습의 기본 개념을 소개하며, 주요 기계학습 알고리즘과 딥러닝 기법을 다룬다.

    소프트웨어공학(Software Engineering)

    소프트웨어 공학에 대한 기본적인 개념의 이해와 소프트웨어 개발 과정에서 품질을 향상시키기 위해 요구되는 공학적 활동에 대하여 학습하고, 주어진 문제의 소프트웨어 개발을 위한 프로젝트를 진행한다.

    정보검색(Information Retrieval)

    정보 표현 및 저장 방법, 문헌 질의와 매칭과정, 텍스트 분석, 정보검색 검색효과 측정, 효과성 향상기법 등을 포함한 대량 정보의 조직적인 저장, 관리, 검색, 마이닝 기법에 대한 이론과 방법을 학습한다.

    GAME 개발 이론및실제(GAME Development, Theory and Practice)

    컴퓨터가 만든 가상공간에서 사람의 5감을 활용하여 현실과 동등한 체험을 제공하기 위하여 콘텐츠 설계, 크래픽 랜더링, 모션 트랙킹, 운영 플랫폼 등과 같은 기술이 필요하다. 이 교과목에서는 가상현실, 증간 현실 및 3차원 게임등을 개발하기 위한 이론을 학습하고 실습을 통해 가상 현실에 대한 이해를 높인다.

    소프트웨어학부 소프트웨어전공

    시스템분석및설계(System Analysis and Design)

    소프트웨어 시스템 개발을 위해 객체지향 개발 방법에 의하여 소프트웨어를 분석하고 설계하기 위한 기본 개념의 이해 및 기법들을 대하여 학습하고, 프로젝트를 통한 문제 분석 및 설계 과정을 진행한다.

    컴파일러(Compiler)

    최신 컴파일러를 중심으로 어휘분석, 파싱 및 코드생성 등 일련의 컴파일 과정을 학습한다. 특히 컴퓨터 프로그래밍 언어가 가지고 있는 다양한 특징들을 컴파일 단계에서 어떻게 구현되는 가를 학습한다.

    인공지능(Artificial Intelligence)

    인공지능의 성공적인 적용분야 및 목표를 살펴보고, 대표적인 지능적인 문제 해결 기법들, 지식표현 방법 및 추론, 지식기반 시스템, 자연어처리, 컴퓨터 비전, 지능로봇 등에 대해서 학습한다.

    소프트웨어공학(Software Engineering)

    소프트웨어 공학에 대한 기본적인 개념의 이해와 소프트웨어 개발 과정에서 품질을 향상시키기 위해 요구되는 공학적 활동에 대하여 학습하고, 주어진 문제의 소프트웨어 개발을 위한 프로젝트를 진행한다.

    서버프로그래밍(Server Programming)

    리눅스/유닉스 시스템 상에서 프로그래밍을 위해 필요한 시스템 구축부터 셸의 사용법과 시스템 API를 활용한 프로그래밍 방법을 학습하고, 이를 활용하여 실질적인 서버 프로그래밍 능력을 배양하는 것을 목표로 한다.

    정보보안(Information Security)

    정보보호 기초 이론 학습과 네트워크 보안 및 시스템 보안의 기본 개념을 이해하고 안전한 정보 시스템 구축 및 안전한 네트워크 서비스를 제공할 수 있는 방법을 습득한다.

    머신러닝(Machine Learning)

    데이터로부터 패턴을 추천하는 기계학습에 대한 핵심적인 원리를 소개한다. 지도학습, 비지도학습, 강화학습의 기본 개념을 소개하며, 주요 기계학습 알고리즘과 딥러닝 기법을 다룬다.

  • 소프트웨어학부 공통

    캡스톤 디자인(Capstone Design)

    컴퓨터과학의 기본 이론을 바탕으로 팀을 구성하여 주제를 선정하고, 프로젝트 진행 방법을 계획하여, 최종 결과물을 도출하기까지의 프로세스를 체계적으로 준수하면서 팀 기반의 프로젝트 수행을 경험한다.

    피지컬AI시스템(Physical AI Systems)

    인공지능 기술과 물리적 시스템을 융합한 피지컬 AI(Physical AI)의 개념과 활용 방법을 학습하는 실습 중심 교과목이다. 학생들은 센서, IoT 디바이스, 로봇 및 임베디드 시스템과 연계된 AI 기술을 이해하고, 데이터를 수집·분석하여 실제 환경에서 동작하는 지능형 시스템을 설계·구현하는 역량을 함양한다. 또한 컴퓨터 비전, 생성형 AI, 자율제어 기술 등을 활용하여 다양한 피지컬 AI 응용 사례를 실습하고 프로젝트를 수행한다.

    창업산학초청세미나Ⅰ(Entrepreneurship and Educational-Industrial Special SeminarⅠ)

    산업체와 학교의 교류를 통한 기업가정신, 최신 IT기술 동향 및 산업체의 경영철학과 경영방법을 습득한다.

    알고리즘과문제해결기법Ⅰ(Algorithm-based Problem Solving TechniqueⅠ)

    사회와 산업 분야에서 발생하는 문제를 소프트웨어 기술로 해결하기 위한 방안을 모색하고, 이를 해결하기 위한 문제 분석, 알고리즘 개발, 그리고 코딩을 통한 솔루션 개발 과정을 학습하여 문제해결 능력을 함양한다.

    캡스톤 디자인Ⅱ(Capstone DesignⅡ)

    학부에서 배운 지식을 바탕으로 컴퓨터과학 분야의 임의의 연구 주제를 선택하여 연구계획서 작성부터 완료보고서의 작성 및 발표까지 연구 과제를 수행한다.

    창업산학초청세미나Ⅱ(Entrepreneurship and Educational-Industrial Special SeminarⅡ)

    산업체와 학교의 교류를 통한 기업가 정신, 최신 IT기술 동향 및 산업체의 경영철학과 경영방법을 습득한다.

    알고리즘과문제해결기법Ⅱ(Algorithm-based Problem Solving TechniqueⅡ)

    소프트웨어 및 인공지능 분야의 개발 현장에서 요구되는 문제해결 전략과 알고리즘 설계 및 구현 방법을 학습한다. 현실 문제 해결에 필요한 휴리스틱 알고리즘에 대해 이해하고 활용하는 방법을 학습한다. 제시한 문제해결 방법을 여러 가지 대안과 체계적으로 비교하고 효과적으로 적용하는 방법을 연습한다.

    인턴십Ⅰ,Ⅱ,Ⅲ,IV(Cooperative EducationⅠ,Ⅱ,Ⅲ,IV)

    학교에서 습득한 전공기술을 산업현장 기술과의 접목을 통하여 현장적응 능력을 배양하고 대학과 지역 산업체간의 유기적인 산학협동 관계를 정립한다.

    실무프로젝트Ⅰ,Ⅱ(Practical Software ProjectⅠ,Ⅱ)

    설계 프로젝트 수행 경험을 바탕으로 보다 실질적이고 실무 중심적 과제 수행의 관점에서 학습자 주도적으로 학습을 진행한다. 이를 위하여 적용 현장의 특성 분석을 바탕으로 IT 최신 기술의 사용 능력과 실무 현장에서의 요구사항분석, 다양한 소프트웨어 설게 방법론의 활용과 프로젝트 관리 능력 배양의 관점에서 과제를 수행한다.

    소프트웨어학부 인공지능전공

    컴퓨터비전(Computer vision)

    이 교과목에서는 인간의 시각을 컴퓨터에 구현하기 위한 이론을 학습한다. 이를 위해 영상 처리, 특징 추출, 모션 인식, 3차원 비전, 기계학습 등의 기술에 대한 원리 이해와 OpenCV를 이용한 프로그래밍 과정을 학습한다.

    데이터사이언스(Data Science)

    본 교과목에서는 데이터 분석을 통해 데이터 발생 패턴을 도출하고, 이를 통해 유용한 정보를 발견하는 능력을 향상시키는데 주안점이 있다. 이를 위해 데이터 분석 프로세스, 가설 수립 및 유의성 검증, 탐색적 데이터 분석 등의 기법을 학습하고, 실례 적용을 통해 응용 능력을 향상시킨다.

    자연어처리와 거대언어모델(National Language Processing and LLM)

    사람이 사용하는 언어를 컴퓨터가 이해하여 지능적으로 처리하기 위한 다양한 알고리즘을 학습한다. 특히 웹 등에서 비정형 데이터로 존재하는 자연언어 텍스트를 처리하기 위해 단어 패턴 추출, 텍스트 정규화, 품사 태깅, 의미 모호성 해소, 부분 파싱, 개체명 인식, 관계 추출, 문서 분류 등에 대해 학습하고 이를 구현 및 활용하는 방법을 익힌다.

    생성형 인공지능(Generative AI)

    기존의 다양한 데이터 학습을 통해, 텍스트, 오디오, 동영상 등을 생성하는 인공지능 모델에 대하여 학습한다. 다양한 프롬프트를 통해 인공지능 학습 과정을 추척해보고, 올바른 학습의 과정과 활용 과정 등에 대한 분석을 수행한다.

    딥러닝이론및실습(Deep learning Theory and Exercise)

    딥 러닝은 인공신경망을 기반으로 하는 기계학습의 유형이지만, 자율적 학습과 지능적 의사결정을 필요로 한다. 이 교과목에서는 인공신경망에 대한 이해와 신경망 구성 방법 등의 학습을 통해 심도있는 기계학습에 대하여 공부하고 예제를 통한 적용 능력을 향상시킨다.

    인공지능시스템응용(AI System Application)

    다양한 영역에서 인공지능 및 기계학습의 기술이 적용되고 있다. 본 교과목에서는 인공지능이 적용되는 특정 사례를 심도있게 분석하고, 새로운 문제 정의를 통해 인공지능 기술을 적용하는 프로젝트 기반 학습(문제기반 학습)을 진행한다.

    소프트웨어학부 소프트웨어전공

    빅데이터시스템설계(Big Data System Design)

    빅데이터시스템에서 데이터 전처리와 플랫폼, 그리고 정형 및 비정형의 빅데이터 수집, 저장, 분석과 탐색, 공유, 전파, 시각화, 질의, 갱신 등의 방법에 대한 이론과 실무를 학습한다. 또한 빅데이터시스템을 위한 동시성 제어와 회복기법, 보안정책을 학습한다.

    병렬컴퓨팅(Parallel Computing)

    크고 복잡한 문제를 해결하기 위해 병렬컴퓨팅 환경이 요구되고 있다. 병렬컴퓨팅환경을 구성하는 다양한 시스템의 개념을 이해하고 시스템을 활용한 프로그래밍 기법에 대해 학습한다. Pthread, OpenMP, MPI, HTC, GPGPU와 같은 고전적 방식의 처리부터 양자컴퓨팅을 활용한 방법까지 다양하고 도전적인 문제를 병렬컴퓨팅을 통해 해결할 수 있는 능력을 배양한다.

    소프트웨어 테스팅(Software Testing)

    소프트웨어의 결함은 심각한 사고를 유발할 수 있는 원인이다. 따라서 소프트웨어의 신뢰성을 높이기 위하여 개발된 소프트웨어의 정확성을 검증하는 것은 매우 중요하다. 이 교과목에서는 소프트웨어 테스팅 절차, 테스트 데이터 생성 기법, 테스트 결과 해석 방법 등을 학습하고, 인공지능을 결합한 진보된 테스트 기법에 대하여 이해한다.

    정보·컴퓨터교재연구및지도법(Computer Instructional Resources and Methods)

    컴퓨터 교과지도에 필요한 능력을 배양하고 컴퓨터와 그 응용에 관하여 지식을 습득하게 하며 기초적인 프로그래밍 실무를 익힐 수 있는 교재를 연구한다.

    빅데이터분석시각화(Big Data Analysis and Visualization)

    이 강좌에서 수집된 데이터를 보다 쉽게 이해할 수 있도록 시각화는 대표적인 방법을 공부한다. 공부할 시각화 기법으로는 시간 시각화, 연계 시각화, 비교시각화, 분포시각화, 공간시각화 등이 있다. 머신 러닝 기법을 이용한 데이터 분석 결과를 보다 쉽게 볼 수 있는 시각화 기법도 소개한다.

    피지컬AI모델링과시뮬레이션(Physical AI Modeling and Simulation)

    피지컬 AI 시스템 개발을 위한 모델링 및 시뮬레이션 기법을 학습하는 실습 중심 교과목이다. 학생들은 디지털 트윈(Digital Twin), 물리 기반 모델링, 시뮬레이션 환경 구축 및 AI 기반 제어 기법을 이해하고, 가상 환경에서 실제 시스템을 구현·검증하는 과정을 경험한다. 또한 로봇, 자율주행, 스마트팩토리 등 다양한 산업 분야 사례를 바탕으로 피지컬 AI 시스템의 설계·분석·최적화 역량을 함양한다.

    소프트웨어시스템응용(Software System Application)

    이 교과목에서는 빅데이터 처리, 클라우드 컴퓨팅 등과 같은 최근의 이슈를 기반으로 하는 응용 시스템의 사례 분석을 통해 시스템 특성을 이해하고, 해당 기술을 이용하여 기존 시스테을 새롭게 설계하고 확장하는 과정을 학습한다. 부가가치를 높일 수 있는 응용 영역의 확대에 주안점을 둔다.

    양자컴퓨팅(Quantum Computing)

    양자역학의 원리를 기반으로 한 새로운 컴퓨팅 패러다임을 이해하고 다양한 양자정보기술에 대해 알아본다. 큐비트, 중첩, 얽힘, 양자게이트와 같은 핵심 개념을 다루고, 대표적인 양자 알고리즘과 최신 양자컴퓨팅 기술에 대해 학습한다.

    정보·컴퓨터논리 및 논술(Logic and Essay Writing in Computer Education)

    컴퓨터 교과를 중심으로 학생의 새로운 창조적 아이디어로 표현하고, 아이디어의 타당성과 정당성을 체계적으로 전개하는 능력을 함양하도록 한다. 아울러 컴퓨터 논리에 대한 관련 자료의 탐색을 수행하여 그 결과를 정리하고 발표 및 토론하는 방식으로 중등 교육 현장에서 수요자 중심교육을 실시할 수 있도록 한다. 궁극적으로 컴퓨터 교과 교사로서의 기본 자질인 스스로 문제를 해결할 수 있는 창조적 사고력을 기반으로 지식사회가 필요로 하는 논리적 사고 능력을 습득한다.

    정보·컴퓨터교육론(Computer Subject Teaching)

    컴퓨터에 관한 교육과 컴퓨터를 이용한 교육의 이론과 실제를 학습한다. 컴퓨터 교과의 역사적 배경, 컴퓨터 교과교육의 목표, 중·고등학교 교육과정의 분석 등 중등과정의 정보·컴퓨터 교육의 전반에 관하여 학습한다.