소프트웨어학부

소프트웨어학부에서는 다양한 컴퓨터 소프트웨어 연구와 개발에 필요한 고급 인력을 양성합니다. 수리학, 논리학, 컴퓨터 하드웨어 등에 대한 깊은 이해를 바탕으로 핵심 시스템 소프트웨어 및 응용 소프트웨어 개발에 필요한 다방면의 지식을 습득함으로써 이 분야를 주도할 창의적인 전문가를 배출합니다. 주요 교육 및 연구 분야에는 시스템 소프트웨어, 데이터베이스, 프로그래밍 시스템, 정보통신, 컴퓨터 게임, 차세대 인터넷, 컴퓨터 보안 등이 포함되어 있습니다.

위치 : 새빛관 404호

학과문의 : 02-940-5210

팩스번호 : 02-940-0998

홈페이지 : https://cs.kw.ac.kr:501/

교과목 안내

수치해석

컴퓨터 소프트웨어 전공에 적합한 기본적 수치 해석 기법들을 학습하고, 공학 문제의 해결에 있어서 필수적인 수치 해석 기법들을 수학적으로 이해하고 프로그래밍 할 수 있는 능력을 함양한다.

이산수학

집합이론, 관계, 순열과 조합의 개념과 그 응용, 그래프 및 트리, 전개함수, 재귀식, 유한 이산구조의 존재와 나열, 수리논리 등 알고리즘의 설계와 분석 그리고 컴퓨터 소프트웨어 전반에 걸쳐 필요한 추상적인 개념을 다룬다.

C프로그래밍 설계

C 언어의 주요 구성 요소인 연산자, 배열, 포인터, 함수, 논리제어, 파일 입출력, 시스템 프로그래밍 등을 이용한 응용 프로그램을 설계 및 구현한다.

디지털논리실험

디지털 논리 게이트에 대한 기본적인 이해와 이에 수반된 논리를 인식하며, 이를 공식화하고 실험할 수 있는 능력을 배양하고, 다양한 디지털 논리 문제를 해결하기 위한 디지털 논리 회로를 설계하고 이를 구현할 수 있도록 한다. 디지털 논리회로를 설계하기 위한 각종 실험 도구들을 사용해 각종 회로로 구현할 수 있는 능력과 컴퓨터 등 다양한 디지털 논리 회로를 분석할 수 있는 능력을 갖추도록 한다.

고급프로그래밍실습

C++ 실습과 과제를 통한 고급프로그래밍 응용 기법을 익힌다. 객체지향 개념과 소프트웨어 개발 능력을 키우기 위한 다양한 프로그램 개념들을 강의한다. 실세계의 문제에 대한 분석 및 객체지향 접근방법의 이해를 통한 해결능력 배양하고 객체지향 언어의 문법과 활용 예를 습득하여 고급 프로그래밍의 설계 및 구현능력을 배양한다.

소프트웨어실습1

리눅스 시스템을 실습을 통하여 직접 설치한 후 그 시스템을 통하여 다양하게 응용할 수 있는 여러 가지 기술들을 학습하고 설제 프로젝트를 구현을 통하여 소프트웨어를 개발할 수 있도록 한다.

디지털논리

회로에 대한 기초 이론을 응용할 수 있는 능력과 디지털 논리와 관련된 데이터 및 문서자료를 이해하고 이를 적용하여 설계 및 구현할 수 있는 능력을 배양한다. 또, 디지털 논리 개념을 이해하여 다양한 응용 논리 회로를 해결할 수 있는 다양한 지식을 습득한다.

고급프로그래밍

객체에 대한 기본 지식을 익힌 후에 객체지향 개념인 클래스, 인스턴스, 객체, 상속, 다형성, 캡슐화 등을 이해하고, 프로그래밍이론을 응용할 수 있는 능력을 배양하기 위해 필수적인 이론을 강의한다.

인터넷프로그래밍

