교과과정 소개 페이지 비주얼이미지

교과과정 소개

HOME  > 교과과정  > 교과과정 소개

프로그래밍

  • 프로그래밍기초(Programming Basics): 프로그램 작성에 요구되는 기초 지식을 프로그래밍 실습을 통해 학습합니다. 변수, 대입문, 조건문, 반복문, 함수 등 프로그래밍 구성 요소들을 소스코드 작성, 컴파일, 디버깅 및 코드 실행의 과정을 반복하며 습득합니다.
  • 오픈소프트웨어(Open-Source Software): 오픈-소스 소프트웨어의 활용 및 개발 참여는 현시대 소프트웨어 산업을 선도하는데 요구되는 핵심 자질 중 하나입니다. 이 교과목은 리눅스 운영체제 기반의 오픈-소스 소프트웨어 활용 및 소스코드 버전 관리 시스템 등의 활용을 컴퓨터 실습을 통해 습득합니다.
  • 자바프로그래밍(Java Programming Language): Java 언어는 범용 프로그래밍 언어로 웹 기반의 응용 시스템 개발의 주요 언어 중 하나입니다. 이 교과목을 통해 클래스, 객체, 메소드, 상속, 오버로딩, 오버라이딩, 인터페이스 등 Java 언어 프로그래밍의 기초 지식을 프로그래밍 실습을 통해 학습합니다.
  • 어셈블리프로그래밍(Assembly Language): 어셈블리 언어 및 어셈블리 프로그래밍 방법을 학습합니다.
  • 자바프로그래밍응용(Advanced Java Programming): Java 언어를 이용한 응용 소프트웨어 구현 능력을 프로그래밍 실습을 통해 배양합니다. Java를 이용한 파일처리/네트워크/데이터베이스/GUI 프로그래밍 방법을 학습합니다.
  • 문제해결기법(Algorithm Practice): 시간/공간 복잡도를 줄이는 알고리즘의 고안 및 적용은 소프트웨어 개발의 핵심 절차들 중 하나입니다. 이 교과목을 통해 실세계 문제에 대한 보다 효율적 알고리즘 구현 능력을 배양하게 됩니다.
  • 모바일웹(Mobile Web Programming): 스마트폰, 탭 등 모바일 환경에서 동작하는 모바일 웹 애플리케이션 구현 능력을 학습합니다.
  • 웹프로그래밍(Web Programming): 웹 기반 응용 시스템의 동작 원리와 구현 능력을 학습합니다. HTML/CSS, Javascript 등 언어를 이용한 웹 환경의 애플리케이션 프로그래밍 능력을 실습을 통해 배양합니다.
  • 객체지향프로그래밍(Object-oriented Programming): 대표적 프로그래밍 패러다임 중 하나인 객체지향 프로그래밍의 개념과 구현 방법을 실습을 통해 학습합니다. C++ 등 객체지향언어를 학습하고 객체지향 프로그래밍 능력을 배양합니다.
  • 시스템프로그래밍(System Programming): 시스템 콜(System call) 활용 프로그래밍을 통해 시스템 프로그램을 작성하는 능력을 배양합니다. 프로세스 생성/종료, 파일 생성/삭제/열기/읽기/쓰기 등의 시스템 콜 활용법을 실습을 통해 학습합니다.
  • 게임프로그래밍(Game Programming): 프로그래밍을 이용하여 컴퓨터 게임을 제작하는 방법을 학습합니다.
  • 함수형프로그래밍(Functional Programming): 대표적 프로그래밍 패러다임 중 하나인 함수형 프로그래밍의 개념과 구현 방법을 실습을 통해 학습합니다. Haskell 등 함수형 프로그래밍 언어를 학습하고 함수형 프로그래밍 능력을 배양합니다.
 

프로젝트

  • 프로젝트(Software Project Practice): 정형화된 실세계 문제에 대한 애플리케이션 구현을 재현해 봄으로써 프로그래밍 능력을 향상시키고 프로젝트 수행 능력을 배양합니다.
  • 종합설계프로젝트(Advanced Software Project Practice): 학부과정 동안 습득한 전공 이론과 프로그래밍 기술들을 종합적으로 적용하여 실무형 소프트웨어 개발 프로젝트를 도전적으로 구상하여 설계하고 구현해 봄으로써 실무 프로젝트 수행 능력을 배양합니다.
 

