- SW융합개론(Introduction to SW Convergence)
-
소프트웨어융합의 각 분야에 대한 소개와 분야별 기초 전공 지식을 습득하고 이해하는데 있다. 컴퓨터시스템활용능력, 부분에서 기본적인 컴퓨터의 의해와 발전과정, 정보의 표현방법을 학습하고 소프트웨어 부분에서 프로그래밍언어와 운영체제에 대한 내용을 학습한다. 그리고 네트워크와 인터넷, 첨단정보기술 및 보안에 대한 내용을 학습한다.
- 컴퓨터구조 (Computer Architecture)
-
컴퓨터구조는 시스템소프트웨어(OS)와 함께 컴퓨터시스템(하드웨어)을 구성하는 핵심 기술이다. 일반적인 컴퓨터의 핵심 구성요소인 CPU의 구조와 기능, 산술 및 논리 연산 방법, 제어장치, 기억장치, 시스템버스, 보조 저장장치, 입출력장치 등의 구조와 기능 등을 이해하고 상호 동작 메커니즘을 분석할 것이다.
- 파이썬프로그래밍 (Python Programming)
-
본 교과목은 일반 응용프로그램 개발 뿐만 아니라 데이터분석, 기계학습, 딥러닝 분야에 필수적인 파이썬(Python) 언어를 활용하여 프로그램의 원리와 논리 구조를 학습한다. 특히, 소프트웨어 융합분야의 다양한 문제에 대한 해결과정과 파이썬 코딩 능력 향상을 위한 교육을 수행한다. 파이썬 언어에서 입출력 데이터의 표현 및 저장, 선택 및 반복 제어 구조 등을 이해하고 예제 중심으로 논리적 표현과 원리를 실습한다. 또한, 튜플, 리스트, 딕셔너리 등을 학습한 후 데이터분석과 시각화에 대해서도 학습한다.
- 인공지능과데이터 (Artificial Intelligence and Data)
-
인공지능의 기본 개념과 현재와 미래에 나아가야 할 방향 그리고 윤리문제 등을 함께 고민해 보고, 인공지능에 필요한 머신러닝, 규칙 기반 모델 및 신경망과 딥러닝, 지도학습과 비지도 학습, 강화 학습 등을 배우고 인공지능의 활용 등을 익힌다.
- 프론트엔드프로그래밍 (Frontend Programming)
-
멀티미디어 콘텐츠 제작이라는 과목에서는 누구나 쉽게 인터넷이나 모바일상에서 볼 수 있는 웹/앱 페이지를 제작해보는 수업으로 HTML5라는 언어를 이용하여 웹페이지, 모바일 앱 페이지의 제작에 필요한 기본 구조를 다뤄보고, 기본 구조위에 CSS를 이용하여 웹/모바일 앱 페이지의 다양한 서식을 제작함으로써 요즘 유행하는 반응형 웹/모바일 앱 페이지를 제작해보고, JavaScript를 이용하여 동적인 기능을 이용해 본다.
- C프로그래밍
-
C 언어는 하드웨어 제어와 응용 프로그램 개발 등 모든 분야에서 활용되는 가장 기본적인 프로그램이다. 사물인터넷(IoT), 임베디 드, 데이터베이스, 네트워크, 어플리케이션 등 다양한 분야에서 사용할 수 있다. 프로그래밍 언어가 제공하는 다양한 자료형들을 이 해하고, 해당 자료들을 컴퓨터에 저장하는 법, 연산자를 이용한 수식 처리와 제어문의 작동 원리, 배열, 포인터, 구조체, 함수 선언과 매개 변수 활용법들을 학습하여 응용 프로그램 작성 능력을 함양한다.
- 자료구조(Data Structure)
-
전자계산에서 처리하는 데이터의 기본 개념과 이를 효율적으로 처리하는 방법에 대해 학습한다. 학습의 이해를 높이기 위해 Java 언어를 이용한 실습 및 과제를 활용한다.강의, 실습 및 과제를 통하여 Linked List, Stack, Queue, Recursion, Tree, Searching, Sorting, Graph 등의 기본적인 자료구조의 이해, 설계 및 분석 방법을 숙지하여 실무에 적용할 수 있는 프로그래밍능력 함양을 목표로 한다.
- C++ 응용 프로그래밍 (C++ Application Programming)
-
클래스를 기반으로 하는 C++ 프로그램의 기본적인 구조를 이해하고 이를 기반으로 하는 객체지향 프로그래밍의 구현 방법과 MFC(Microsoft Foundation Class)를 이용한 각종 컨텐츠 제작과 인터페이스 프로그래밍을 학습한다. 윈도우와 같은 운영체제는 그래픽 기반의 사용자 인터페이스(GUI)가 주류이며, 다양한 GUI 개발 환경 중 C++ 언어를 기반으로 하는 윈도우 프로그래밍 응용을 다룬다. MFC를 이용하여 윈도우즈 프로그램의 구조와 내용을 이해하고, 이벤트 기반 프로그래밍 기법과 GUI 기반 어플리케이션 소프트웨어 제작을 위해 사용자 인터페이스를 위한 대화상자, 파일 입출력, 데이터베이스, 네트워크 관련 응용 프로그래밍을 학습한다.
- Java프로그래밍(Java Programming)
-
Java 언어는 객체지향 언어로서 객체지향 프로그램의 기본개념인 객체, 클래스 및 상속 등의 이론들을 배우며 java 언어의 기본문법들을 숙지하고 실습한다. 그리고 자바의 다양한 응용분야 즉 자바쓰레드 활용법, 자바 예외처리 방법, 자바 GUI 프로그램을 개발할 때 사용하는 다양한 컴포넌트의 사용법을 배우고 실습한다. 향후 자바 소프트웨어 개발자, App 개발자, 웹개발자, 임베디드 개발자로 발전할 수 있는 기초언어 지식들을 습득한다.
- 빅데이터 컴퓨팅 (Big Data Computing)
-
빅데이터의 컴퓨팅을 위한 개념, 이론, 주요기법을 소개한다. 빅데이터의 구조와 특성을 이해하고, 빅데이터 처리를 위한 수집, 전처리,저장, 시각화, 빅데이터의 분석, 그리고 빅데이터 활용 등에 대해 학습한다. 실습 내용은 윈도우 환경에서 프로그래밍 언어 Python으로 빅데이터 처리기술과 소셜 네트워크 등에서 자동수집한 데이터를 바탕으로 Machine learning 모형을 설계하여 빅데이터 기반 자동화 예측 시스템을 개발하는 실습교육을 수행한다.
- 데이터통신과네트워크(Data Communication and Network)
-
인터넷 통신 기반기술로 데이터 또는 정보교환기술의 원리 및 시스템을 이해한다.: 프로토콜에 대한 이해, OSI 7 계층 참조모델에 대한 이해, 신호의 변환과 변조에 대한 이해, 전송 방식과 전송 매체에 대한 이해, 다양한 다중화 기술에 대한 이해, 다양한 회선 구성 방식과 교환 방식의 이해, 회선제어, 흐름제어, 오류제어 기술에 대한 이해, LAN/WAN/인터넷 관련 기술 이해, 이동 및 멀티미디어 통신에 대한 이해 등을 학습한다.
- SW 알고리즘 개발 (SW Algorithm Development)
-
(1) 프로그래밍원리와 자료구조를 이수한 2학년 이상의 학생을 대상으로 알고리즘의 개념과 분석방법 및 설계 및 개발기법을 학습한다.
(2) 자료구조, 반복알고리즘, 순환알고리즘, 정렬문제, 탐색문제, 최단경로 문제, 최소비용 신장트리문제, 문자열 매칭문제, 해싱, 최근접 쌍의 거리 문제 관련 알고리즘 원리를 배우고 실습한다.
- 백엔드프로그래밍 (Backend Programming)
-
인터넷이나 모바일상에서 볼 수 있는 웹개발 영역 중 backend 개발 방법을 학습한다. 프론트엔드에서 학습한 내용을 연결하여 웹서비스 제작에 필요한 기본 구조를 이해하고 JSP의 이론적 개념 - 기본 실습 - 응용 실습 순의 단계별 학습을 진행한다. 응용 실습이 합쳐져 하나의 웹서비스를 개발하는 방법을 학습한다.
- Linux 운영체제 (Linux Operating System)
-
컴퓨터 구조에 대한 이해를 바탕으로 컴퓨터 시스템을 구성하고 있는 자원들의 존재를 인식하고 어떤 정책을 적용하여야 이들의 효율성을 극대화할 수 있으며, 어떤 개념을 기반으로 정책을 수립하여야 이들 자원을 이용하여 사용자들에게 보다 편리한 기능을 제공할 수 있는 것인지를 알기 위하여 기본적으로 사용할 수 있는 정책과 개념에 대하여 학습한다. 또한, 이러한 기본 이론을 기반으로 현재 상용 리눅스 운영체제에서 구현하고 있는 정책의 진화된 모습을 파악하고 실제 문제에 적용하기 위하여 커널을 분석, 문제를 해결하는 능력을 키운다.
- 영상정보처리 (Image Information Processing)
-
IT 기술이 발전하면서 영상처리 기술의 활용이 일반화 되고 다양한 분야에서 영상처리기법이 사용되고 있다. 이 교과목에서는 여러 가지 영상처리의 알고리즘과 프로그래밍 기법을 학습한다. 영상신호의 특성을 이해하고 응용분야에 필요한 데이터의 처리방법과 영상신호의 프로그래밍 기법을 학습한다. MFC를 활용한 윈도우 프로그래밍 기법을 이용하여 영상처리를 위한 프로그램을 작성한다. 영상화일의 읽기와 저장 기능을 구현하고 여러 가지 알고리즘을 적용하여 처리 결과의 출력을 통해 알고리즘의 성능과 프로그램의 동작여부를 확인한다.
- 데이터베이스시스템 (Database System)
-
컴퓨터 이론 중 데이터베이스 분야와 관련된 DBMS 및 기타 이론에 대해 배운다.
데이터베이스의 기본적인 개념과 실용적인 이론을 중심으로 꼭 알아야 할 적절한 주제들을 다루고, 개념을 알기 쉽게 보여주는 그림들도 사용하여 데이터베이스에 관한 전반적인 이론을 파악한다. 실습 환경 DBMS를 기반으로 미리 알아두면 유용한 모든 이론 지식을 습득한다.
- 융합SW프로그래밍 (Convergence SW Programming)
-
리눅스 기반으로 작성된 각종 전자제품, 기계 장치, 홈N/W 기기 등의 임베디드 제품들을 스마트 폰의 앱으로 제어하는 응용 프로그램을 작성법을 학습한다. C 프로그램으로 작성된 각종 제품 디바이스들을 스마트 기기용 앱에서 제어할 수 있도록 공용 라이브러리 파일을 작성(JNI 프로그래밍) 해서 활용하는 원리와 기법들을 학습한다.
- 융합SW시스템설계 (Convergence SW System Design)
-
소프트웨어를 기반으로하는 시스템을 분석하여 설계하는 과정을 학습한다. 설계정보를 국제 표준 도구인 UML을 이용하여 모델링 방법을 학습한다. 실무기반의 팀 구성으로 대면/비대면으로 PBL을 적용하여 시스템을 모델링을 하는 방법을 학습한다.
- 모바일앱프로그래밍 (Mobile Application Programming)
-
스마트폰 활성화와 함께 전 세계적으로 가장 많이 사용되는 안드로이드 모바일 운영체제 환경에서 앱(App) 개발을 목표로 학습한다. 안드로이드 운영체제 환경에서 모바일 프로그램 개발자가 되기 위한 기본적인 지식을 단계별로 구성하여 좀 더 쉽게 이해할 수 있도록 핵심 이론과 실습 중심으로 학습한다. 특히, Android 플랫폼 기반의 기본 위젯과 레이아웃을 이용한 UI설계, 액티비티와 인텐트, Google Map구현, 그래픽 이미지, SQLite 등을 학습한다.
- 인공지능프로그래밍 (Artificial Intelligence Programming)
-
인공지능의 기본구조를 설계하고 기계학습을 위한 학습 알고리즘을 프로그래밍하는 방법을 소개한다. 신경회로망, 퍼지이론 및 유전자 알고리즘 등 최근에 많이사용되는인공지능 알고리즘에 대한 이해와 함께 이들을 적용한 지능형시스템의 구현 방법을 강의한다. 알고리즘의 구현을 통해 기본적인 데이터의 처리과정을 학습하고 프로그램으로 구현한다. 응용프로그램의 제작을 위해 인공지능 라이브러리의 사용 방법과 프로그램 구성을 학습한다.
- 융합SW공학과개발 (Convergence SW Engineering and Development)
-
신기술과 기술간 융합으로 고도화, 복잡화된 소프트웨어에 대한 전반적인 이해를 통하여 고품질의 소프트웨어를 개발하여 사용자에게 가치를 제공한다. 이를 위하여 소프트웨어 생명주기 전체 과정에 걸쳐 체계적이고 공학적인 접근을 통하여 소프트웨어 시스템을 개발하고 관리하는데 필요한 이론적 개념과 및 실무적인 기술 능력을 강화시킨다.
- 데이터구축및응용 (Data Construction and Application)
-
데이터 분석 오픈소스 플랫폼을 활용한 데이터 분석 기법과 이에 대한 구축을 학습하고, 이외의 다양한 최신의 오픈소스 데이터분석 플랫폼을 활용하는 기법에 대하여 학습한다. 또한 데이터 분석을 통해 획득된 지식을 활용하는 다양한 어플케이션들과 산업체 현장에서의 실제 사례에 대해 학습한다.
- 클라우드 컴퓨팅 (Cloud Computing)
-
클라우드 컴퓨팅 서비스에 대한 보급이 확대되면서 클라우드 중심으로 시스템을 개발하는 유형이 늘어나고 있다. 이에 부응하여 본 교과는 비즈니스/엔터프라이즈 애플리케이션의 인프라스트럭처 구축을 설명하고 그에 따른 실습을 한다. 보안과 성능 그리고 모니터링을 포함한 본격적인 비즈니스 애플리케이션을 구축하는 데 필요한 인프라스트럭처 서비스들을 직접 조작해보면서 클라우드 시스템에 관한 전반적인 이해를 돕는다. 또한 인공지능 모델을 활용하기 위한 환경을 구축하여 4차 산업혁명 시대에 적응할 수 있는 능력을 배양한다.
- 오픈소스 프로그래밍 (Open Source Programming)
-
오픈소스 SW에 대한 개념 및 오픈소스 SW 라이선스들을 소개하여 오픈소스 SW의 사용 및 기여에 대한 이해도를 높이는 것을 목적으로 한다. 또한 Git에 대한 기본적인 소개 및 실습을 진행하고, 개별 (혹은 팀별)과제를 통해 DIY 제작 등 오픈 소스 기반으로 SW 개발과 배포에 대해 학습한다.
- 융합SW캡스톤디자인 (Convergence SW Capstone Design)
-
융합적 사고 능력과 현장 중심의 개발 역량을 강화시켜서 융합 SW 개발 실무에서 경험할 수 있는 문제들을 해결할 수 있는 능력을 배양하는 것울 목표로 하여 전체 전공 관련 지식을 4차 산업 기술 도메인과 융합하여 산업 현장의 수요에 적합한 창의적 기술 인력을 양성한다. 이를 위하여 팀 단위로 협업하며 프로젝트 기획부터 구현까지 전 단계별 활동과 기법 및 도구를 적용하여 최종적으로 소프트웨어를 개발한다.
- 4차산업시대와신기술 (4th Industrial Era and New Technology)
-
4차 산업혁명은 연결, 탈중앙화/분권, 공유/개방을 통한 맞춤시대의 지능화 세계를 지향한다. 이 지능화 세계를 구축하기 위한 인공지능, 빅데이터, IoT, 클라우드 서비스, 블록체인 등의 여러 가지 기술들이 동원되는데, 맞춤시대의 지능화를 위해 현실세계의 모든 내용을 메타버스로 연결하는 새로운 기술과 대응전략을 학습한다.
- 컴퓨터보안 프로그래밍 (Computer Security Programming)
-
컴퓨터 보안 관련된 기본 이론을 설명한 후 오픈소스 툴을 사용하여 실습을 진행한다.
1. 보안과 해킹에 관한 개념 학습
2. 네트워크, 시스템, 프로그램, 인터넷, 모바일, SNS에서 발생되는 전반적인 보안과 해킹에 관한 기술을 학습
3. 암호의 기초적인 원리와 기술을 학습
4. 보안정책 및 보안 솔루션 등 보안관리에 대한 학습