전주대학교

JEONJU UNIVERSITY Dept. of COMPUTER SCIENCE AND ENGINEERING

전주대학교 컴퓨터공학과

전공교과소개

컴퓨터공학과 전공 교과목 소개입니다. ※ 출처: 학사 DB

과목명 소개
선형대수학 (Linear Algebra) 본 과목은 미분방정식,일반대수학, 미분기하학,응용수학 둥 여러분야에서 다양하게 응용되는 기초과목이다. 본 과목에서는 앞으로 배울 수학교육 전공과목을 공부하는데 필요한 기초 내용을 학습한다. 학습내용은 1차 연립방정식과 행렬,행렬식,백터공간 등이다.
이산수학 (Discrete Mathematics) 컴퓨터의 이론을 체계적으로 습득할 수 있도록 기초적인 수학 이론을 숙지시켜, 컴퓨터공학의 중요과목들을 학습하는 데 기본이 되도록 하기 위한 과목으로, 집합, 관계, 함수 및 대수 체계, 알고리즘 분석 등을 다룬다.
C프로그래밍 (C Programming) 컴퓨터공학 분야에서 요구되는 기본적인 프로그래밍 기법에 대해서 다룬다. 이를 위하여 C언어의 기본 문법을 바탕으로 하여 배열, 포인터, 입출력함수, 기초 데이터구조 등에 관련된 프로그램 방법을 다룬다.
데이터과학입문 (Introduction to Data Science) 본 교과목은 데이터 과학의 개요, 활용 및 발전 방향을 소개한다. 세부적으로, 데이터 과학에 필수적인 소프트웨어 기술에 대해 학습하고, 기계학습 라이브러리들을 사용하여 데이터 분석 주요 알고리즘을 학습하고 실습하는 것을 목적으로 한다.
소프트웨어프로젝트Ⅰ(PBL) (Software ProjectⅠ(PBL)) 파이썬 등을 활용하여 프로그래밍 스킬을 향상시키고 실무에서 활용할 수 있는 경험을 제공하여 현실적인 문제 해결 능력을 향상시킨다.
소프트웨어프로젝트Ⅱ (Software ProjectⅡ) C 프로그램 개발에 필요한 도구 사용 방법을 학습하고, 프로젝트 기반 교육으로 이론을 현실적인 상황에서 적용하는 문제 해결 능력을 개발한다.
컴퓨터개론 (An Introduction to Computer) 컴퓨터 하드웨어 및 소프트웨어의 구성, 프로그래밍 언어와 작성방법, 운영체제, 정보통신등 컴퓨터의 제분야에 대하여 기본적인 개념과 원리를 배운다. 컴퓨터 기술의 현황과 발전방향에 대하여 이해하고 컴퓨터공학을 전공하기 위한 기본능력을 배양한다

