전주대학교

전공교과소개

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

과목명 소개
C프로그래밍 (C Programming) 컴퓨터공학 분야에서 요구되는 기본적인 프로그래밍 기법에 대해서 다룬다. 이를 위하여 C언어의 기본 문법을 바탕으로 하여 배열, 포인터, 입출력함수, 기초 데이터구조 등에 관련된 프로그램 방법을 다룬다.
대학수학 (Calculus) 본 과목은 수학교육전공 뿐만 아니라 이공계 및 경상계에서도 기본적으로 학습하여야마나 전공분야를 학습하는 데 도움이 되는 과목이다. 학습내용은 극한과 연속, 도함수와 그 응용, 정적분, 지수함수, 로그함수, 초월함수, 적분의 기교, 적분의 응용, 수열과 급수 등이다.
선형대수학 (Linear Algebra) 본 과목은 미분방정식,일반대수학, 미분기하학,응용수학 둥 여러분야에서 다양하게 응용되는 기초과목이다. 본 과목에서는 앞으로 배울 수학교육 전공과목을 공부하는데 필요한 기초 내용을 학습한다. 학습내용은 1차 연립방정식과 행렬,행렬식,백터공간 등이다.
이산수학 (Discrete Mathematics) 컴퓨터의 이론을 체계적으로 습득할 수 있도록 기초적인 수학 이론을 숙지시켜, 컴퓨터공학의 중요과목들을 학습하는 데 기본이 되도록 하기 위한 과목으로, 집합, 관계, 함수 및 대수 체계, 알고리즘 분석 등을 다룬다.
일반물리및실험 (Physics and Experiments) 물리학은 이학 및 공학의 모든 전공의 기초가 되는 필수학문으로서, 자연을 이해하고 응용함을 목표로 하며, 운동, 뉴턴 법칙, 보존의 법칙, 일과 에너지, 오실레이션, 파동운동, 음향, 중첩의 원리 등의 역학과 열역학, 유체역학 등을 배운다.
파이썬프로그래밍 (Python Programming) 이 과목에서는 파이썬 프로그래밍을 통해 프로그래밍의 기본 개념과 원리를 배운다. 파이썬 프로그래밍 개발 환경과 파이썬 언어의 기본 문법과 기본적인 프로그래밍 방법을 배우고, 리스트, 튜플, 딕셔너리 등 기본적인 자료구조 활용과 객체지향 프로그래밍 개념 등을 다룬다. 또한 실습을 통해 Python을 이용한 데이터의 처리, 요약, 시각화 등 데이터 분석을 위한 기초적인 자료처리 방법을 학습한다.
소프트웨어기초설계 (Basic Design of Software) 소프트웨어공학 등 컴퓨터공학의 전문적인 지식의 습득없이 단지 컴퓨터공학에 대한 공학적 소양만을 가지고 팀 단위로 실제 프로젝트를 수행하며, 세미나와 토론을 통해 분석, 설계 , 구현, 테스트, 발표 등을 진행한다
컴퓨터개론 (An Introduction to Computer) 컴퓨터 하드웨어 및 소프트웨어의 구성, 프로그래밍 언어와 작성방법, 운영체제, 정보통신등 컴퓨터의 제분야에 대하여 기본적인 개념과 원리를 배운다. 컴퓨터 기술의 현황과 발전방향에 대하여 이해하고 컴퓨터공학을 전공하기 위한 기본능력을 배양한다