오늘날 네트워크나 WWW상의 데이터를 교환하는 형식으로 가장 각광받는 XML(eXtensible Markup Language)에 대해 배우고 실질적으로 쓰이는 XML 구문과 DTD, XSL, CSS 등을 이용하여 실제 개발을 가능하게 한다.

자료구조실습

컴퓨터 소프트웨어를 구현하는데 자주 사용되는 기본적인 자료구조들(배열, 리스트, 스택, 큐, 트리, 그래프, 해쉬 테이블 등)에 대한 이해를 바탕으로, 각 자료구조를 사용하는 응용프로그램을 C++ 프로그래밍언어 및 개발도구로 이용하여 구현해봄으로써 소프트웨어 설계 및 개발능력을 향상시킨다.

소프트웨어실습2

1) Java 프로그래밍
2) 응용 프로그램의 분석 및 설계
3) 프로젝트 계흭 및 수행

자료구조

컴퓨터 소프트웨어를 설계 작성하는데 자주 사용되는 기본적인 자료구조들
- 배열, 리스트, 스택, 큐, 트리, 그래프, 해쉬 테이블 등에 대한 개념을 이해하고, 이들을 프로그래밍언어를 이용하여 구현해봄으로써 프로그래밍 능력을 향상시킨다.

프로그래밍언어

객체지향 언어를 이해하고, 시스템 설계를 함에 있어서 객체지향적인 분석과 설계를 할 수 있도록 한다. 객체지향 언어인 JAVA를 습득하여 기초적인 프로그램 및 응용프로그램 개발 능력을 배양하도록 한다.

시스템소프트웨어

시스템소프트웨어 개념정립 및 설계능력을 배양하는 것을 목표로 하여, 어셈블리어의 특징 및 구성과 매크로 프로세서, 링커와 로우더를 강의한다. 또한 운영체제와 컴파일러 전반에 걸친 개괄적인 내용을 강의한다. 또한 UNIX시스템 프로그래밍을 통해 UNIX시스템을 이해한다.

소프트웨어실습3

컴퓨터 사용 및 프로그래밍에 대한 전문적인 이해와 능력을 배양하기 위한 과정으로 다양한 운영 체제, 프로그래밍 언어, 개발 도구들을 사용하여 프로젝트 위주의 실습을 진행한다.

운영체제

운영체제는 컴퓨터 하드웨어를 관리하는 프로그램이다. 운영체제는 또한 응용 프로그램을 위한 기반을 제공하며, 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행한다. 이 역할을 수행하기 위해 운영체제는 응용 프로그램의 실행 기능, 자원의 효율적인 관리 기능 및 편리한 프로그램 개발을 위한 라이브러리 제공 등 여러 복합 기능들로 구성되며, 이러한 운영체제의 전반적인 내용을 심도 있게 학습한다.

소프트웨어공학

본 과정은 소프트웨어 공학에 관한 일반적인 입문 과정으로, 소프트웨어 공학의 기본 개념, methods, 실무활용 예 및 최근 기술동향 등을 소개한다.

컴퓨터구조

컴퓨터를 구성하는 CPU, 메모리, I/O 장치의 기본이 되는 digital회로 소자의 특성과, CPU의 제어회로 및 마이크로프로그램, 컴퓨터 작동을 위한 기본적인 프로그램, CPU의 명령형식 및 번지 지정방식, CISC와 RISC, Microprogrammed Control 방식 및 Control Unit의 설계, Pipeline과 Vector processing, 컴퓨터의 산술연산 알고리즘, 입출력장치와 Interface, Memory구조, Multiprocessor 등 컴퓨터 시스템을 구성하는 Hardware요소들의 특성과 기능들을 강의한다.

데이터통신

데이터통신의 기본 이론과 응용에 대하여 다루며, 특히 통신망, 통신프로토콜, 전송매체 및 전송방식, 다중화, 부호화 및 오류제어 방식 등을 상세히 다룬다. 또한 데이터 링크 프로토콜과 근거리 통신망을 비롯한 다양한 네트워크 기술의 개념과 실제를 다룬다.

