Curriculum 교육과정

교과목 개요

전공필수

  • 컴퓨터공학개론(Introduction to Computer Engineering) 
    컴퓨터 하드웨어와 소프트웨어의 기본 구조와 동작원리를 배우고 컴퓨터공학에서 다루는 교과들의 폭넓은 소개와 미래의 기술 동향에 대해서 다룬다. 
  • 기초프로그래밍I(Fundamental Programming I) 
    프로그래밍 언어에 대한 일반적인 사항을 소개하며, 가장 보편적으로 사용되고 있는 언어인 C 언어의 데이터 형, 연산자, 제어흐름, 함수, 포인터, 배열 및 구조체 등에 대해 학습하고 실습한다. 컴퓨터 전공 교과목의 기초가 되는 C 프로그램에 대해서 학습한다. 또한, 학습한 내용에 대한 실습을 병행해서 수행한다. 
  • 기초프로그래밍II(Fundamental Programming II) 
    프로그래밍 언어에 대한 일반적인 사항을 소개하며, 가장 보편적으로 사용되고 있는 언어인 C 언어의 데이터 형, 연산자, 제어흐름, 함수, 포인터, 배열 및 구조체 등에 대해 학습하고 실습한다. 컴퓨터 전공 교과목의 기초가 되는 C 프로그램에 대해서 학습한다. 또한, 학습한 내용에 대한 실습을 병행해서 수행한다. 
  • 객체지향프로그래밍(Object Oriented Programming) 
    객체지향 프로그래밍의 개념 및 프로그래밍 기법을 배운다. 사용언어로는 객체지향 프로그램 언어인 C++를 사용하고, 고급 기능인 Class, Constructor, Operator Overloading, Inheritance, Template 등의 기본 문법 구조 및 의미를 실제 프로그램의 예를 통해 직접 교육한다. 
  • 비주얼프로그래밍(Visual Programming) 
    그래픽 사용자 인터페이스(GUI) 및 비주얼 프로그래밍의 개념을 소개하고 Visual C#을 이용하여 비주얼 프로그래밍 테크닉을 배운다. MFC의 구성, 응용 프레임워크, 그래픽, 다이얼로그 박스 컨트롤, 데이터베이스 까지 간단한 프로그래밍 방법을 배운다. 
  • 자료구조(Data Structures) 
    기본적 자료구조로써 연결리스트, 배열, 스택, 큐, 트리, 그래프 등을 다루며, 이를 활용한 프로그래밍 기법에 대하여도 강의하게 된다. 
  • 디지털논리회로및실습(509441) Digital Logic Circuits and Laboratory) 
    순차논리의 기본인 플립플롭, 레지스터, 카운터 및 메모리 설계, 레지스터 전송 회로를 이용한 프로세서 논리, 제어 논리 및 제어 장치의 하드웨어적 설계 그리고 비동기식 순차논리회로의 설계 등을 학습함으로써 디지털 시스템의 실현 능력을 배양한다. 

