국립목포해양대학교 컴퓨터공학과

교육 교과목소개

교육

교과목소개

페이스북 인스타그램 유튜브 프린트

컴퓨터공학 개론 (Introduction to Computer Engineering)

새롭게 컴퓨터 분야에 입문하는 학생들에게 소프트웨어와 하드웨어, 인터넷, 정보 처리 등 다양한 주제를 소개하는 것을 목표로 한다.

파이썬 및 실습 (Python Programming & Lab.)

프로그램을 처음 시작하는 신입생을 대상으로 프로그래밍에 필요한 기초 지식과 개념을 학습한다. IDE 사용법, 변수와 상수, 반복문, 조건문, 함수, 리스트, GUI 프로그래밍 등 파이썬의 특징에 기반한 프로그래밍 방법을 배우고 실습한다.

이산수학 (Discrete Mathematics)

컴퓨터에서 활용되는 수학적 개념의 학습을 목표로 한다. 이를 위하여 실세계와 컴퓨터 자료와의 인과관계를 다루는 명제, 논리와 집합 이론 등을 학습하고, 이를 바탕으로 추론 규칙을 다룬다. 또한 재귀, 관계 및 함수 등을 학습함으로써 컴퓨터에서 다루어지는 문제들을 해결하기 위해 이런 이론들이 어떻게 활용되는지 살펴본다.

C 언어 및 실습 (C Programming & Lab.)

C 언어의 기본 원리와 프로그래밍 개념을 이해함을 목표로 한다. 이를 위하여 C 언어의 기본 원리, 변수 선언과 정의, 반복문, 조건문, 함수구현 및 호출, 포인터와 구조체 등을 학습한다.

창의공학설계 (Creative engineering design)

창의적인 문제 해결 방법과 컴퓨팅 사고 방법을 학습하고, 문제 해결을 위해 창의성을 바탕으로 도출된 기본적인 아이디어를 설계하는 방법을 학습하고, 다양한 도구를 이용해 아이디어를 구현하는 방법을 학습한다.

논리회로(Logic Circuit)

논리회로의 기본 요소인 각종 게이트 소자에 대한 개요와 역할, 그리고 활용에 대하여 학습하고, 부울 대수, 조합논리회로, 플립플롭 및 순차논리회로, 디지털 응용 회로 등에 대한 구성과 동작에 대해 학습한다.

자료구조 및 실습 (Data Structure & Lab.)

본 교과목은 이산수학과 프로그래밍 언어 등에 대한 지식을 기반으로, 알고리즘의 기본 개념과 분석 방법, 배열, 리스트, 큐, 스택, 트리, 그래프 등의 기본 자료구조에 대한 개념과 활용 방안을 학습한다.

C++ 및 실습 (C++ Programming & Lab.)

복잡하고 규모가 큰 시스템을 개발하는데 있어, 확장성 및 재사용성을 고려한 객체 지향 개념은 필수적이다. 이 과목은 주요 객체지향 프로그래밍 언어 중 하나인 C++을 학습하여 여러 문제를 해결하는데 활용 할 수 있는 능력을 키운다. 이를 위해 클래스, 상속, 오버로딩/오버라이딩, 입출력시스템 등을 다룬다.

웹프로그래밍 및 실습 (Web Programming & Lab.)

웹 프로그래밍에 필요한 프런트엔드 기초 기술을 다룬다. HTML5, CSS3, 자바 스크립트의 사용법을 배우고, 그들을 조합하여 웹 프로그램을 완성하는 방법을 학습한다.

UNIX 및 실습 (Unix & Lab.)

서버 환경의 대표적인 운영체제인 UNIX(LINUX)의 기본 명령어와 다양한 유틸리티, 쉘 프로그래밍, UNIX 환경에서의 프로그램 개발 방법 등을 학습한다.

전공영어(English in Computer Engineering)

컴퓨터공학 용어들은 대부분 영어로 되어 있는데, 이들 용어들에 대한 이해는 전공 학습에서 매우 중요한 요소이다. 해당 과목은 컴퓨터 하드웨어와 소프트웨어에서 사용되는 다양한 영어 표현을 배우고, 지속적으로 발전해가는 컴퓨터공학 분야의 신기술과 이에 관련된 영어 용어들을 학습함을 목표로 한다.