과목명 소개
알고리즘 (Computer Algorithms) 알고리즘의 기술방법과 개발방법론, 그리고 알고리즘의 분석 및 평가방법 등을 다루고, 특히 탐색, 정렬, 수치해석, 네트워크 등 전신분야의 주요 문제들에 대한 문제해결 알고리즘들을 이해하고, 이를 직접 구현하고 응용하는 문제를 다룬다.
자료구조 (Data Structure) 컴퓨터 프로그래밍에 필요한 데이터 객체 표현의 기본 개념과 필요성 그리고 지금까지 개발된 기본적인 데이터 구조들인 배열, 스택, 큐, 연결리스트, 트리, 그래프 등을 다루고, 이러한 데이터 구조들의 응용방법과 최근의 고급 데이터 구조들을 다룬다.
컴퓨터구조 (Computer Architecture) 조합 논리회로의 분석과 설계, 동기 순차회로의 분석과 설계 및 레지스터 전달논리의 개념을 다루며, 메모리 모델의 소개, 명령어 집합, 프로그래밍 적재 및 어셈블러 제어장치, 입출력 시스템, 병렬처리 등을 다룬다.
논리회로 (Logic Circuit) MSI, LSI를 이용한 레지스터 논리부와 카운터와 메모리 설계 레지스터 전송논리를 이용한 프로세서의 설계를 다루며, ROM, PLA에서의 설계와 컴퓨터에서 사용되는 IC의 종류 및 특성, 조합회로, 순차회로의 종류를 다룬다.
서버관리 (Server Management) MS-Windows 서버와 유닉스/리눅스 서버 관리능력을 배양한다. 특히 파일시스템의 보안을 소개하고 서버의 전반적인 관리능력을 배양한다.
소프트웨어프로젝트Ⅲ (Software ProjectⅢ) 효율적인 소프트웨어 개발에 필요한 데이터 구조와 알고리즘의 기본 개념을 이해하고, 실제로 나타날 수 있는 문제를 해결하는 연습을 제공한다.
소프트웨어프로젝트Ⅳ (Software ProjectⅣ) 자바를 중심으로 학생들이 스스로 프로젝트 목표를 설정하도록 하며, 프로젝트 관리의 기본 원칙과 효과적인 팀 협업 기술을 습득하도록 한다.
운영체제 (Operating System ) 컴퓨터 시스템의 필수적인 교과로서, 운영체제가 무엇이고, 어떻게 설계되고, 구축되는지에 대해 설명한다. 현대 운영체제의 핵심인 프로세스 관리, 저장장치 관리, 입출력 시스템, 분산 시스템, 보호 및 보안을 설명하고, 마지막으로 기존에 개발된 운영체제들의 사례연구를 살펴본다.
웹프로그래밍 (Web Programming) 웹 서버의 구축과 DB 연동, JSP(또는 PHP, ASP), XML 등과 같은 서버쪽에서의 고급 웹프로그래밍 기술들을 공부하고 실습한다. 그 외 AJax, HTML5 등과 같은 최신의 고급 웹프로그래밍 기술들도 다룬다.
자바프로그래밍 (Java Programming) 자바를 이용하여 객체지향 프로그램의 개념을 이해하고 관련 소프트웨어를 개발하는 능력을 배양하는 것을 목적으로 한다. 이를 위해 데이터타입, 변수, 제어구조, 함수, 데이터구조, 그리고 구조적 프로그램설계를 학습하며, 객체지향 설계 및 프로그래밍에 대해서도 다룬다.

과목명 소개
데이터베이스 (Data Base) 데이터베이스를 구축하는데 필요한 데이터베이스의 개념과 이론을 정립한다. 데이터베이스의 개념, DBMS, Data Model, 관계 데이터베이스의 구조, 연산, 질의어, 정규화과정 및 데이터베이스 설계에 대하여 공부하고, 고급과정인 질의어 처리, 회복, 병행제어, 객체지향 데이터베이스 등에 대해서도 공부한다.
컴퓨터네트워크 (Computer Networks) 데이터 통신의 기본적인 원리를 공부하고, 이를 바탕으로 하여 데이터링크 기능, 망 기능, LAN, TCP/IP, 보안, 응용 프로토콜 등 컴퓨터 네트워크 기능에 관련된 중요한 프로토콜 구조와 원리에 대하여 다룬다.
객체지향설계 (Object Oriented Design) 객체지향 프로그래밍 언어인 JAVA 프로그래밍 응용에 대해서 다룬다. 이를 위하여 객체지향 모델링에 대하여 공부하고, 이를 바탕으로 JAVA 언어를 이용하여 클래스를 구현한다. 팀 프로젝트를 수행함으로써 객체지향기법을 이용한 실제적인 자바 응용프로그래밍을 경험해 본다.
기계학습 (Machine Learning) 이 과목은 경험치를 기반으로 학습하는 컴퓨터시스템을 어떻게 만들어 낼 것인가를 다루는 학문분야로, 이 과정에서는 머신러닝의 많은 개념 및 기법들과 관련 알고리즘들을 학습함. 특히 분류, 선형회귀 분야 뿐 아니라 최신 분야인 부스팅, 서포트 벡터머신 딥러닝 및 베이시안 네트워크등을 학습한다.
모바일프로그래밍 (Mobile Programming) 이 과목은 스마트폰 등과 같은 모바일 기기에서 작동하는 응용소프트웨어를 개발, 구현하기 위해 모바일 플랫폼 아키텍처를 이해하고, 모바일 프로그램을 설계, 구현하는 다양한 프로그래밍 방법과 개발도구 등을 공부한다.
빅데이터 (Big data) 빅데이터와 이의 활용에 대한 기초지식을 습득하는 것을 목적으로 한다, 즉, 대량의 정형 또는 비정형 데이터 집합과 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 학습한다.
소프트웨어공학 (Software Engineering) 소프트웨어의 생산성과 재사용성을 향상시키기 위한 소프트웨어 개발의 공학적 접근법과 CASE(Computer Aided Software Engineering) 등을 학습한다. 소프트웨어 개발 수명주기에 대한 이해와 생산성 향상, 그리고 스프트웨어 품질관리를 위한 방법론을 다룬다.
웹응용 (Web Application) 웹 프로그래밍의 기본 요소기술을 바탕으로 응용기술을 습득하고, 특히 웹서버에서의 동적 웹문서 작성기술들, 즉 PHP 또는 JSP 프로그래밍과 이를 이용한 데이터베이스 연동, 웹 응용 프로젝트의 설계 및 구현 등을 공부한다.
인공지능 (Artificial Intelligence) 인공지능의 기본개념, 명제 및 술어논리와 비단조 논리, Lisp 언어, 지식의 표현방법, 각종 탐색기법, 버전 공간과 결정트리, 귀납과 연역 학습이론, 불완전한 정보에서의 계획수립, 불확실성, 영상이해, 자연언어 처리의 이론 배경을 습득한다.
임베디드시스템 (Embedded System) 임베디드 시스템의 구조와 개발환경, 임베디드 리눅스를 학습한다. 그리고 시스템 초기화 프로그래밍, 디바이스 드라이버 개념을 확립하고, 입출력 장치에 대한 제어 프로그래밍을 학습하여 설계능력을 배양한다.

