Home  >  대학  >  교과과정  >  교과목 해설

교과목 해설

컴퓨터공학개론 (Introduction to Computer Engineering) 3-3-0-0-0
본 강좌에는 컴퓨터공학에 입문하는 학부생을 대상으로 하드웨어와 소프트웨어의 내부 구조와 개념에 대한 이해를 하도록 목표한다. 이를 위하여 디지털과 컴퓨터에 대한 기본적인 지식을 획득한후, 논리회로, CPU/ALU, 레지스터/클럭, 인스트럭션, 프로그래밍 언어의 종류와 특징, 변수와 컴퓨터메모리, 포인터, 함수와 스택/힙 구조, 선점/비선점 운영체제, 프로세스와 스레드, 스케쥴링 등의 개념을 이해한다.
객체지향프로그래밍 (Object-Oriented Programming) 3-2-0-2-0
객체지향 프로그래밍 기초에서 배운 데이터 형, 입출력, 선택문, 반복문, 함수, 배열, 포인터, 문자열 등을 기본으로 하여 클래스, 함수 오버로딩, 연산자 오버로딩, 상속, 가상함수, 템플릿, 네임스페이스 등의 고급 객체지향 프로그래밍 기법을 배우고 이를 실습을 통해 익힌다.
확률 및 랜덤변수 (Probability and Random Variables )3-3-0-0-0
전산학에서 응용할 수 있는 제반 기초 이론을 습득하고 실제적인 응용 확률통계와 통계 소프트웨어 패키지를 사용하는 방법을 익힌다.
기초공학설계 (Fundamental Engineering Design) 3-0-0-0-3
필요성 인식과 여러 설계 요소의 정의로부터 도출되는 기초적인 공학설계과제에 대한 이해와 모든 공학적요소와 해답에 영향을 주는 비공학적 요소를 포함하는 공학문제에 대한 학생들의 사고판단 개념을 넓혀줄 수 있도록 하는 것이 본 교과목의 목표이며, 이를 달성하기 위하여 학생들이 개방형 개발과제를 수행할 수 있도록 그와 관련된 강의, 사례연구 및 과제수행을 순차적으로 진행시켜 교육한다.
문제 해결 (Problem Solving) 3-2-0-2-0
다양한 유형의 문제 해결을 위한 기본 이론들을 알고리즘 개발을 통해 습득한다. 또한 개발한 알고리즘을 컴퓨터 프로그램으로 구현함으로써 프로그래밍 실력을 배양한다.
논리회로 (Digital Circuit)3-3-0-0-0
디지털 논리회로의 기본요소인 논리소자 특성 이해 및 디지털 논리회로(조합회로, 순서회로)에 대한 설계방법을 익혀 실제적 응용 디지털 회로설계와 컴퓨터의 기본구조 설계에 관해 학습한다.
자료구조 (Data Structures)3-1-0-2-1
자료 추상화, 배열, 리스트, 스택, 큐, 트리, 그래프 등의 자료구조와 그러한 자료구조를 활용할 수 있는 알고리즘을 배운다. 이 과목을 통해서 학생들은 전산학의 지식을 확대하고 프로그래밍 기술을 향상시킬 수 있다. (선수과목: 고급객체지향프로그래밍)
컴퓨터 구조 (Computer Architecture)3-3-0-0-0
컴퓨터 구조 설계의 기초 이론으로써 기본적인 컴퓨터 시스템의 구성과 설계에 대한 개념과 기법을 소개한다. 데이터의 표시방법, 레지스터의 전송과 마이크로 동작, 컴퓨터 소프트웨어를 포함하여 연산장치, 제어장치, 입출력장치의 구조와 설계기법을 학습함으로써 컴퓨터를 설계할 수 있는 지식을 습득하고 명령포맷,CPU 내부구조, 하드와이어드 제어에 의한 제어 유닛 설계, 마이크로프로그램 제어에 의한 제어 유닛 설계, 인터럽트, DMA등에 의한 I/O 처리 기술을 배운다. 이 과목을 수강하기 전에 논리회로를 수강할 것을 권고한다.(선수과목: B07335 논리회로)
이산구조 (Discrete Structures)3-3-0-0-0
수학적인 관점에서 논리적인 디지털 컴퓨터 구조를 이해하기 위해 형식논리, 알고리즘 증명, 재귀, 집합, 순열과 조합, 이항정리, 이진관계, 함수 및 행렬, 그래프, 트리, 그래프 알고리즘, 프로그램의 검증, 부울 대수와 컴퓨터 논리 등에 관하여 배운다.
운영체제 (Computer Operating System)3-3-0-0-0
운영체제는 사용자 프로그램의 수행과 주변장치나 기억공간과 같은 다양한 자원 할당을 감시한다. 이 과목에서는 멀티프로그래밍, 시분할, 그리고 비동기적 프로세서의 개념을 소개한다. 특히 동기화, 스케쥴링, 교착, 메모리관리, 가상메모리관리, 파일 시스템, 디스크 스케쥴링, 정보공유, 보호/보안 및 분산운영체제와 같은 주제를 중점적으로 학습한다.
시스템분석 및 설계 (Systems Analysis and Design)3-2-0-0-1
시스템 개발과정을 소개하며, 소프트웨어 시스템 분석 및 설계 시에 확장성과 재사용을 용이하게 하기 위한 구조적 방법과 객체 지향적 방법을 익힌다.(선수과목: B07335 논리회로)
컴퓨터네트워크 (Computer Networks)3-3-0-0-0
컴퓨터 네트워크를 구성하는 각종 네트워킹 장치들의 계층 모델, 특성, 동작 방법, 그리고 운용 기술에 대하여 학습한다. 또한 이들 장치를 상호 연결한 인터네트워크의 구성과 동작 방법에 대하여 소개한다. 본 과목의 수강을 통하여 컴퓨터 네트워크의 구성과 동작 방법에 대하여 소개한다. 본 과목의 수강을 통하여 컴퓨터 네트워크의 7계층 구조와 인터넷 4계층 구조를 이해할 수 있고, 간단한 LAN (Local Area Network)을 설계할 수 있으며, 계층 모델을 기반으로 한 컴퓨터 네트워크의 이론적 이해 및 분석력을 함양함으로써 컴퓨터 네트워킹 개념에 대한 이론과 실용 기술을 체득할 수 있다. (선수과목: B07335 논리회로)
윈도우즈프로그래밍 (Windows Programming)3-2-0-2-0
본 과목은 Windows 시스템의 구조와 관련 있는 프로그래밍 기술을 익히는 과목으로 Windows API (Application Programming Interface) 함수, DLL (Dynamic Linking Library) 함수 및 OLE (Object Linking and Embedding) 객체를 다루는 Windows 시스템 함수들을 사용하는 기법을 소개한다. (선수과목: 고급객체지향프로그래밍)
신호와시스템 (Signals and Systems)3-2-0-2-0
본 과목은 Windows 시스템의 구조와 관련 있는 프로그래밍 기술을 익히는 과목으로 Windows API (Application Programming Interface) 함수, DLL (Dynamic Linking Library) 함수 및 OLE (Object Linking and Embedding) 객체를 다루는 Windows 시스템 함수들을 사용하는 기법을 소개한다. (선수과목: 고급객체지향프로그래밍)
멀티미디어시스템 (Multimedia System)3-2-0-0-1
멀티미디어의 정의 및 기본 개념, 멀티미디어 시스템 요구사항과 기술동향, 코딩과 압축, 전송기술을 배운다. 그리고 멀티미디어 시스템 설계 시 필요한 기술 등 응용 방향을 제시하며 실습을 수행한다.
소프트웨어공학 (Software engineering)3-3-0-0-0
소프트웨어 공학 분야는 프로그램이 방대하고, 오랜 기간 동안 많은 프로그래머들이 참여하는 경우 발생되는 문제를 다룬다. 본 강좌에서 학습하는 분야는 프로그래밍 프로젝트의 설계와 구성, 시험과 프로그램 신뢰도, 소프트웨어 비용의 성격과 발생원인 인지, 여러 프로그래머간의 협조, 사용자 친화적 인터페이스 설계 및 문서화 등이다. (선수과목: B29047 자료구조)
알고리즘 분석 (Algorithm Analysis)3-3-0-0-0
알고리즘의 기본적인 이해를 하고 대표적인 알고리즘의 형태를 배운다. 알고리즘 방법을 divide-and-conquer, dynamic programming, greedy algorithms, branch-and-bound 등으로 분류하고, 각각의 특성을 이해하도록 한다. 아울러 기본적인 복잡도 문제를 살펴본다. 본 과목을 이수 후 새로운 문제에 대한 해결 방법을 도출할 수 있는 능력을 키운다. (선수과목: 자료구조)
데이터베이스 (Database)3-1-0-2-1
데이터베이스 시스템을 이루는 기본 구성 요소에 대한 이론을 소개하고, ER-모델 및 관계데이터 모델을 중심으로 한 데이터베이스 설계 이론과 동시성 제어, 회복, 트랜잭션 관리와 같은 데이터베이스 관리 시스템을 구현하는 이론을 소개한다. (선수과목: 자료구조)
인터넷프로토콜 및 프로그래밍 (Internet Protocol and Programming)3-1-0-2-1
본 과정에서는 인터넷의 요소기술인 TCP/IP 프로토콜에 관하여 다룬다. 특히 인터넷에 관련된 IP Addressing, Subnet, Routing프로토콜 (ARP, ICMP, IGMP, RIP, OSPF, BGP)의 프로토콜을 익힌다. 그리고 동적 IP 할당을 위한 DHCP와 도메인 네임을 관리하는 DNS와 IPv6등에 관한 사항을 학습함으로써 인터넷통신에 대한 기본적인 지식의 습득을 목표로 한다. 또한 실습을 통하여 애플리케이션을 위해 인터넷 프로토콜을 구현하는 방법을 익힌다. (선수과목: B36142 컴퓨터네트워크, B29047자료구조)
리눅스시스템프로그래밍 (LINUX System Programming) 3-1-0-2-1
가장 널리 사용되고 있는 운영체제 중의 하나인 LINUX 환경에서의 프로그램 개발 환경을 습득하여, UNIX 전문가로서의 계기를 제공한다. LINUX 사용법 및 개발환경에서 시작하여, file I/O, file & directory, process & thread, signal, IPC, synchronization, socket 등의 고급 프로그래밍 기법을 LINUX system call을 직접 사용함으로써 실습한다.
파일처리 (File Processing)3-1-0-2-1
대용량 기억장치에 데이터를 조작하는 개념과 기법을 익히고, 대용량 기억장치의 활용능력을 배양하며, 자료구조와 파일처리 기법의 응용을 위한 기초지식을 습득할 수 있다. (선수과목: 자료구조)
프로그래밍 언어 구조론 (Structures of Programming Languages)3-3-0-0-0
이 과목은 프로그래밍 언어의 기본적인 개념을 다루는데, 1) 다양한 언어 구조에 대한 설계 문제들을 토의하고, 2) 그런 구조들을 일반적인 언어들에서는 어떻게 설계 선택을 했는지 조사하며, 3) 설계 선택 대안들을 비교하는 내용으로 구성된다.
형식언어 및 컴파일러 (Formal Languages and Compiler)3-3-0-0-0
전산학의 근간을 이루는 형식언어에 대한 기본적인 이해와 컴파일러와의 연관관계를 배운다. 구체적으로, 언어의 문법적 표현과 분류, 유한상태 기계, push-down 자동장치, 정규언어, 튜링기계, 파싱 기법의 요소들을 이해하고 응용할 수 있는 능력을 키운다.
임베디드 디지털 시스템 (Embedded Digital System)3-1-0-2-1
소프트웨어 와 하드웨어를 포함 하는 SoC(System on a Chip)의 기본 설계 개념과 Altera DE2 board를 사용 구현 방법을 다룬다. 아울러 FPGA구현을 위한 Verilog-HDL 코팅방법과 실제적인 응용에 접근한 프로젝트들을 익힌다.
인공지능 (Artificial Intelligence)3-3-0-0-0
매칭, 제한조건의 이용, 탐색, 문제해결, 논리제어 등과 같은 개념을 익힘으로서 복잡도가 높은 문제들에 대한 해답을 찾는 방법을 다룬다. 지능적 탐색, 논리 증명, 지식을 학습하는 기계학습과 지능에이전트의 원리를 다룬다.
창의적설계 (Creative Design) 3-0-0-0-3
이 과목에서는 급변하는 컴퓨터, 멀티미디어, 인터넷 등 컴퓨터 전 분야에 관련된 새롭고 다양한 주제를 일정 소규모의 학생들이 그룹을 형성하여 교수들과 심도 있게 학습할 수 있는 기회를 제공한다. 교과 진행방법은 관심 주제에 대한 세미나, 산업 현장 인턴실습, 실제 프로젝트 수행, 연구논문 작성 등이다. 이 과목을 효과적으로 수행하기 위해서 학생들은 학기 초에 관심분야에 대한 학업 계획서를 작성하여 관련 교수와 상담을 통해 학습 주제를 결정하도로 되어 있다.
졸업연구 (Graduate Studies) 3-3-0-0-0
이 과목에서는 급변하는 컴퓨터, 멀티미디어, 인터넷 등 컴퓨터 전 분야에 관련된 새롭고 다양한 주제를 일정 소규모의 학생들이 개인별로 교수들과 심도 있게 학습할 수 있는 기회를 제공한다. 교과 진행방법은 관심 주제에 대한 세미나, 산업 현장 인턴실습, 실제 프로젝트 수행, 연구논문 작성 등이다. 창의적설계를 수강한 학생들이 다음 학기에 수강하는 과목으로 창의적설계에 이어서 연구 활동을 계속해 나가며, 지정된 날에 연구 결과에 대한 최종 발표를 하고, 보고서를 작성하여 제출한다.
JAVA 프로그래밍 (JAVA Programming)3-1-0-2-1
자바는 인터넷의 대중화와 더불어 가장 강력한 객체지향 프로그래밍 언어로 자리 잡고 있다. 자바는 현재 엔터프라이즈 솔루션의 핵심적인 웹 애플리케이션 서버의 책임 언어이며, 인터넷 분야뿐만 아니라 네트워크, 멀티미디어, 그래픽스, 임베디드 시스템까지 광범위하게 응용되고 있다. 본 과목에서는 자바 프로그래밍의 기본 개념을 배우고 여러 응용 프로그래밍을 구현함으로서 실제 업무에 적용 가능한 실무능력을 키운다. (선수과목: 고급객체지향프로그래밍)
컴퓨터그래픽스 (Interactive Computer Graphics) 3-1-0-2-1
2D와 3D 객체의 생성과 디스플레이를 위한 기본적인 기술들을 소개한다. 주요 강의 내용은 그래픽스를 위한 자료구조, 그래픽 프로그래밍 언어, 기학학적 변환, shading, 가시화 등을 포함한다. (선수과목: 멀티미디어시스템)
웹서비스프로그래밍 (Web Service Programming)3-2-0-2-0
객체지향설계에서 반복적으로 발생하는 문제에 대한 단순하고 효과적인 해결책들을 제시하는 설계패턴을 학습하여 소프트웨어 개발에 필수적인 설계 능력을 향상시킨다. 주요 내용으로는 생성관련 패턴, 구조관련 패턴, 행위관련 패턴을 포함한다.
임베디드 소프트웨어 (Embedded Software) 3-2-0-2-0
컴퓨터 공학 기초 과목의 이해를 바탕으로 Embedded System에서의 응용 프로그램 개발을 경험한다. 즉, Intel PXA255 기반의 Embedded System Toolkit을 사용하여, cross-compilation 개발 환경을 구축하고 Embedded Linux kernel porting, 각종 device control 등을 통해 Embedded System 개발 능력을 갖춘 후, 팀을 이루어 창의적인 응용 프로그램을 개발한다.
로봇 소프트웨어 (Robot Software) 3-2-0-2-0
Part 1. 내장형 시스템의 일종인 휴대폰 단말기에서 WIPI 기반 응용 프로그램을 작성하는 기법을 익힌다.
Part 2. 로봇축구 시스템을 이해하고 전략을 작성하여봄으로써 임베디드 시스템의 응용 기법을 익힌다. 로봇축구는 시뮬로봇과 마이크로봇을 다룬다.
네트워크 분석및설계 (Network Analysis and Design) 3-1-0-2-1
인터넷망의 설계에 있어서 라우팅, 큐잉, 흐름제어, QoS (Quality of Service)에 대한 이론을 배우고, 라우터와 스위치 등의 네트워킹 장치를 이용하여 실제의 인터넷 망을 설계하고 구현한다.
정보보호 (Information Security) 3-1-0-2-1
인터넷망의 설계에 있어서 라우팅, 큐잉, 흐름제어, QoS (Quality of Service)에 대한 이론을 배우고, 라우터와 스위치 등의 네트워킹 장치를 이용하여 실제의 인터넷 망을 설계하고 구현한다.
영상처리 (Image Processing) 3-2-0-0-1
2차원 신호인 디지털영상신호의 표현, 영상신호처리의 기본 단계, 영상신호처리 시스템의 요소, 디지털영상의 기초, 푸리에 변환, FFT, DCT를 포함한 영상변환, 영상신호의 향상, 및 영상신호의 복구에 대하여 강의한다.
멀티미디어처리 (Multimedia Processing)3-2-0-0-1
영상과 그래픽스, 그리고 비디오의 표현체계, 컬러체계, 비디오 코딩에 필요한 각종 알고리즘의 기본적이고 상세한 개념, 비디오 무손실/ 손실 압축 방법, JPEG, MPEG 등의 국제 표준 등의 멀티미디어 통신에 필요한 기본 알고리즘에 관한 연구를 수행한다. (선수과목: 멀티미디어시스템)
프로그래밍기초 (Programing Basis)3-2-0-0-0
기초적인 C++ 프로그래밍을 익히는 것이다. 이를 위해, C++ 프로그램의 기본적인 구조, 데이터 형, 변수, 함수, 분기문, 반복문, 재귀 프로그래밍, 문자 입출력, 배열, 포인터 등 고급 C++ 프로그래밍을 위한 기초를 배운다. 교재는 많은 예제 프로그램을 포함하여, 초보자도 쉽게 프로그래밍에 친숙해질 수 있고, 이론과 실습을 병행함으로써 컴퓨터 공학을 비롯한 전자정보학부에서 필요한 기초적인 프로그래밍 능력을 배양한다.
인간-컴퓨터 상호작용 (Human-Computer Interaction)3-2-0-0-0
본 과목은 인간-컴퓨터 상호작용 전반에 걸친 기본 원칙들과 그 원칙들의 응용사례들을 소개하는 과목으로 상호작용 가능한 컴퓨터 시스템을 사용자 중심의 방법론 안에서 디자인 하는 방법, 그리고 이러한 시스템을 사용성 측면에서 평가하는 방법을 배우게 된다. 특히, 컴퓨터 공학은 물론 인지과학, 사회과학, 상호작용 디자인 등 여러 학문분야가 다양하게 유기적으로 연결되어 있는 학문으로써, 본 과목에서 다룰 기본 원칙과 방법론들은 상호작용 가능한 모든 소프트웨어 및 하드웨어 시스템에 적용 가능함으로 통신, 협동, 교육, 의료 등 인간들의 삶의 질을 향상시키는데 아주 중요한 역할을 한다고 볼 수 있다.
차세대컴퓨팅시스템 (Next-generation Computing System)
이 과목에서는 급변하는 컴퓨팅 시스템 전 분야에 관련하여 최신 기술 동향을 소개한다. 특히 기업현장에서 활용되는 신기술에 대해 다루며, 기업체의 인력과 팀티칭으로 이루어질 수 있다.
오픈소스SW개발 (Open Source SW Development)
오픈소스 SW 개념을 소개하고 활성화의 중요성을 이해한다. 그리고, SW개발 전 과정에서 널리 사용되는 오픈소스 솔루션들을 실습하며 자신의 SW를 개발하여 오픈소스로 공개하는 프로젝트를 진행한다.
SW스타트업비즈니스 (SW Start-up Business)
실리콘벨리의 수많은 성공한 창업가들이 컴퓨터공학과 출신으로 이미 컴퓨터공학은 창업가들로 하여금 가장 핵심적이고 중요한 기술로 부각되고 있다. 구글, 마이크로소프트, 샤오미 등에서 제시하는 차세대 기술에 대해 연구하고 이러한 기술을 기반으로한 모의 창업을 통해 졸업 후 사업가 역량을 배양한다.
머신러닝(Machine Learning)
머신러닝은 컴퓨터가 코드로 정의되지 않은 것을 배울 수 있는 능력을 연구하는 분야이다. 본 과목에서는 머신러닝의 기본 개념들과 다양한 알고리즘들을 소개한다. 또한 많은 사례들을 통하여, 머신러닝 알고리즘을 이용한 스마트 응용들을 개발하는 방법을 가르친다. 
IT기술영어 (IT Technical English)
IT 기초이론과 최근의 연구동향 및 컴퓨터공학의 전문용어를 습득함으로써 논문 및 원서해석에 필요한 기초능력을 기른다.
설계 프로젝트 A (Design Project A) 3-2-0-2-0
이 과목에서는 전공 이론과 지식을 기반으로 주어진 문제를 인식하고 프로그램으로 전환, 해결하는 능력을 학습한다. 이 과목의 교육목표는 소규모 테마의 다양한 문제를 경험하고, 해결하는 능력을 향상하는 것으로 한다.
설계 프로젝트 B (Design Project B) 3-2-0-2-0
이 과목에서는 전공 이론과 지식을 기반으로 주어진 문제를 인식하고 프로그램으로 전환, 해결하는 능력을 학습한다. 이 과목의 교육목표는 소규모 테마의 다양한 문제를 경험하고, 해결하는 능력을 향상하는 것으로 한다.
설계 프로젝트 C (Design Project C) 3-0-0-0-3
이 과목에서는 대형 프로젝트 설계 방법을 학습한다. 주어진 문제 인식 및 해결, 팀을 구성하고 팀워크를 형성, 사용자 입장을 고려, 설계한 내용을 발표하고 토론하기 등을 학습한다. 이 과목의 교육 목표는 프로젝트 설계의 개념과 과정을 이해하고, 실제 경험하여 성공적인 프로젝트 설계 방법론을 익히는 것으로 한다.
설계 프로젝트 D (Design Project D) 3-0-0-0-3
이 과목에서는 대형 프로젝트 설계 방법을 학습한다. 주어진 문제 인식 및 해결, 팀을 구성하고 팀워크를 형성, 사용자 입장을 고려, 설계한 내용을 발표하고 토론하기 등을 학습한다. 이 과목의 교육 목표는 프로젝트 설계의 개념과 과정을 이해하고, 실제 경험하여 성공적인 프로젝트 설계 방법론을 익히는 것으로 한다.
현장연수활동 (컴퓨터공학) (Internship in Computer Engineering) 1~3-0-0-2~6-0
관련 기업에서 실무 경험을 통해 전공지식을 응용한다. (1학점 : 총 80시간 이상-1일 8시간 이내) (2학점 : 총 120시간 이상-1일 8시간 이내) (3학점 : 총 160시간 이상-1일 8시간 이내)
졸업논문 (Graduation Thesis)0-0-0-0-0
컴퓨터공학전문프로그램 또는 컴퓨터공학(일반형)은 창의적 설계1,2를 이수하는 것으로 졸업을 위한 “졸업논문” 합격 여부를 결정한다.