컴퓨터구조 (Computer Architecture)

컴퓨터를 구성하는 구성요소의 기능과 그들 상호간의 작용을 이해하고 이를 바탕으로 컴퓨터 시스템을 구현하는데 사용되는 여러 설계 기법들을 학습한다. 명령어집합, 중앙 처리장치, 파이프라이닝, 메모리 계층구조, 입출력장치, 멀티프로세서 등을 학습한다.

알고리즘 및 실습 (Algorithms & Lab.)

컴퓨터 응용 분야의 여러 문제들을 해결하는데 유용한 알고리즘들(다양한 탐색 기법, 정렬 기법, 해싱, 그래프에서의 탐색 기법 등)을 이해하고, 문제의 특성에 맞는 알고리즘을 선택할 수 있도록 알고리즘의 성능 분석에 필요한 이론을 소개하는데 그 목적이 있다.

UNIX 프로그래밍 및 실습 (Unix Programming & Lab.)

서버 환경의 대표적인 운영체제인 UNIX(LINUX)의 기본 명령어와 다양한 유틸리티, 쉘 프로그래밍, UNIX 환경에서의 프로그램 개발 방법 등을 학습한다.

윈도우프로그래밍 및 실습 (Window Programming & Lab.)

소프트웨어 사용의 편리성을 위한 GUI(Graphic User Interface)는 소프트웨어 개발에 있어 중요한 요소이다. 이 과목은 GUI를 기본으로 하는 윈도우즈 운영체제에서 실행되는 응용프로그램 개발을 위한 프로그래밍 기술을 익히고 활용 할 수 있도록 하는데 그 목적이 있다. 이를 위해 윈도우즈API와 MFC 라이브러리를 이용한 프로그래밍 기법을 다룬다.

웹 프로그래밍 응용 및 실습 (Advanced Web Programming & Lab.)

웹 프로그래밍을 위한 백엔드 기술인 PHP와, 자바 스크립트 라이브러리인 JQuery 프로그래밍 기법을 학습한다. PHP를 통해 서버 사이드 프로그램의 기능과 데이터베이스 연동 방법을 학습하고, JQuery를 통해 애니메이션과 이펙트, DOM 다루기, 객체, 함수의 활용법을 학습한다.

확률과 통계 (Probability & Statistics)

정보통신 분야에서 기본이 되는 확률 이론과 이의 통계학적 응용에 대해 학습한다. 이를 위하여 확률의 기본 개념과 조건부 확률, 확률적 독립성, 확률 분포, 확률과정 등을 소개한다. 또한 통계적 추정 및 검정, 분산분석, 회귀분석 등에 관하여 소개한다.

운영체제 (Operating System)

컴퓨터구조와 프로그래밍 언어 등에 대한 지식을 기반으로 컴퓨터시스템의 핵심인 운영체제의 구성 요소들과 각 기능, 관련 알고리즘 등을 학습한다. 운영체제의 구성, 프로세스 관리, 기억장치 관리, 파일시스템, 입출력 장치 관리, 분산시스템, 보호 및 보안 등을 배운다.

데이터베이스 (Database )

관계형 데이터베이스의 기본 개념과 사용법에 대하여 학습한다. 데이터 모델, DBMS, 데이터베이스 설계, SQL, 트랜잭션 관리 및 회복, 보안 기법 등에 대하여 학습한다.

Java 및 실습 (Java Programming & Lab.)

객체지향 개념을 지원하며 다양한 플랫폼에 독립적인 프로그래밍 언어인 Java의 특징을 이해하고, Java SDK에서 제공하는 기본적인 라이브러리를 이용한 프로그램 개발 능력을 기른다. 주요 내용으로 클래스, 상속, 다형성, 인터페이스, 제네릭, 그래픽 처리(AWT, 스윙), 입출력 시스템 등과 관련한 문법 및 라이브러리 패키지 사용법을 다루고, 실습 및 과제물을 통해 구체적인 문제에 적용하는 방법을 익힌다.