과목명 소개
데이터과학입문 (Introduction to Data Science) 본 교과목은 데이터 과학의 개요, 활용 및 발전 방향을 소개한다. 세부적으로, 데이터 과학에 필수적인 소프트웨어 기술에 대해 학습하고, 기계학습 라이브러리들을 사용하여 데이터 분석 주요 알고리즘을 학습하고 실습하는 것을 목적으로 한다.
수치해석 (Numerical Analysis) 기본적이고 기초적인 수치해석 방법을 소개하며, 수학을 포함한 자연과학과 공학 등에서 사용되는 스플라인, 선형 및 비선형 방정식의 해법을 다룬다.
자바프로그래밍 (Java Programming) 자바를 이용하여 객체지향 프로그램의 개념을 이해하고 관련 소프트웨어를 개발하는 능력을 배양하는 것을 목적으로 한다. 이를 위해 데이터타입, 변수, 제어구조, 함수, 데이터구조, 그리고 구조적 프로그램설계를 학습하며, 객체지향 설계 및 프로그래밍에 대해서도 다룬다.
확률통계 (Probability and Statistics) 본 과목의 전반부에서는 주로 확률론의 모델화를 중심으로 다루고 후바눕에서는 수리통계학의 이론적인 부분을 다룬다. 또한 공학과 과학분야에서 많이 응용되는 내용도 다룬다.학습내용은 확률이론, 확률분포,정규분포와 관련되 분포, 표본분포와 극한분포 등이다.
알고리즘 (Computer Algorithms) 알고리즘의 기술방법과 개발방법론, 그리고 알고리즘의 분석 및 평가방법 등을 다루고, 특히 탐색, 정렬, 수치해석, 네트워크 등 전신분야의 주요 문제들에 대한 문제해결 알고리즘들을 이해하고, 이를 직접 구현하고 응용하는 문제를 다룬다.
자료구조 (Data Structure) 컴퓨터 프로그래밍에 필요한 데이터 객체 표현의 기본 개념과 필요성 그리고 지금까지 개발된 기본적인 데이터 구조들인 배열, 스택, 큐, 연결리스트, 트리, 그래프 등을 다루고, 이러한 데이터 구조들의 응용방법과 최근의 고급 데이터 구조들을 다룬다.
컴퓨터구조 (Computer Architecture) 조합 논리회로의 분석과 설계, 동기 순차회로의 분석과 설계 및 레지스터 전달논리의 개념을 다루며, 메모리 모델의 소개, 명령어 집합, 프로그래밍 적재 및 어셈블러 제어장치, 입출력 시스템, 병렬처리 등을 다룬다.
객체지향프로그래밍 (Object Oriented Programming) 객체지향 프로그래밍 언어인 JAVA 프로그래밍 응용에 대해서 다룬다. 이를 위하여 객체지향 모델링에 대하여 공부하고, 이를 바탕으로 JAVA 언어를 이용하여 클래스를 구현한다. 팀 프로젝트를 수행함으로써 객체지향기법을 이용한 실제적인 자바 응용프로그래밍을 경험해 본다.
논리회로 (Logic Circuit) MSI, LSI를 이용한 레지스터 논리부와 카운터와 메모리 설계 레지스터 전송논리를 이용한 프로세서의 설계를 다루며, ROM, PLA에서의 설계와 컴퓨터에서 사용되는 IC의 종류 및 특성, 조합회로, 순차회로의 종류를 다룬다.
데이터통신 (Data Communication) 일반 데이터 통신망에서 사용되는 통신장비에 대하여 알아보고, 이들의 동작 원리를 공부한다. 특히 디지털 통신의 원리에 대하여 중점적으로 다루며, 컴퓨터 망의 기초가 되는 물리계층, 데이터링크 계층, 망 계층의 동작원리에 대해서도 공부한다.
운영체제 (Operating System ) 컴퓨터 시스템의 필수적인 교과로서, 운영체제가 무엇이고, 어떻게 설계되고, 구축되는지에 대해 설명한다. 현대 운영체제의 핵심인 프로세스 관리, 저장장치 관리, 입출력 시스템, 분산 시스템, 보호 및 보안을 설명하고, 마지막으로 기존에 개발된 운영체제들의 사례연구를 살펴본다.
웹프로그래밍 (Web Programming) 웹 서버의 구축과 DB 연동, JSP(또는 PHP, ASP), XML 등과 같은 서버쪽에서의 고급 웹프로그래밍 기술들을 공부하고 실습한다. 그 외 AJax, HTML5 등과 같은 최신의 고급 웹프로그래밍 기술들도 다룬다.
자료구조실습 (Practice of Data Structure) 프로그래밍의 기본과정을 리뷰하고, 반복알고리즘과 순환알고리즘, 기초적인 정렬과 탐색알고리즘 등 다양한 패턴의 프로그래밍 예제들의 실습을 통해 프로그래밍 능력의 향상을 도모한다.