전공선택

  • 데이터베이스(Database) 
    데이터베이스의 기본적인 개념 정립을 위해 다음과 같은 분야들을 학습한다. 데이터 모델링, 관계형 데이터베이스, 관계형 데이터베이스 설계, 데이터베이스 질의어, 질의 최적화, 트랜잭션관리, 회복/복구, 분산 데이터베이스. 그리고, 멀미미디어 데이터베이스, 공간 데이터베이스, 데이터마이닝과 같은 새로운 데이터베이스 응용 분야에 대해 소개한다. 
  • 데이터통신(Data Communication) 
    데이터 전송에 대한 기본 원리 및 정의를 바탕으로 데이터통신에 대한 전반적인 기술을 습득하도록 하고 전송 기술, 통신 프로토콜에 대해서 다룬다. 
  • 디지털신호처리(Digital Signal Processing) 
    디지털 신호 및 시스템의 기본 개념을 학습하고 퓨리어, 라플라스, Z 변환과 같은 디지털 선형 시스템의 다양한 변환 및 표현 방법을 다룬다. 또한 FIR, IIR 등의 다양한 종류의 디지털 필터에 대하여 학습한다. 마지막으로 디지털 신호 처리의 응용을 다룬다. 
  • 소프트웨어공학(Software Engineering) 
    소프트웨어 개발 방법론을 이해하고 이를 적용할 수 있는 능력을 키운다. 소프트웨어 생명주기, 구조적 설계 및 분석 기법, 각종 다이어그램 기법과 소프트웨어 테스팅의 다양한 방법들을 배운다. 프로그램밍을 하거나, 프로그래밍을 하기 위한 설계를 할 때 필요한 개념적이며 절차적인 지식에 관한 기술적 사항을 본 과목에서 제공한다. 
  • 알고리즘(Algorithms) 
    알고리즘의 설계와 분석에 대한 기초이론을 다루게 되며, 정렬과 검색을 포함하는 고전적인 문제들과 알고리즘 설계 전략 그리고 알고리즘의 복잡도 분석에 대하여도 강의하게 된다. 
  • 운영체제(Operating Systems) 
    운영체제의 구성과 기능을 단계적이고 체계적으로 학습하고 고찰한다. 교과내용으로는 운영체제의 기본 개념, 컴퓨터 시스템 구조, 운영체제 구조, 프로세스의 관리, CPU 스케쥴링, 인터럽트 메카니즘, 프로세스 동기화, 교착상태, 주기억장치, 가상메모리, 파일시스템 인터페이스, 보조기억장치 디스크 스케쥴링 등을 포함한다. 
  • 웹프로그래밍(Web Programming) 
    인터넷 환경의 정보 교환을 위한 표준으로 사용되고 있는 XML에 대한 기본 지식과 DTD/Schema를 배우고 나아가 XML이 사용되는 광범위한 분야에 대한 프로그래밍 연습을 실행한다. 
  • 인공지능(Artificial Intelligence) 
    인공지능의 주요 영역인 지식의 표현과 추론, 학습, 휴리스틱 탐색 등을 소개하며, 인공지능시스템과 연관된 최근의 연구동향에 대하여도 다루게 된다. 
  • 정보보호(Information Security) 
    본 강좌는 대칭키, 공개키, 해쉬, 디지털 서명 알고리즘 등 정보 보호와 암호 기술의 기본 원리와 응용을 다룬다. 그리고 정보 보호 기술의 실제 응용 분야는 전자 상거래, 네트워크 보안, 컴퓨터 시스템 보안, 스마트 카드 보안, RFID 등이다. 
  • 컴퓨터구조(Computer Architecture) 
    컴퓨터 시스템의 전반적인 구조에 대해 알아보고 32 비트 RISC 마이크로프로세서 설계, 캐쉬 메모리, 가상 메모리, 입출력 장치의 단계별 설계를 통해 컴퓨터 구조 설계를 다룬다. 
  • 컴퓨터시스템설계(Computer System Design) 
    본 강좌는 컴퓨터 하드웨어, 컴퓨터 소프트웨어,시스템 프로그램과 운영체제간의 인터페이스 분석을 통해 컴퓨터 시스템의 전반적인 개념을 제공하며. 32 비트 RISC 마이크로프로세서 설계, 캐쉬 메모리, 가상 메모리, 입출력 장치의 단계별 설계를 통해 컴퓨터 시스템 설계를 다룬다. 
  • UNIX시스템(Unix System) 
    Unix의 개념과 구성을 숙지하고 Unix에서의 기본적인 명령어 종류와 이것들의 동작을 파악하고 익힌다. 또한, 이러한 명령어와 연동된 운영체제 커널의 기능을 공부한다. UNIX 운영체제의 전반적인 구조를 소개한다. 그리고, UNIX 운영체제 내부 동작 과정으로 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리 등의 동작 및 기능들에 대해서 공부한다. 
  • 지능형시스템(Intelligent Systems) 
    지능형 시스템의 기본적 개념과 다양한 연구 방법을 소개하고 퍼지시스템, 인식시스템 그리고 지능형 에이전트시스템 등에 대하여 다룬다. 
  • 논리설계및실습(Digital Logic Design and Laboratory) 
    조합회로와 순서회로를 다룬다. 마이크로컴퓨터의 구성요소와 논리회로의 응용을 다루고 실적응용회로를 설계하고 논리회로를 VHDL 프로그래밍으로 분석한다. 
  • 데이터베이스응용(Database Application) 
    DB 프로그래밍 실습을 통해 데이터베이스 디자인 및 응용 프로그램 작성법을 학습하여 데이터베이스 이론이 실무에서 적용되는 방법을 배운다. 또한 서버/클라이언트 프로그래밍과 같은 다양한 데이터베이스 응용에 대해 살펴본다. 
  • 디지털영상처리(Digital Image Processing) 
    기본적인 디지털 영상 및 인간 시각 시스템의 특성에 대하여 분석 학습할 뿐만 아니라 영상처리의 응용에 대하여 소개한다. 공간 주파수 개념을 도입한 영상 변환 기법 및 영상 인핸스먼트 방법을 분석 학습한다. 마지막으로 영상 압축 기법 등을 학습한다. 
  • 컴퓨터통신망(Computer Network) 
    컴퓨터 네트워크의 소개와 광대역통신망, 이동통신 기술 그리고 인터넷 통신의 전반적인 기술을 다룬다. 
  • 임베디드시스템및실습(Embedded System and Laboratory) 
    임베디드 시스템 구축을 위한 하드웨어와 소프트웨어 설계 방법들에 대해 알아보고 임베디드 응용 보드를 통해 하드웨어 제어 및 응용 프로그래밍 방법을 실습한다. 
  • 모바일네트워크(Mobile Network) 
    유비쿼터스 컴퓨팅 환경의 필수 요소인 모바일 네트워크의 발전 과정과 차세대 기술에 대해 소개하고, 모바일 네트워크에 사용되는 전파전송, 이동통신망 구성, 디지털 변복조 원리 그리고 CDMA 등의 기술들을 학습한다. 
  • 어셈블리언어및실습(Assembly Language and Laboratory) 
    마이크로프로세서의 내부 구조, 명령어 집합, 소프트웨어의 계층적 구조에 대해 알아보고 프로그램 예제를 통해 어셈블리언어의 구성 방법, 문법, 실행에 대해 학습한다. 
  • 자바프로그래밍(Java Programming) 
    자바 프로그래밍 언어를 사용하여 객체지향 프로그래밍에 대한 개념과 플랫폼 독립적인 프로그래밍 기법을 학습한다. 표준 자바를 중심으로 자바의 기본 기능들과 라이브러리, 네트워크, 애플릿, 쓰레드, 보안등을 다룬다. 그리고 데이터베이스 연동 과정도 다룬다. 또한 데이터베이스와 밀접하게 관련되어 있는 실무 프로그래밍 능력을 기른다. 
  • 캡스톤디자인I(Capstone DesignI) 
    작품 프로젝트 과목으로 각자 혹은 몇 명이 팀을 이루어 창의적인 설계 주제을 선정하고 설계된 작품을 발표한다. 이 과목을 통해 제안서 및 최종 기술보고서의 작성부터 컴퓨터 하드웨어 및 소프트웨어의 설계와 발표를 통한 설계 노하우의 공개 등 여러 가지 이론 및 설계 지식을 복합적으로 습득한다. 
  • 캡스톤디자인II(Capstone DesignII) 
    작품 프로젝트 과목으로 각자 혹은 몇 명이 팀을 이루어 창의적인 설계 주제을 선정하고 설계된 작품을 발표한다. 이 과목을 통해 제안서 및 최종 기술보고서의 작성부터 컴퓨터 하드웨어 및 소프트웨어의 설계와 발표를 통한 설계 노하우의 공개 등 여러 가지 이론 및 설계 지식을 복합적으로 습득한다. 
  • 마이크로컨트롤러응용(Microcontroller Applications) 
    고성능의 전자 및 기계 시스템은 사람 혹은 컴퓨터에서 명령을 받아 해독하고 수행하기 위해서 제어에 특화된 마이크로컨트롤러 기반 시스템이 필요하다. 본 수업에서는 마이크로컨트롤러의 구조 및 C 프로그램 언어를 사용하는 제어 명령 프로그래밍 기술을 공부하고, 마이크로컨트롤러 보드를 사용하여 실습을 통해 입출력 장치와의 인터페이스 설계 기술 및 임베디드 시스템 설계 기술을 습득한다. 
  • IT융합특강(Current Topics in IT Convergence) 
    정보기술과 관련된 융합시스템에 대한 최신의 동향에 대하여 다룬다. 
  • 데이터활용프로그래밍(Programming for Data Applications) 
    본 교과는 공학데이터 활용을 위한 파이썬 언어를 다룬다. 기본적으로 함수, 파일의 입출력, 그래픽의 활용 등을 포함한다. 이를 통하여 상급학년에서 배울 인공지능, 지능형시스템 등의 교과에 대비하게 될 것이다. 
  • 머신러닝프로그래밍(Machine Learning Programming) 
    본 교과목에서 학생은 빅데이터 플랫폼을 이용하여 빅 데이터를 수집, 관리, 라벨링 그리고 유통하는 기술을 배울 것이다. 구축된 빅데이터를 이용한 학습을 위한 모델과 Authoring Tool을 이용한 자동 라벨링을 실습한다. 
  • 블록체인(Block Chain) 
    이 과목에서 블록체인에 관하여 공부한다. 블록체인은 데이터 분산 처리 기술이다. 네트워크에 참여하는 모든 사용자가 모든 거래 내역 등의 데이터를 분산, 저장하는 기술을 지칭하는 말이다. 블록들을 체인 형태로 묶은 형태이기 때문에 블록체인이라는 이름이 붙여졌다. 블록체인은 4차 산업혁명의 핵심 기술로 꼽힌다.