Curriculum 교육과정

교과목 개요

전공필수

  • 데이터구조(Data Structure) 
    자료구조의 개념 및 기초지식과 더불어 기본자료구조로서 스택 및 큐, 리스트들을 다루며 고급자료 구조로서 그래프와 트리 등에 대하여 학습한다. 또한 자료구조의 응용으로서 탐색, 정렬, 해슁 기법 등을 다룬다. 
  • 공학설계입문(Basic Engineering Design) 
    공학인이 갖추어야 할 기본 소양과 창의적 설계 능력을 기르기 위해 이론 강의와 작품 설계 프로젝트로 구성된다. 이 과목을 통해서 공학인의 정의 및 필요한 능력, 제안서 및 기술 보고서 쓰는 법, 프로젝트 추진법, 팀워크를 통한 공동개발법 등을 경험하고 공부한다. 
  • 컴퓨터구조이론및실습(Computer Architecture Theory & Laboratory) 
    디지털 컴퓨터의 하드웨어동작을 이해하는데 필요한 기본 지식을 다루며, 논리회로 설계, 디지털 소자, 산술연산, 중앙처리 장치, 입출력장치, 메모리 장치의 구조의 개념을 다룬다. 아울러 마이크로프로세서 장치를 통한 설계 실습을 수행한다. 