데이타통신

데이터베이스의 개념과 관련된 여러 이론들을 공부한다. 특히 릴레이션 데이터베이스 관리 시스템(RDBMS)과 데이터베이스 표준 질의어인 SQL에 관하여 배우며 데이터베이스를 설계하고 구축하는 기법도 공부한다. 데이터베이스 툴과 호스트 언어프로그램 언어 등을 이용하여 웹 환경에서의 데이터베이스를 직접 설계하고 구현해 봄으로써 실무 교육도 향상 시킨다.

심화전공실습1

컴퓨터 사용 및 프로그래밍에 대한 전문적인 이해와 능력을 배양하기 위한 과정으로 다양한 운영 체제, 프로그래밍 언어, 개발 도구들을 사용하여 프로젝트 위주의 실습을 진행한다.

알고리즘

알고리즘 분석을 위한 수학적 도구들을 배우고 다양한 알고리즘 기법의 설계 및 복잡도 분석을 다룬다. 학습할 알고리즘 기법으로는 Divide and Conquer, Dynamic Programming, Greedy Method, Backtracking, Branch and Bound 기법 등이 포함된다. 다양한 예를 중심으로 알고리즘 설계 능력 및 분석 능력을 향상시킨다.

프로그래밍언어론

다양한 언어들을 이해하고 사용함에 있어서 언어들이 가지고 있는 기본적인 개념과 문제점들의 살펴보고 체계화하며 새로운 언어를 설계할 수 있는 기본 바탕을 가질 수 있도록 한다.

컴퓨터네트워크

근거리통신망, 원격통신망, 이동통신망, 인터넷 등을 중심으로 각종 컴퓨터 네트워크의 프로토콜 및 통신망 구조의 설계 및 분석과 각종 통신망에서의 멀티미디어 데이터, WWW, 이동컴퓨팅 등의 응용을 다룬다. 물리계층, 데이터링크 계층, MAC sublayer, 네트워크 계층, 전송계층, 응용계층을 전반적으로 다루며, 특히 네트워크 계층과 전송계층을 중점적으로 다룬다.

데이터베이스응용

데이터베이스의 최신 기술과 최신 응용을 공부하고 실습한다. 개체 관계형 데이터베이스나 XML 데이터베이스에 관해 공부하고 다량의 데이터를 분석하고 정보를 추출하는 OLAP(Online Aanalytical Processing)과 데이터 마이닝(data mining) 기법에 관하여도 공부한다. 웹서버 환경에서 WAS(Web Application Server)와 TP 모니터 등의 미들웨어를 실제로 구현하여 실무 교육도 향상 시킨다.

캡스톤설계1

이전의 설계과정을 총 정리 하는 종합설계과목인 본 과목에서는 설계의 완성과 함께 공학인증에 필요한 학습성과를 총 점검하는 것을 목표로 하고 있다. 공학설계입문에서 배운 프로젝트 추진법과 동일한 방법으로 작품 활동을 추진하나 지도교수 연구실에서의 밀착 지도를 받는 점에서 차이를 보인다. 격주로 진행하는 제안서, 주차보고, 최종 발표회는 모든 학생이 참석하여 공동 진행하며(주차 보고는 지도교수별로 진행 가능) 이를 통하여 각종 학습성과를 평가하고 지도한다.

컴퓨터그래픽스

그래픽스 하드웨어, 좌표계, 좌표 변환, 그래픽스 파이프라인, 뷰잉 좌표계 변환, 국지적 음영 모델, 텍스쳐 매핑, 계층적 모델링 기법 등을 포함함 컴퓨터 그래픽스 전반에 대한 기본 이론을 습득하고 이를 응용할 수 있는 프로그래밍 능력을 함양한다.

인공지능