전공이론

  • 전산학개론(Introduction to Computer Science): 전산학 입문자 수준에서 Computer Science의 주요 분야들을 개괄적으로 학습합니다.
  • 컴퓨터구조(Computer Architecture): CPU, ALU, 제어장치(Control Unit), 메모리 등의 내부 구조와 동작 원리를 학습합니다.
  • 운영체제(Operating System): 프로세스 관리, CPU 스케줄링, 메모리 관리, 가상메모리, 파일시스템 관리 등을 학습하여 운영체제의 구성 요소와 동작 원리를 학습합니다.
  • 자료구조(Data Structure): 리스트, 트리, 그래프, 해시테이블 등 자료구조를 표현하고 다루는 알고리즘을 학습합니다.
  • 알고리즘(Algorithm): 정렬, 탐색, 분할정복, 동적계획법 등 다양한 유형의 알고리즘 동작 원리를 이해하고, 알고리즘 분석 및 고안 능력을 배양합니다.
  • 오토마타(Automata Theory): 오토마타 이론을 학습합니다. Finite State Automaton, Pushdown Automaton, Turing Machine, Regular Language, Context-Free Language 등을 학습합니다.
  • 데이터베이스(Database): 관계형 모델(Relational Model), 개체관계모델(Entity-Relationship Model), 정규화(Database Normalization), SQL 등을 학습하여 데이터베이스관리시스템(DBMS)의 동작 원리를 이해하고 데이터베이스 설계 및 활용 능력을 배양합니다.
  • 컴퓨터네트워크(Computer Network): 컴퓨터 네트워크의 물리적 구성과 데이터 송수신 원리를 학습합니다. 물리/데이터링크/네트워크/전송 계층, 오류제어, 흐름제어, TCP/IP 프로토콜 등을 학습합니다.
  • 프로그래밍언어론(Programming Language): 프로그램을 작성하는데 사용되는 프로그래밍언어 자체에 대해 학습합니다. BNF 표기법, 변수의 속성과 바인딩, 타입검사, 변수의 영역, 부프로그램(subprogram), 매개변수 전달법 등을 학습합니다.
  • 그래픽스(Computer Graphics): 프로그래밍을 이용한 이미지의 표현, 생성, 및 조작법을 학습합니다.
  • 소프트웨어공학(Software Engineering): 요구사항 분석, 설계, 구현, 테스팅, 유지보수 등의 단계로 구성되는 소프트웨어 개발 과정과 그 체계적 개발 방법론들을 학습합니다.
 

전공일반

  • 파일처리론(File Processing): 프로그램을 이용하여 디스크 상의 파일에 데이터를 효율적으로 저장하거나 파일 내의 데이터를 효율적으로 탐색 및 변경하는 방법을 학습합니다.
  • 머신러닝기초(Introduction to Machine Learning): 머신러닝 시스템을 구축하는 기초 지식을 학습합니다. 자질 추출, 학습데이터 구축, 교차검증, 성능 평가, Classification/Clustering 알고리즘 등의 동작 원리와 활용법을 프로그래밍 실습을 통해 습득합니다.
  • 인공지능(Artificial Intelligence): 실세계 문제에 대한 인공지능 시스템을 구축하는 능력을 실습을 통해 학습합니다.
  • 데이터베이스응용(Database Programming): SQL 및 프로그래밍을 이용하여 데이터베이스를 활용하는 방법을 학습합니다.
  • 정보보안(Information Security): 컴퓨터 시스템을 다양한 유형의 위협으로부터 보호하는 방법과 그 동작 원리를 학습합니다.
  • 정보검색(Information Retrieval): 사용자가 입력한 질의(Query)에 적합한 문서(예: 뉴스, 블로그, 특허 등)를 검색하는 정보검색시스템(Information Retrieval System)의 내부 구조와 동작 원리를 이해하여 정보검색시스템의 구현 및 활용 능력을 배양합니다. 역파일 색인법, 벡터/확률/언어 검색 모델, 적합성 피드백 등을 학습합니다.
  • 클라우드컴퓨팅(Cloud Computing): 서버 가상화, 분산 파일 시스템 기술 등을 학습하며 클라우드 컴퓨팅 활용 능력을 배양합니다.
  • 병렬컴퓨팅(Parallel Computing): 하나의 컴퓨팅 작업을 동시 처리 가능한 부분 작업들로 나누어 병렬적으로 처리하는 방법을 학습합니다. GPU 혹은 멀티-코어 CPU 등을 이용한 병렬 프로그래밍 기법을 습득합니다.
 

수학

  • 이산수학(Discrete Mathematics): 비연속적 수학 구조를 다루는 이산수학은 Computer Science를 이해하는 이론적 기반을 제공합니다. 이 교과목에서는 집합, 논리, 조합, 그래프, 함수, 정보 이론 등을 학습합니다.
  • 전산수학(1)(Computational Mathematics(1)): 미분적분학, 선형대수학은 Computer Science를 공학 및 다양한 응용 분야에 활용하는데 필요한 이론적 기반을 제공합니다. 이 교과목에서는 미분, 적분, 벡터공간, 선형변환, 행렬 등을 학습합니다.
  • 전산수학(2)(Computational Mathematics(2)): 수치해석, 최적화 이론은 Computer Science를 공학 및 다양한 응용 분야에 활용하는데 필요한 이론적 기반을 제공합니다. 이 교과목에서는 오차, 보간법, 최소자승법, 경사하강법, 뉴턴법 등을 학습합니다.
  • 확률통계(Probability and Statistics): 확률 및 통계 이론은 Computer Science를 공학 및 다양한 응용 분야에 활용하는데 필요한 이론적 기반을 제공합니다. 이 교과목에서는 확률, 확률분포, 가설검정, 추정 등 기초 확률통계학을 학습합니다.
  • 프린트
  • 페이스북
  • 트위터