과목명 소개
캡스톤디자인 (Capstone Design) 컴퓨터공학의 여러 분야에서 습득한 전문지식을 바탕으로 하여 지역 산업체에서 필요로 하는 작품 혹은 공학 인으로서 제작할 가치가 있는 작품들을 학생들 스스로 설계, 제작, 평가하여 봄으로써 창의성과 실무능력, 복합학제적인 팀웍 능력, 리더의 역할을 수행할 수 있는 작품을 개발한다.
마이크로프로세서응용 (Microprocessor Applications) 마이크로프로세서 구조 및 프로세서의 종류에 대하여 강의하고, Register, Bus, ALU 등에 대해 각종 프로세서의 예를 들어 설명한다.
분산처리 (Distributed Processing) 본 교과목에서는 대규모(빅) 데이터 처리 및 분산 시스템을 위한 다양한 컴퓨팅 기술 및 소프트웨어 플랫폼에 대하여 학습한다. 특히 대규모(빅) 데이터 처리 및 분산 시스템을 위한 플롯팸으로 하둡(Hadoop)이나 스파크(Spark) 등을 이용한 대규모(빅) 데이터 처리 기술을 습득한다.
사물인터넷 (Internet of Things) 이 과목에서 우리는 센서와 인터넷을 갖는 다양한 사물들로 구성되는 사물인터넷의 구조와 응용에 대하여 공부한다. 우리는 또한 사물인터넷을 위한 오픈소스 하드웨어와 소프트웨어를 실습한다.
정보보호 (Information Security) 본 교과목은 정보보호의 기본기술, 암호화기술, 키분배와 해쉬함수, 해킹과 포렌식을 다룬다. 또한 시스템보안, 서버보안, 응용보안, 전자상거래보안 등을 학습한다. 그리고 주요 네트워크 보안도구인 방화벽, 침입예방시스템, 가상사설망의 구성개념과 구성사례를 소개하여 네트워크관리능력을 배양하며 IPv6에서의 보안을 소개한다.
컴퓨터공학특강 (Topics in Computer Engineering) 컴퓨터 분야는 급속하게 변화되어 항상 새로운 내용과 연구 분야가 창출되고 있다. 기계학습, 모바일 컴퓨팅, 클라우드 컴퓨팅, 빅 데이터 처리, 사물인터넷 등 컴퓨터공학 분야 전반에 걸쳐 최근 많이 연구되고 있는 컴퓨터 기술들의 선별하여 탐구한다.
해킹및보안 (Hacking and Security) 바이러스와 해킹의 유형을 분류하여 침해사고를 소개한다. 그리고 침해사고에 대한 예방 및 대응활동, 포렌식을 소개한다.