기본 이론인 추론방법, 정리 증면, Game Playing, 문제 분석 및 해결과 자연어 처리 등에 대하여 강의하며, 이를 LISP, PROLOG 등의 컴퓨터 언어로 실습한다.

컴파일러

컴파일러의 전반적인 구조 및 컴파일러의 각 단계인 Lexical Analysis, 프로그래밍 언어의 구문 분석, Parsing 기법, Code 생성 등을 강의한다.

심화전공실습2

정보통신 기술의 급격한 발전에 따른 각종 보안 침해 사건과 개인 정보의 노출 은 사회의 혼란뿐만 아니라 사이버테러라는 국가 방위 문제까지 야기 시킬 수 있다. 따라서 기존 정보보호에 대한 지식을 바탕으로 실질적인 보안 프로그램을 구현하고, 보안장비를 다룸으로서 보안의 중요성과 필요성을 심화 능력을 습득하도록 한다.

네트워크보안

정보보안의 기본 지식과 인터넷을 비롯한 네트워크의 기본 지식과, 인터넷과 네트워크에서 발생할 수 있는 역기능에 대하여 강의하고, 이를 방지할 수 있는 암호기술, PKI 기술, 전자우편 보안, 네트워크 보안 기술 등을 습득하도록 한다.

무선네트워크

무선네트워크에 필요한 다양한 이론과 기본원리를 다루며, 발전방향과 최근 기술동향을 다룬다.

캡스톤설계2

캡스톤 설계1의 연장선상에 있는 본 강의는 캡스톤 설계1에서 완료된 소프트웨어 설계를 기반으로 소프트웨어를 구현하고 이를 테스트한 후 최종발표를 하게한다. 일반적인 보고서에서 한 단계 더 나아가 논문형태로 보고서를 작성하여 발표한다.

차세대네트워트응용

전산학 특강의 일환으로 현재 기술적, 컴퓨터분야의 이슈가 되는 내용을 중심으로 강의를 진행한다. UNIX 시스템호출, 인터넷 프로그래밍, 차세대인터넷,IPv6, QoS, 고속네트워크 대기행렬이론, 시뮬레이션 등을 배운다.

게임설계

게임 제작과정의 이론을 습득하고 C/C++ 게임 프로그래밍 및 Action RPG Dice를 이용한 실질적인 게임 제작을 함으로써 게임 기획 및 개발자로서의 기본적인 자질을 함양한다.

게임공학

수학적/물리적 배경에 기반한 컴퓨터 게임 제작의 핵심 이론들뿐만 아니라 최근 그래픽스 하드웨어 시장의 주류를 이루는 프로그래밍 가능한 그래픽스 하드웨어에 관한 지식을 망라함으로써 3D 게임 제작에 필수적인 기술들을 이해하고 이를 응용할 수 있는 능력을 배양한다.

멀티미디어시스템

영상, 사운드, 비디오 등의 다양한 미디어에 대한 소개와 이러한 미디어들을 처리하고 변환하고 압축하는 방법들을 배운다. 특히 멀티미디어 분야의 표준인 MPEG(MPEG-1, MPEG-2, MPEG-4, MPEG-7, MPEG-21, MPEG-A)에 관하여 공부하며 멀티미디어와 연관된 저장 시스템, 스트리밍, 데이터베이스에 관하여도 공부한다. 저작 도구를 사용하여 타이틀을 개발해 보며 영상이나 비디오를 처리하는 시스템을 구현해 본다.

최신정보보안이론

정보보호에 관련 내용 중 해킹 및 바이러스, 무선 인터넷 보안, 네트워크 보안관리, 사이버 테러 대응 기술과 정보보호 관리체계인증 기술에 대한 능력뿐만 아니라 네트워크와 컴퓨터시스템의 역기능으로 인한 악의적인 공격에 대응할 수 있는 능력을 배양하도록 한다.

담당부서 : 소프트웨어융합대학 / 연락처 : 02-940-5653
교육 KW University