컴퓨터정보공학부에서는 스마트폰 등에 사용되는 임베디드 컴퓨팅 시스템의 하드웨어, 소프트웨어 및 정보통신 응용분야에 대한 융합적인 이론과 실습이 병행된 교육을 통하여 실용적이고 창의적이며 컴퓨터공학 분야의 연구와 개발업무를 선도할 수 있는 국제적인 경쟁력을 갖춘 전문인을 양성하고 있습니다. 또한 공학교육인증제도를 도입하여 발전적이며 체계적인 교육이 이루어지도록 하고 있습니다.
교과목 안내
객체지향프로그래밍실습 Object Oriented Programming Lab
객체지향 프로그래밍 실습 : 객체, 클래스, 인스턴스, 상속, 다형성 등 자료처리 과목에서 습득한 객체 지향 개념을 C++를 사용해서 실습한다. 또한 자바 애플릿으로 동적, 상호작용적인 웹프리젠테이션을 생성하는 방법을 실제 구현을 통하여 배운다. 이론적인 지식은 고급프로그래밍과목에서 습득한다.
컴퓨터공학기초실험1 Basic Computer Engineering Lab1
선형소자, 회로 성분들을 직병렬로 구성한 각종 회로의 특성을 분석. 다양한 회로 해석법등에 대해서 학습한다. 디지털의 개념과 부울대수학의 기초를 배우며, 게이트 회로 및 논리회로의 구성방법, 플립플롭, 레지스터, 계수기 및 연산기 등을 공부한다. 디지털의 원리를 실험을 통하여 이해한다.
디지털논리회로1 Digital Logic Circuits1
레지스터나 메모리, 카운터, 제어논리 등에서 사용되는 플립플롭에 대해 설명하고, 카운트를 가능하도록 하는 각종의 카운터를 플립플롭을 이용하여 구성하는 방법과 데이터 전송과 저장에서 사용되는 시프트 레지스터, 많은 데이터를 저장할 수 있는 메모리, 두 개의 디지털 시스템 사이에 데이터를 저장하기 위한 인터페이스, 각종의 2진 산술연산과 마이크로 프로세서, 컴퓨터의 기본구성 회로에 대한 이해를 통해 컴퓨터 동작의 기본을 이해하며 이를 응용하여 각종 디지털 회로를 구현할 수 있는 기초지식을 쌓는 것을 그 목적으로 한다.
회로이론 Electric Circuit Theory
대부분의 공학 시스템은 하나의 구성요소로서 전기회로를 사용한다. 이들 회로들은 그 시스템의 동작과 사람 또는 시스템과의 상호작용에 있어서 필수적이다. 필터, 전력, 전동기, 전자공학 또는 제어 이론에 대하여 배우기 위해서는 먼저 회로이론에 관한 것을 알고 있어야 한다. 회로의 기초개념, 파형, 회로방정식, 회로의 응답 및 정리, 가변회로 및 공진회로의 해석, 결합회로, 비정현파와 푸리에 급수 및 라플라스 변환, 다상회로에 관한 내용을 다룬다.
객체지향프로그래밍설계 Object Oriented Programming
C++와 JAVA 등의 객체 지향 언어를 배우고 이를 통하여 객체 지향 개념(클래스, 인스턴스, 객체, 상속, 다형성, Encapsulation 등)을 익힌다. 고급프로그래밍 실습과목에서 작성하는 프로그램을 완성하기 위해 필수적인 이론을 배운다.
컴퓨터공학기초실험2 Basic Computer Engineering Lab2
반도체 소자인 다이오드의 특성을 확인하고 트랜지스터, 증폭기 OP-AMP의 회로동작과 특성을 이해하고 그에 대한 실험을 계획 수립할 수있는 능력을 배양한다. 또 주어진 자료를 바탕으로 회로를 설계하여 max+plus라는 시물레이션 툴을 이용하여 시뮬레이션하고 FPGA KIT에 다운로드하여 설계한 회로가 실제 반도체 칩 상에서 어떻게 동작되는지 이해하고 분석할 수 있는 능력을 배양한다. 본 교과목을 이수함으로써 하드웨어적인 동작을 이해하고 직접 설계한 회로를 시뮬레이션 할 수 있는 능력을 갖추게 되어 대학원 및 산업 현장에서 발생하는 문제들을 보다 적극적으로 해결할 수있는 능력을 키워주는 과목이다.
디지털논리회로2 Digital Logic Circuits2
디지털 논리소자에 대한 지식과 조합회로설계능력을 바탕으로 플리플롭과 계수기 등의 순차논리회를 소개한다. 또한 동기식과 비동기식 순차회로의 해석과 설계방법을 다루며, 조합논리회로 및 순차논리회로의 해석과 회로의 간소화에 의한 최적설계에 관하여 강의한다. 종합적인 논리회로에대한 이해를 통해 다양한 응용의 디지털 시스템에 대한 설계능력을 배양한다.
어셈블리프로그램설계및실습 Assembly Language Programming
본 과목은 High Level 프로그래밍으로 다루기 힘든 기계 종속적인 제어를 통해 PC를 보다 폭넓게 이해하고 활용하기 위한 과목이다. 현재 대부분의 PC의 CPU로 이용되고 있는 Intel 계열 마이크로프로세서의 구조와 어셈블리 언어를 이용한 프로그래밍을 학습 하면서, 컴퓨터의 내부 구조와 동작원리, 데이터의 표현방법 및 처리방법 등을 학습하고, 하드웨어와 소프트웨어의 영역을 공유하는 관련분야로의 응용력을 향상시킨다.
전자회로 Electronic Circuit
우선 반도체 물질의 특성에 대해서 소개하고 반도체 소자(다이오드, 트랜지스터)의 구조 및 동작에 관하여 설명한다. 또한 비선형 반도체 소자와 선형 RLC 소자들이 결합된 아날로그/디지털 전자회로의 분석및 설계 방법에 대해서 강의한다. 비선형 소자를 포함한 아날로그 전자회로의 선형 동작 조건을 설계하는 방법과 설정된 동작조건에서 각종 선형 증폭기를 설계하는 내용을 다루며, 디지털 논리 회로의 설계방법과 동작 특성에 대해서 알아본다.
데이터구조설계 Data Structures Design
본 과목은 고급 프로그래밍의 기본이 되는 데이터 구조의 정의 및 개념을 숙지하고 다양한 데이터 구조의 종류를 공부함으로써 실제적인 프로그래밍 기법들을 익힌다. 익힌 여러 데이터 구조들을 실제적으로 설계 및 구현함으로써 응용 및 설계 능력을 비양하며 설계한 데이터 구조를 복잡도 분석 기술을 이용하여 분석함으로써 그 성능을 측정하고 비교한다.
컴퓨터구조실험 Computer Architecture Lab
컴퓨터 구조 과목과 연계하여 컴퓨터에서의 data의 이동 방식 및 기억 형태, instruction Set Architecture의 구성, 정수 연산, 논리적 연산 처리, 분기 등을 강의하고 이를 하드웨어 설계언어인 verilog를 이용하여 실험함으로써 구처적인 컴퓨터 데이터 패스와 컨트롤 로직을 설계할수있는 능력을 배양한다.
시스템프로그래밍실습 System Programming Lab
유닉스/리눅스 기반의 API를 이용한 고급 프로그래밍 기법을 습득한다. 파일과 디렉토리, 파일 입출력, 표준 입출력 라이브러리, 소켓 프로그래밍, 쓰레드 등의 사용을 통해 유닉스/리눅스의 내부 구조 및 POSIX 기반의 프로그래밍 기법을 배운다.
컴퓨터구조 Computer Architecture
이 과목에서는 간단한 RISC 프로세서의 예를 통해 기본 컴퓨터 시스템 아키텍처 및 설계 개념을 학습한다. 싱글 사이클 프로세서, 멀티 사이클 프로세서, 파이프 라인 프로세서 및 다중 프로세서를 포함한 여러 마이크로 프로세서 아키텍처의 구성과 동작을 배운다. 이 과정은 또한 범용 컴퓨팅 시스템의 세 가지 기본 빌딩 블록 인 프로세서, 메모리 및 주변 장치에 대한 지식을 제공한다.
시스템프로그래밍 System Programming
유닉스 운영체제의 기본 구성 및 유닉스 기반의 시스템 프로그래밍 기법을 익힌다. 유닉스 내부 구조의 이해를 통해 프로세스 관리, 파일 및 디렉토리 관리, 프로세스 간 통신, 소케 등의 개요 및 프로그래밍 방법을 학습한다.
신호및시스템 Signal and System
이 과정은 신호와 시스템의 해석에 필요한 이론적 수학적 기초부터 선형 시스템의 회로 및 컴퓨터 알고리즘 응용에 이르기까지 신호와 시스템의 시간 영역 응답과 주파수 영역 응답에 기반한 연속시간 영역과 이산시간 영역에서의 분석의 기본 사항을 다룬다.
컴퓨터네트워크 Computer Network
21세기 정보통신기술의 근간이 되는 컴퓨터 네트워크의 소개와 다양한 네트워크 기술들의 종류를 살펴보며 물리 계층부터 최상의 응용 계층까지 컴퓨터 네트워크를 구성하는 각 계층에 대한 이해를 목적으로 한다. 이중에서도 네트워크 계층과 전송계층에 관하여 심화적으로 다루며 이의 응용 분야에 대하여 살펴본다. 또한 최근 그 중요성이 부각되고 있는 멀티미디어 네트워크와 관련된 이슈들에 관하여 논의한다.
운영체제실습 Operating system Lab
본 교과목에서는 Linux 운영체제의 커널을 분석하고 주요 커널 서브 시스템을 구현하는 과정을 통해 운영체제 내부 구조를 이해하고 운영체제의 설계 방법을 익힌다.
마이크로프로세서 Microprocessor
임베디드 시스템의 핵심부품인 임베디드프로세서의 구조와 동작원리를 ARM계열 프로세서를 이용하여 학습한다. 또한 임베디드 시스템의 내부에서 동작하는 프로세서의 구성 요소, 프로그래밍 모델, 주변기기와의 다양한 통신방법 등에 대하여 배우고 펌웨어 등의 임베디드 프로그램에 적용하는 방법을 배운다.
운영체제 Operating Systems
운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어다. 또한 운영체제는 응용 프로그램을 수행할 수 있는 기반을 제공하여 컴퓨터 사용자가 컴퓨터 시스템을 사용할 수 있도록 해주는 핵심적인 역할을 한다. 본 교과목에서는 이러한 역할을 수행하는 운영체제의 개념을 이해한다.
디지털신호처리 Digital Signal Processing
디지털 신호처리의 기본개념을 설명하고 선형 시불변 시스템에서 이산신호에 대한 개념과 여러 가지 성질을 강의한다. 다음에는 신호처리를 위한 고속 퓨리에 변환 등 주파수 해석 알고리즘을 소개하고, 디지털 필터의 개념과 IIR필터의 설계에 관하여 강의한다.
데이터통신 Data Communication
데이터통신의 기본 이론과 응용에 대하여 다루며, 특히 통신망, 통신프로토콜, 전송매체 및 전송방식, 다중화, 부호화 및 오류제어 방식 등을 상세히 다룬다. 또한 데이터 링크 프로토콜과 근거리 통신망을 비롯한 다양한 네트워크 기술의 개념과 실제를 다룬다.
알고리즘 Algorithm
알고리즘 분석을 위한 수학적 도구들을 배우고 다양한 알고리즘 기법의 설계 및 복잡도 분석을 다룬다. 학습할 알고리즘 기법으로는 Divide and Conquer, Dynamic Programming, Greedy Method, Backtracking, Branch and Bound 기법 등이 포함된다. 다양한 예를 중심으로 알고리즘 설계 능력 및 분석 능력을 향상시킨다
임베디드시스템S/W설계 Embedded System S/W Design
교차 개발 환경 구축, 리눅스 커널 분석, 디바이스 드라이버 작성 등을 통해 임베디드 소프트웨어 개발 과정에 대해 이해한다.
무선이동네트워크및5G Wireless Mobile Network and 5G
본 교과목은 21세기 정보통신 기술의 화두로 떠오른 무선 이동 네트워크의 전반적인 내용을 다루는 과목이다. 무선 링크, 무선 네트워크, 무선 랜, 2세대, 3세대, 4세대, 5세대 이동 통신 네트워크를 소개하고 관련 최신 연구 동향을 살펴본다.
소프트웨어공학 Software Engineering
소프트웨어 공학의 기본 개념, 개발 프로세스, 애자일 방법론, 요구사항 분석, 시스템 모델링, 아키텍처 설계, 소프트웨어 설계 및 구현, 테스팅, 소프트웨어 진화 등에 대해 학습한다. 또한 애자일 방법론과 분산 버전 관리 시스템인 git을 이용하여 웹 응용을 개발하는 팀 프로젝트를 통해 실무 능력을 배양한다.
Human Computer Interaction
최근 전자/전기/컴퓨터 산업에서 인간의 편의성에 대한 요구가 크게 증가하고 있다. 이에 본 과목에서는 인간과 전자기기 사이에 가능한 정보 소통 방안에 대하여 공부하고, 이를 실제 시스템으로 구현하기 위한 인터페이스 설계 방법 및 응용 기술에 대하여 다룬다.
데이터베이스및데이터시각화 Database and Data Visualization
데이터베이스 기초 개념, 데이터 모델, SQL, 데이터베이스 설계 이론, 트랜잭션, 동시성 제어, 인덱싱 및 해싱, 데이터베이스 보안 등에 대해서 학습한다. 또한 데이터 시각화 응용을 개발하는 팀 프로젝트를 통하여 실무 능력을 배양한다.
지능IOT특론 Advanced Topic on AI & IoT
본 과목은 전통적인 컴퓨터공학 기본 전공 교과목에 포함되지 않는 인공지능/머신러닝 및 IoT 분야 최신 기술을 소개하는 것을 목적으로 한다. 해당하는 분야의 최신 기술에 관한 주제를 결정하고, 이에 대한 시장 동향, 기술 동향, 기초 기술과 응용 기술에 대하여 공부한다.
산학협력캡스톤설계1 Industry-Academy Collaboration Capstone Design 1
컴퓨터공학 관련 설계 프로젝트를 수행하는 종합설계 과목으로 학생들의 졸업작품 지도를 병행한다.
산학협력캡스톤설계2 Industry-Academy Collaboration Capstone Design 2
컴퓨터 분야의 HW/SW 작품을 직접 기획/제안/설계/구현/평가/발표/전시 등의 전 과정을 분야별로 학과교수의 지도하에 직접 진행하는 것을 목표로 한다.
컴퓨터공학입문세미나 Seminar for Computer Engineering Beginners
신입생들에게 컴퓨터공학의 전반적인 내용을 소개하고, 컴퓨터공학자로서 갖추어야 할 기본 소 양을 배양하기 위한 과목이다. 컴퓨터정보공학부 소속 연구실 소개를 통해 컴퓨터공학 분야에 대한 이해를 높이고 지도교수 중심의 행사참여를 통해 학과에 대한 소속감을 높인다.
머신러닝 Machine Learning
본 과정은 인공지능 엔진 중 하나인 머신 러닝 알고리즘에 대해 소개하고, 대표적인 알고리즘 몇 가지를 소개하는 과목이다. 특히 통계적인 접근과 뇌신경 모델을 기반한 신경회로망 알고리즘을 배우고 그 응용 예를 공부함으로써 실무 능력 또한 배양한다.
오픈소스소프트웨어설계및실습 Open Source Software Design and Lab
공개 소프트웨어 라이선스 및 개발과정을 학습한다. 또한 공개된 소프트웨어 개발 툴을 이용한 소프트웨어 개발과정을 학습한다.
소프트웨어프로젝트1 Software Project 1
데이터구조를 활용하는 소프트웨어 프로젝트를 C/C++로 구현하며 팀단위 소프트웨어 설계 과정을 학습하고 개발 툴의 활용을 익힌다.
소프트웨어프로젝트2 Software Project 2
학교 뿐 아니라 산업체 현장에서 요구사항을 수집하여 대규모 컴퓨터공학 관련 설계 프로젝트를 수행하는 종합설계 과목.
GPU컴퓨팅 GPU Computing
Graphic processing unit (GPU)의 구조와 특징을 학습한다. GPU는 많은 수의 작은 processor core로 구성되어 있기 때문에 대량의 병렬 컴퓨팅이 필요한 신호처리, 머신러닝 등의 알고리즘 처리에 효과적이다. GPU 컴퓨팅과 관련한 다양한 하드웨어 및 소프트웨어 측면의 특징을 논의한다.
데이터구조실습 Data Structure Lab
데이터구조설계에서 강의하는 이론내용을 Linux에서 C++언어를 사용하여 구현함으로써 실제 프로그래밍 능력을 갖추도록 한다. 다양한 자료구조와 알고리즘을 구현하는 실무적 대형 프로젝트를 3 ~ 4건 실습하며 프로젝트 수행에 필요한 지식도 강의한다.
하드웨어소프트웨어통합설계 Hardware-Software Integration Design
하드웨어와 소프트웨어의 통합 설계를 위한 시스템 설계 방법, 이를 검증하기 위한 방법 등을 배운다. 하드웨어와 소프트웨어의 통합 설계를 위하여 SoC(System on Chip) 개발 플랫폼 등에 대해서도 살펴보며, SoC Design IP의 하드웨어 설계 및 소프트웨어를 이용한 주변장치 제어 등에 대해서도 학습하고자 한다.
컴퓨터비젼 Computer Vision
인공지능 기반 컴퓨터비젼 알고리즘 설계 및 구현을 위한 기초 영상처리 이론 및 인공지능 이론을 학습하고 관련 실습을 수행한다.
시스템반도체설계및응용 System Semiconductor Design and Application
본 수업에서는 삼성전자/하이닉스 등 국내 반도체 기업에서 요구하는 시스템반도체설계기술에 대한 전공응용 교육을 진행한다. VLSI 설계의 기초 개념과 더불어, 수요가 급증하고있는 인공지능/머신러닝 하드웨어 설계능력을 함양하고, 최신 시스템반도체 설계 관련 이슈를 학습한다.
인공지능 Artificial Intelligence
본 수업에서는 인공지능을 이해하기 위한 수학 및 통계적인 기초를 다루며, 분류 및 예측을 위한 인공지능 알고리즘의 전통적인 방법과 이를 바탕으로 향상된 최신 딥러닝 알고리즘을 배운다. 이론 강의와 함께 컴퓨터 실습을 통해 이론의 이해도를 높이고 알고리즘 활용법에 대해 익힌다.