임베디드시스템 설계 (Embedded System Design)

컴퓨터공학 엔지니어로서 마이크로컨트롤러의 활용에 대한 실무능력을 배양하는 것을 목표로 한다. AVR 계열의 마이크로컨트롤러를 중심으로 직병렬 I/O포트, 인터럽트, 타이머/카운터, Display 등에 대한 다양한 프로젝트를 수행하고 응용분야에 필요한 주변회로의 설계 제작과 프로그램을 학습한다.

객체지향 모델링 (Object-Oriented Modeling)

컴퓨터 응용에서 복잡하고 규모가 큰 시스템을 분석하여 설계하는데 있어, 확장성 및 재사용성을 고려한 객체 지향 개념은 필수적이다. 해당 과목는 시스템 개발을 위한 객체지향 분석 및 설계에 필요한 개념을 이해하고, 분석 및 설계 과정을 적절히 표현하기 위한 도구로 활용되는 UML(Unified Modeling Language)과 많은 문제들에 공통적으로 사용되는 디자인 패턴들을 익히는 것을 목적으로 한다.

영상처리 (Image Processing)

2차원 디지털 영상처리의 기본 개념과 그 이론을 이해하고 실제적으로 응용할 수 있는 능력을 배양함을 목표로 한다. 이를 위하여 영상의 표현, 잡음 제거, 명암 대조 개선, 히스토그램 분석 등의 화질 개선 분야, 이진화, 영상 분할, 영상 표현 등의 영상 특징 추출 분야, 영상 해석을 포함하는 영상 이해 분야, 그리고 주파수 도메인의 영상 처리, 비디오 압축, 움직임 추정 등의 주제를 학습한다.

오토마타 (Automata)

오토마타는 컴퓨터의 수학적 모델이다. 이 과목은 오토마타와 오토마타가 인식 할 수 있는 형식언어를 바탕으로 컴퓨터 시스템의 기본 원리를 이해하는 것을 목적으로 한다. 이를 위해 유한 상태 오토마타와 정규 언어, 푸시다운 오토마타와 문맥-자유언어, 튜링 기계 등을 학습한다.

데이터분석 및 실습 (Data Analysis & Lab.)

데이터 분석은 데이터에서 의미 있는 패턴과 통찰을 획득하여 의사결정을 지원하기 위한 기술이다. 이 과목은 데이터 수집, 가공, 분석, 시각화 등 데이터를 효과적으로 다룰 수 있는 방법들을 학습하여 실제 데이터 분석에 활용 할 수 있는 능력을 키우는데 그 목적이 있다.

프로그래밍 언어론 (Programming Languages )

컴퓨터공학 전공자로서 접하게 되는 다양한 프로그래밍 언어가 갖는 공통적인 구조와 개념에 대해 총괄적으로 학습한다. 변수, 제어 구조, 객체, 함수 등 다양한 부류의 프로그래밍 언어가 갖는 특징과 개념을 이해함으로써 프로그래밍 언어의 기능에 대한 이해를 넓히는 것을 목표로 한다.

소프트웨어공학 (Software Engineering)

신뢰성 높은 소프트웨어를 효율적, 효과적으로 개발하기 위한 기법을 배운다. 소프트웨어 생명 주기를 이용하여 요구사항분석, 요구사항정의, 설계, 구현, 검증, 테스트, 유지, 보수에 이르기까지 소프트웨어의 개발과 유지 보수 등 소프트웨어 개발의 전 과정에 대한 전반적인 내용을 학습하고, 실례를 통하여 익힌다.

컴퓨터 네트워크 (Computer Networks)

컴퓨터 네트워크의 핵심 참조모델인 OSI 7계층 중 데이터 링크 계층 상위에 있는 네트워크 계층, 트랜스포트 계층, 세션 계층, 표현 계층, 그리고 응용 계층에 대한 이론을 바탕으로 소켓을 기반으로 하는 네트워크 프로그래밍에 필요한 기반 지식과 실기를 학습한다.

Java응용 및 실습 (Advanced Java Programming & Lab.)