과목명 소개
데이터베이스 (Data Base) 데이터베이스를 구축하는데 필요한 데이터베이스의 개념과 이론을 정립한다. 데이터베이스의 개념, DBMS, Data Model, 관계 데이터베이스의 구조, 연산, 질의어, 정규화과정 및 데이터베이스 설계에 대하여 공부하고, 고급과정인 질의어 처리, 회복, 병행제어, 객체지향 데이터베이스 등에 대해서도 공부한다.
컴퓨터네트워크 (Computer Networks) 데이터 통신의 기본적인 원리를 공부하고, 이를 바탕으로 하여 데이터링크 기능, 망 기능, LAN, TCP/IP, 보안, 응용 프로토콜 등 컴퓨터 네트워크 기능에 관련된 중요한 프로토콜 구조와 원리에 대하여 다룬다.
데이터베이스프로그래밍 (Database Programming) 데이터베이스 활용 기법을 습득하기 위하여 Oracle DBMS에서 Oracle의 개념과 SQL, SQL*PLUS, 고급질의 등에 대하여 실습을 통해 그 방법을 습득한다. 또한 PL/SQL을 사용하여 데이터베이스와 프로그래밍 언어와의 통합 기법 등을 공부하여 클라이언트/서버 환경 및 웹 환경에서 데이터베이스를 구축할 수 있는 능력을 배양한다.
디지털회로실험 (Digital Circuit Experiment) 강의내용으로는 논리회로 소재, 부울대수 및 조합, 논리회로 설계, 가산기, 인코더/디코더 설계, 등이 포함된다. 또한 디지털 IC를 이용하여 AND, OR, INVERTER, NOR, NAND 등 각종 게이트 회로를 설계한다.
모바일응용 (Mobile Applications) 모바일 서비스 기반의 전통문화콘텐츠 상품의 창출과정을 이해하기 위해, 모바일 콘텐츠 제작, 기술, 유통 테크놀로지의 개념과 적용에 대해 탐구한다.
모바일프로그래밍 (Mobile Programming) 이 과목은 스마트폰 등과 같은 모바일 기기에서 작동하는 응용소프트웨어를 개발, 구현하기 위해 모바일 플랫폼 아키텍처를 이해하고, 모바일 프로그램을 설계, 구현하는 다양한 프로그래밍 방법과 개발도구 등을 공부한다.
서버관리 (Server Management) MS-Windows 서버와 유닉스/리눅스 서버 관리능력을 배양한다. 특히 파일시스템의 보안을 소개하고 서버의 전반적인 관리능력을 배양한다.
시스템응용및보안 (Security of system and applications) 본 교과에서는 인터넷 실습 환경에서 웹 해킹과 보안 설정 방법을 알아본 후, 웹과 데이터베이스의 서버 보안 설정을 학습한다. 또한 암호와 보안 전략을 알아봄으로써 인터넷 해킹과 보안에 관한 내용을 각 단원별로 나누어 체계적으로 공부한다. 주요 교과 내용으로는 인터넷 서비스의 구성을 알아보고, 웹 해킹 공격을 설명하고, SQL 삽입 공격, XSS, 악성 코드를 차례로 실습한다. IIS 웹 서버, 아파치 웹 서버, MS-SQL 데이터베이스 등 웹 서버와 데이터베이스를 차례로 살펴보면서 어떻게 보안 설정을 해야 하는지 익힌다.
웹응용 (Web Application) 웹 프로그래밍의 기본 요소기술을 바탕으로 응용기술을 습득하고, 특히 웹서버에서의 동적 웹문서 작성기술들, 즉 PHP 또는 JSP 프로그래밍과 이를 이용한 데이터베이스 연동, 웹 응용 프로젝트의 설계 및 구현 등을 공부한다.
임베디드시스템 (Embedded System) 임베디드 시스템의 구조와 개발환경, 임베디드 리눅스를 학습한다. 그리고 시스템 초기화 프로그래밍, 디바이스 드라이버 개념을 확립하고, 입출력 장치에 대한 제어 프로그래밍을 학습하여 설계능력을 배양한다.
정보보호개론 (Introduction to Information Security) 정보보호개론에서는 정보보호의 기본기술, 암호화기술, 키분배와 해쉬함수, 해킹과 포렌식을 다룬다. 또한 시스템보안, 서버보안, 응용보안, 전자상거래보안 등을 학습한다. 그리고 주요 네트워크 보안도구인 방화벽, 침입예방시스템, 가상사설망의 구성개념과 구성사례를 소개하여 네트워크관리능력을 배양하며 IPv6에서의 보안을 소개한다.
프로그래밍언어론 (Theory of Programming Languages) 본 과목에서는 컴퓨터 프로그래밍의 기본이 되는 중요 개념들과 프로그래밍 언어가 가진 속성 및 구조를 소개한다. 주요 내용으로는 데이터 형, 데이터 제어 및 순서 제어, 객체의 개념, 효율적인 데이터 저장 및 환경 등으로 요약될 수 있다. 또한 서로 다른 언어들, 즉 명령형 언어, 논리형 언어, 함수형 언어, 객체지향형 언어의 특성과 응용 분야들을 간략히 살펴보도록 한다.
해킹및보안 (Hacking and Security) 바이러스와 해킹의 유형을 분류하여 침해사고를 소개한다. 그리고 침해사고에 대한 예방 및 대응활동, 포렌식을 소개한다.