전공선택

  • 생명과학개론(Introduction to Life Science) 
    생명체의 구성 및 기능, 생명체의 보존, 진화 등 생명과학 분야의 기본 개념에 대하여 학습한다. 즉, 생명의 신비, 생명현상 등 생명과학의 기초기술 및 응용기술에 관하여 개괄적으로 다룬다. 그리고 생명과학과 타 학문과의 관계 등에 대해서도 알아본다. 
  • 컴퓨터그래픽스(Computer Graphics) 
    컴퓨터 그래픽스의 정의 및 멀티미디어 분야와의 관련에 대하여 학습한다. 나아가 다양한 컴퓨터 그래픽스용 하드웨어 및 소프트웨어의 원리에 대하여 알아보고 실습을 통하여 2, 3 차원 모형의 설계 및 투시, 렌더링 및 애니메이션 등에 대한 이해를 증진시킨다. 
  • 비주얼프로그래밍(Visual Programming) 
    객체지향 프로그래밍을 위한 C 프로그래밍언어의 기초를 학습하고, 객체지향 프로그램의 흐름을 잇는 비주얼 프로그래밍의 개념을 Visual C, MFC 등의 패키지를 이용하여 시스템으로 설계 및 구현한다. 
  • 시스템프로그래밍(System programming) 
    리눅스와 같은 운영체제 시스템을 사용하여 보고, 시스템 소프트웨어를 직접 프로그래밍 한다. 리눅스 환경과 쉘 프로그래밍, 프로그래밍 개발 환경, 유닉스 시스템 호출 인터페이스에 대해 학습하고, 실제 프로그래밍을 통하여 실습하여 본다. 아울러, 간단한 팀 프로젝트를 수행하여 시스템 프로그램 설계 능력을 갖추도록 한다. 
  • 영상처리(Image Processing) 
    정지영상 및 동영상신호에 대한 인간시각모델, 색상표현, 영상분할 및 합병 방법, 영역경계선 추출방법, 영상 압축 방법 등의 이론을 학습하고, 나아가 비주얼 인터페이스 시스템을 위한 구현방법을 학습한다. 
  • 운영체제(Operating Systems) 
    운영체제의 개념, 발전과정, 기능, 구조 등과 시스템을 구성하는 여러 자원들을 효율적으로 관리하는 방안을 학습한다. 나아가 프로세스와 스레드의 개념과 프로세스 동기화, 교착상태, 메모리 관리, 가상 메모리, 파일 시스템 및 입출력 시스템의 기본적인 개념을 학습하며 리눅스 등의 운영체제 사례에 대하여 학습한다. 
  • 인터넷프로그래밍(Internet Programming) 
    본 교과목에서는 인터넷으로 연결되어 있는 다수의 머신이 함께 동작하는 프로그램을 다루며, 다양한 인터넷 프로그래밍 언어를 통한 실습을 수행한다. 또한, 최근 급성장하고 있는 사물 인터넷 기술도 포함한다. 
  • 지능정보시스템(Intelligence Information System) 
    탐색, 게임, 지식표현, 자연어 학습, 기계학습, 컴퓨터 비전, 전문가 시스템 등 인공지능에 대한 전반적인 이론을 습득한다. 
  • 컴파일러개론(Introduction to Compiler) 
    컴파일러의 기본원리인 유한상태기계, 튜링기계, 계산함수 등의 오타마타 이론을 기본적으로 다루고, 고급 프로그래밍언어를 번역하기 위한 프로그램 언어문법, 파싱, 코드생성 등에 대해서 학습한다. 
  • 컴퓨터네트워크(Computer Networks) 
    디지털 통신 기술을 기반으로 한 네트워크와 디지털 통신 이론에 대한 기본 모델, OSI 7계층 모델의 개념에 대하여 이해하고, 각 계층에 대한 관련 프로토콜, 그리고 인터넷 통신 프로토콜인 TCP/IP를 다룬다. 나아가 컴퓨터들 간의 연결을 위해 사용하는 LAN을 비롯하여 MAN, B-ISDN 등에 관하여 학습한다. 
  • 파일처리론(File Processing Theory) 
    데이터 처리와 응용을 위한 파일의 기본 개념, 파일 저장 장치의 구조, 파일의 입출력 제어 등을 학습하고 순차 파일, 인덱스 파일, 직접 파일 등의 다양한 파일 구조를 배운다. 
  • 확률및통계(Probability and Statistics) 
    이 세상에는 우연에 지배되어 결과를 예측할 수 없는 경우가 많이 존재한다. 그러나 우리 주변의 많은 부분, 예를 들면, 시청률 조사, 일기예보, 선거, 복권, 경마 등을 확률과 통계에 관련시키면 미래를 예측할 수 있다. 이를 위해 확률에 대한 기본적인 이론과, 랜덤 변수들의 분포, 조건부 확률, 확률의 독립성을 살펴보고, 나아가 컴퓨터소프트웨어 관점에서 다수의 수치적 통계 방법과 통계적 알고리즘을 다룬다. 
  • 멀티미디어시스템(Multimedia Systems) 
    멀티미디어 분야를 디바이스, 시스템, 응용분야 등 세 가지 영역으로 나누어 멀티미디어 분야에 대한 기본적인 개념들에 대하여 학습한다. 나아가 컴퓨터 기반 멀티미디어 시스템의 데이터 압축기술, 광 기억장치매체, 고속 네트워킹 시스템에 관하여 수업을 진행한다. 
  • 정보보호론(Information Security Theory)  
    정보보호에 개념, 암호 시스템, 운영체계 보안, 네트워크 보안, 데이터베이스 보안, 인터넷 보안 등 전반적인 정보보호와 관련된 지식을 학습한다. 
  • 객체지향프로그래밍I(Object-Oriented Programming I 
    Java, C++, 비주얼 프로그래밍 언어 등 객체지향 프로그래밍 언어를 이용하여 실제 소프트웨어 개발 방법론의 단계에 맞추어 응용프로그램을 작성하는 실습을 수행한다. 
  • 객체지향프로그래밍II(Object-Oriented Programming II) 
    Java, C++, 비주얼 프로그래밍 언어 등 객체지향 프로그래밍 언어를 이용하여 실제 소프트웨어 개발 방법론의 단계에 맞추어 응용프로그램을 작성하는 실습을 수행한다. 
  • 객체지향설계(Object-Oriented Design) 
    자바, 서블릿, JSP 학습을 통하여 웹 애플리케이션 제작 및 배포 전 과정에 대한 이해를 증진한다. 또한 Javamail API를 이용한 웹메일 프로젝트에 대한 분석 및 기능 수정, 추가 과정을 통하여 애플리케이션 구성 요소들을 연동시키는 방법에 대해서 학습한다. 
  • 임베디드소프트웨어(Embedded Software) 
    임베디드 소프트웨어 개발 환경 하에서 Embedded LINUX를 장착한 임베디드 개발 보드에 부트로더, 커널, 파일 시스템, 디바이스 드라이버, 응용 소프트웨어 등을 다운로드하는 실습을 진행한다. 
  • 객체지향모델링(Object-Oriented Modeling) 
    Unified Modeling Language (UML)은 OMG 표준으로서, 객체지향 비주얼 모델링에 사용된다. 객체지향 시스템을 분석, 설계하기 위한 클래스도, 쓰임새도 등과 같은 다이어그램 작성에 대하여 학습하고, 이를 이용한 패턴 적용과 책임 할당 방법을 알아본다. 사례 연구를 통하여 애플리케이션의 분석과 설계 과정을 보여줌으로써 UML에 대한 이해를 더욱 증진하도록 한다. 
  • 데이터베이스응용(Database Application) 
    최근 업계에서 많이 사용하고 있는 DBMS 실습을 통해 데이터베이스 모델링 및 응용 프로그램 작성법을 습득함으로써 데이터베이스 이론이 실제 업무에서 어떻게 적용되는 가를 배운다. 또한 전자상거래, 데이터마이닝 등 다양한 데이터베이스 응용 시스템에 대해 살펴본다 
  • 멀티미디어처리응용(Multimedia Processing Application) 
    애니메이션 기법, 정지 영상 및 동영상 압축기법, 실시간 영상 전송기법 등의 멀티미디어 응용 과제를 실습한다. 
  • 소프트웨어설계공학(Software Design Engineering) 
    고전적인 소프트웨어 개발 방법론인 폭포수 모델과 함께 객체지향 설계 단계에서 사용되는 설계 패턴을 학습한다. 소프트웨어 개발 과정에 대한 이해를 통하여 소프트웨어를 보다 잘 설계하고 개발할 수 있도록 한다. 또한 객체지향 분석·설계에서 사용되는 설계 패턴에 대한 개념을 이해함으로써 고품질의 객체지향 소프트웨어를 개발할 수 있도록 한다. 
  • 컴퓨터알고리즘(Computer Algorithm 
    알고리즘의 표현방법, 기능 및 처리과정, 복잡도의 분석, 정확성(correctness) 및 공정도(fairness)에 대하여 학습한다. 나아가 효율적인 알고리즘을 설계하는 기법, 응용 등을 다루고 기존에 개발된 알고리즘을 주제별로 분류하여 학습한다. 
  • 유비쿼터스응용시스템(Ubiquitous Systems) 
    유비쿼터스 응용 시스템에 대한 기본적인 내용을 소개하고 유비쿼터스를 이해하기 위해 필요한 필수 기초지식을 공부한다. 최근의 다양한 유비쿼터스 응용 미들웨어 기술에 대해 소개한다. 유비쿼터스 응용 시스템 구축을 위해 필요한 유무선 네트워크 기술의 종류, 특성과 기술 동향에 대하여 공부한다. 이러한 지식을 바탕으로 유비쿼터스 응용 시스템과 관련있는 서비스에 대해서 공부한다. 
  • 수치해석학(Numerical Analytics) 
    수학적 논리전개에 따른 공식과 해법 등을 바탕으로 오차의 종류와계산법, 고차방정식과 선형계방정식의 수치해법 그리고 곡선의 수치적 구성법, 보간법 등을 다룬다. 또한 상미분방정식의 해법, 수치적분법, 고유치문제 등을 다룬다. 
  • 인터넷창업및경영(산학연계학)(Internet Venture and Management(Field Study)) 
    IT 분야의 벤처 창업과 경영에 관련된 사항을 질의응답 방식으로 진행한다. 
  • 캡스톤디자인I(Capstone DesignI) 
    캡스톤디자인 I 교과목에서 학생들은 외부 업체와 연계하거나 독립적으로 팀 단위로 브레인스토밍을 통하여 컴퓨터 소프트웨어 분야의 창의적인 프로젝트 주제를 선정하고 이러한 설계 프로젝트를 구현할 계획을 준비한다. 
  • 캡스톤디자인II(Capstone DesignII) 
    캡스톤디자인II 교과목은 졸업 후 활용할 실제 프로젝트의 구현을 실습하기 위한 교과목이다. 이 수업에서는 외부 업체와 연계하거나 독립적으로 컴퓨터 소프트웨어 분야의 창의적인 주제를 선정하여 설계 프로젝트를 수행한다. 학생들은 담당교수, 해당 분야 외부 전문가인 멘토와 더불어 팀별로 프로젝트를 진행하고 해당 결과물을 발표한다.  
  • 데이터베이스이론및실습(Database Theory & Practice) 
    본 교과목에서는 데이터베이스의 개념 및 구조, 데이터 모델, DBMS시스템의 종류, 데이터베이스 설계기법, 데이터베이스 질의어(SQL), 트랜잭션 처리기법 등에 대하여 학습한다. 또한 실습을 통해 관계형 데이터베이스 설계 방법과 관계형 데이터베이스 질의어인 SQL 사용법에 대해 학습한다. 
  • 모바일컴퓨팅(Mobile Computing) 
    최근 컴퓨팅 환경은 전통적인 서버 중심에서 모바일 단말기 중심의 환경으로 급격히 변화하고 있다. 본 교과목에서는 모바일 컴퓨팅 플랫폼과 모바일 프로그래밍의 개념을 소개하고, 안드로이드 환경에서 다양한 응용 프로그램 개발방법을 학습한다. 
  • 프로그래밍언어개론(Theory of Programming Language) 
    프로그래밍 언어의 신택스와 시멘틱스 등 컴퓨터가 인식하는 인공언어의 기본원리 및 컴파일러 언어와 인터프리터 언어의 원리 및 바인딩 시간, 객체지향 프로그래밍 언어의 특징 등에 대하여 학습한다. 
  • 융합소프트웨어특강(Topics in Convergence Software) 
    이 교과목은 최근 소프트웨어 분야에서 활발히 연구되고 있는 다양한 영역의 주제를 선정하여 교내외의 전문가들을 초청, 세미나 또는 토론을 수행하여 소프트웨어 분야의 최신 흐름을 제공하고자 하는 과목이다. 
  • 인공지능시스템(Artifical Intelligence System) 
    인공지능을 이해하기 위한 인공지능의 개념과 지식기반 전문가시스템, 인공신경망, 퍼지집하합, 유전자 알고리즘을 학습하고 딥러닝의 다양한 모델에 대한 이해와 학습방법 등을 다루고 이와 관련한 과제를 수행한다. 
  • 클라우드시스템(Cloud System) 
    물리적 서버를 직접 구축하지 않고 서비스를 수행할 수 있는 클라우드에 대해 학습하고, 상용 클라우드를 활용하여 웹 서비스를 제공할 수 있도록 JSP를 이용한 모바일 웹앱을 만들기 위한 전반적인 개념을 다룬다. 또한 동적 웹 프로그래밍을 위한 HTML 태그와 jQuery 라이브러리, 모바일 디자인을 위한 CSS 문법, 서버 프로그래밍의 기본기인 데이터베이스와 JDBC까지 학습할 수 있다.