Java SDK에서 제공하는 다양한 주제의 라이브러리 패키지를 이용한 고급 프로그램 개발 능력을 기른다. 주요 내용으로 멀티쓰레딩, 네트워크 프로그래밍, JDBC 등을 다루고, 실습 및 과제물을 통해 구체적인 문제에 적용하는 방법을 익힌다. 선수과목으로 운영체제, 컴퓨터네트워크, 데이터베이스, Java및실습 이수가 필요하다

데이터베이스 응용 및 설계 (Advanced Database & Design)

NoSQL의 하나인 MongoDB 명령어들을 학습함으로써 관계형 데이터베이스가 아닌 다른 유형의 DBMS의 특징을 배운다. 고급 언어인 PHP와 Python에서 MySQL, MongoDB의 연동법을 학습함으로써 고급 응용 프로그램에서 데이터베이스가 설계되고 연동되는 방법을 이해한다.

컴퓨터비전 (Computer Vision)

컴퓨터 비전은 인공지능의 한 분야로서 사람의 시각을 로봇에게 인공적으로 부여하기 위한 기술들을 의미한다. 본 강의에서는 카메라를 통해 컴퓨터에 입력된 영상의 내부 표현, 전처리, 컬러 시스템, 특징 추출, 매칭, 기계 학습 등의 주제를 다룬 다음, 최근 크게 발전하고 있는 신경망, 합성곱 신경망 그리고 이것들을 이용한 영상인식 기술들을 소개한다.

모바일 프로그래밍 (Mobile Programming )

대표적인 모바일 프레임워크인 안드로이드 플랫폼에 대한 이해와 위젯, 이벤트 처리, 액티비티와 같은 컴포넌트에 대해 학습한다. 또한, 기초 안드로이드 앱에서부터 센서, 지도 등을 활용한 고급 프로그래밍을 통해 안드로이드 플랫폼이 제공하는 다양한 서비스를 활용할 수 있는 기반 지식을 갖춘다.

차세대 컴퓨팅 세미나 (Next-generation Computing Technologies)

4차 산업 혁명과 관련된 스마트 기술에 대해 학습한다. 인공지능, 빅데이터, IoT, 블록체인, VR/AR/MR/XR, 자율자동차, 스마트홈/스마트팩토리/스마트헬스케어, 3D 프린터, 드론 등의 최신 기술의 기본 개념과 특징들을 학습함으로써 미래 사회에 필요한 기술들을 이해하고 활용하는 방법을 배운다.

기계학습 (Machine Learning)

기계학습은 새로운 경험(데이터)을 통해 성능을 향상시켜 나가는 것과 관련한 인공지능 기술이다. 이 과목은 기계학습의 개념과 용어, 회귀, 분류, 군집 등의 주요 알고리즘과 최근 뛰어난 성능을 발휘하고 있는 딥러닝 기술을 이해하고, 이를 문제해결에 활용 할 수 있는 능력을 키우는데 그 목적이 있다.

캡스톤 디자인 (Capstone Design )

전공에서 배운 모든 지식을 망라하여 하드웨어와 소프트웨어의 설계부터 구현까지 전체 과정을 실습한다. 팀에 기반하여 진행하며, 팀별로 주제를 정하여 전 과정을 실습함으로써 창의성을 개발하고, 협업의 기본을 배운다.

네트워크 프로그램 설계 (Network Program Design)

컴퓨터 네트워크, 프로그래밍 언어 등에 대한 지식을 바탕으로 인터넷 주요 응용 프로토콜의 동작과 구성을 학습하고 이를 바탕으로 응용 프로그램을 설계하고 구현한다.

정보보안 (Information Security)

운영체제, 컴퓨터 네트워크, 인터넷프로토콜 등에 대한 지식을 바탕으로 암호화, 인증, 전자서명 등의 기본 개념과 주요 해킹 기법, 시스템 및 망 취약성 등을 익히고, 이를 통해 시스템 보안, 네트워크 보안, 모바일 보안 등을 학습한다.

해양IT (Marine IT)