과목명 소개
캡스톤디자인 (Capstone Design) 컴퓨터공학의 여러 분야에서 습득한 전문지식을 바탕으로 하여 지역 산업체에서 필요로 하는 작품 혹은 공학 인으로서 제작할 가치가 있는 작품들을 학생들 스스로 설계, 제작, 평가하여 봄으로써 창의성과 실무능력, 복합학제적인 팀웍 능력, 리더의 역할을 수행할 수 있는 작품을 개발한다.
IT융합기술 (IT Convergence Technology) 최근 다양한 분야에서 컴퓨터 융합기술이 사용되고 있다. 이러한 컴퓨터 융합기술의 개념과 발전 동향, 그 활용 예들을 고찰하고, 다양한 분야의 컴퓨터융합 기술의 응용에 토론한다.
고급시스템프로그래밍 (Advanced System Programming) 리눅스 운영 체제의 시스템 호출 API를 이용한 시스템 프로그래밍 기술을 배운다. 디바이스 드라이버의 개발, 병렬성의 제어, 비동기적인 논리 흐름 간 정보 전달 및 자원 공유 등의 문제를 해결하기 위해 필요한 운영체제 시스템 호출 API 수준에서의 프로그래밍 기술을 강의한다.특징 : 소프트웨어 개발 심화 과정, 실습 과목
기계학습 (Machine Learning) 이 과목은 경험치를 기반으로 학습하는 컴퓨터시스템을 어떻게 만들어 낼 것인가를 다루는 학문분야로, 이 과정에서는 머신러닝의 많은 개념 및 기법들과 관련 알고리즘들을 학습함. 특히 분류, 선형회귀 분야 뿐 아니라 최신 분야인 부스팅, 서포트 벡터머신 딥러닝 및 베이시안 네트워크등을 학습한다.
네트워크보안 (network security) 네트워크 영역에서 널리 사용되는 3대 툴을 소개한다. 그리하여 방화벽/웹방화벽, 침입탐지/예방시스템, VPN을 다룬다. 3대 툴의 설치, 설정, 운용방법을 익힌다. 또한 IPv6를 소개하고 IPv6에서의 보안을 소개한다.
마이크로프로세서응용 (Microprocessor Applications) 마이크로프로세서 구조 및 프로세서의 종류에 대하여 강의하고, Register, Bus, ALU 등에 대해 각종 프로세서의 예를 들어 설명한다.
빅데이터 (Big data) 빅데이터와 이의 활용에 대한 기초지식을 습득하는 것을 목적으로 한다, 즉, 대량의 정형 또는 비정형 데이터 집합과 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술을 학습한다.
사물인터넷 (Internet of Things) 이 과목에서 우리는 센서와 인터넷을 갖는 다양한 사물들로 구성되는 사물인터넷의 구조와 응용에 대하여 공부한다. 우리는 또한 사물인터넷을 위한 오픈소스 하드웨어와 소프트웨어를 실습한다.
소프트웨어공학 (Software Engineering) 소프트웨어의 생산성과 재사용성을 향상시키기 위한 소프트웨어 개발의 공학적 접근법과 CASE(Computer Aided Software Engineering) 등을 학습한다. 소프트웨어 개발 수명주기에 대한 이해와 생산성 향상, 그리고 스프트웨어 품질관리를 위한 방법론을 다룬다.
인공지능 (Artificial Intelligence) 인공지능의 기본개념, 명제 및 술어논리와 비단조 논리, Lisp 언어, 지식의 표현방법, 각종 탐색기법, 버전 공간과 결정트리, 귀납과 연역 학습이론, 불완전한 정보에서의 계획수립, 불확실성, 영상이해, 자연언어 처리의 이론 배경을 습득한다.
컴퓨터공학특강 (Topics in Computer Engineering) 컴퓨터 분야는 급속하게 변화되어 항상 새로운 내용과 연구 분야가 창출되고 있다. 기계학습, 모바일 컴퓨팅, 클라우드 컴퓨팅, 빅 데이터 처리, 사물인터넷 등 컴퓨터공학 분야 전반에 걸쳐 최근 많이 연구되고 있는 컴퓨터 기술들의 선별하여 탐구한다.
컴퓨터보안 (Computer Security) 본 과목에서는 정수론, 정보이론 등을 기반으로 고전 암호방식과 대칭 및 비대칭 암호방식, 공개키 암호방식, 지식-제로 상호증명 방식 등을 다룬다. 또한 본 교과는 이러한 암호방식을 이용한 개인식별과 인증, 디지털서명, 키 관리 등의 컴퓨터 보안 서비스들과 국내외 표준 암호방식, 그리고 이러한 암호이론의 적용분야로써 컴퓨터 통신보안 및 네트워크 보안에 관하여 살펴본다.