VHF, AIS 등의 선박통신과 레이다, ECDIS 등의 항법 장비에 대한 종류와 개요를 이해시키고, 관련 장비들이 연계되어 항해정보 및 해상교통관제시스템을 구성하는 계통에 대하여 강의한다. 해상정보의 교환과 모니터링 그리고 안전 항해를 목적으로 하는 해상 안전 정보 및 관련 SW의 운용과 발전 동향을 제시함으로써 학생들이 장차 해양ICT 분야에 진출할 수 있는 기본능력을 배양한다.

공학글쓰기 (Technical Writing)

공학 관련 보고서, 논술식 리포트, 졸업 논문 등의 작성에 필요한 글쓰기 능력을 향상시키기 위해 주제작성, 글의 구성과 전개, 문장과 표현 등의 방법을 배우는 것을 목적으로 한다. 이를 위해, 글쓰기와 문제 해결, 공학적 사고, 다섯 단락 글쓰기, 제품 제안서 작성, 발표자료 작성 등을 학습한다.

인공지능 (Artificial Intelligence)

지적 능력을 컴퓨터를 통해 실현시키고자 하는 다양한 기술들을 이해하고, 이를 이용한 응용 예를 살펴봄으로써 지능 시스템 구현 방법을 이해하는 것을 목적으로 한다. 이를 위해 인공지능 기술 중 탐색, 불확실성, 전문가 시스템, 퍼지, 인공신경망, 유전알고리즘, 하이브리드시스템 등을 학습한다.

ICT 창업 전략 (ICT Startup Strategy)

ICT 산업에서 컴퓨터공학 전문인이 쉽게 접근할 수 있는 소프트웨어 및 하드웨어 분야에 대하여 심도있게 조사하고, 실무수행 가능성 및 애로사항을 분석하여 평가하는 세미나 과정을 갖는다. 세미나 과정에서 제시되는 관련 기술분야에 대한 소프트웨어의 설계기법, 임베디드 응용의 인터페이스와 네트워크 설계에 필요한 이론과 실무기술에 대하여 실험실습 중심의 수업을 진행한다.

정보보안 응용 및 실습 (Advanced Information Security)

정보보안의 최신 기술을 응용하고 활용하는 방법에 대해 학습한다. 특히, 클라우드 환경에 대한 이해와 기본적인 가상 인프라 구축, 클라우드 보안을 위한 위협 모니터링, 보안 아키텍처 구축 등을 학습한다.

해양 ICT 실무 (Marine ICT Practice)

e-Navigation 및 자율 운항 선박 분야에 요구되는 선내 모니터링 및 원격 콘트롤에서 필수 요소인 각종 센서의 활용, 인터페이스 설계 그리고 선박 내 네트워크의 구성과 관련 SW 설계에 필요한 기본지식을 습득한다. 선박의 항해, 기관, 통신설비는 물론 전기안전, 선내보안, 화재감시, 화물 상태, 연료 및 청수량 등의 모든 상태를 모니터링하고 평가하여 최적화로 자동원격제어 하는 실무를 학습한다.

스마트 전력 ICT개론 (Introduction to Smart Power ICT)

전력ICT는 전력 기술에 정보통신 기술을 융복합화 하여 전력 기기와 전력 시스템을 디지털화, 지능화하고, 이를 통해 전력 공급의 신뢰도 향상, 전력 품질 개선, 전기화재 비율 감소, 전력 거래의 활성화, 대규모 수용가 중심의 전기 절약 등을 도모하기 위한 기술이다. 본 강의는 발전, 변전, 송전, 배전, 전력판매, 전력거래, 전력보안, 전력정보시스템 등의 전력계통과 이와 관련된 ICT 기술을 소개함으로써, 전력 ICT 분야에 대한 폭넓은 기초 지식을 갖추도록 하는데 그 목적이 있다.

ICT학점연계인턴쉽 (ICT Curriculum Associated Internship)

정규학기 중 산업체 현장실습을 통해 취업 진로 계획을 수립하고 정규학기 강의에서 얻기 어려운 전공 분야의 트렌드를 습득한다.

현장실습I, II, III(Field Exercise I, II, III)

산업체 현장실습을 통해 취업 진로 계획을 수립하고 정규학기 강의에서 얻기 어려운 전공분야의 트렌드를 습득한다.