• 검색 결과가 없습니다.

프로그래밍언어 강의 개요

N/A
N/A
Protected

Academic year: 2022

Share "프로그래밍언어 강의 개요"

Copied!
16
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

프로그래밍언어 강의소개

2014-1 프로그래밍언어

2014. 3. 1.

교수 김 영 탁

영남대학교 공과대학 정보통신공학과

(Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr)

(2)

프로그래밍언어 강의 개요

‹목적

z C 프로그래밍언어를 기반으로 한 공학문제의 해결 방법 습득, C++ 프로그래밍언어의 기본 지식 습득 및 객체 지향형 프로그래 밍,소프트웨어 시스템 설계 및 구현 지식 습득

z 관련 C/C++ 프로그래밍 실습 z C/C++ 기반 설계 프로젝트 수행

z 선수과목: 정보통신공학 개론, 컴퓨터 프로그래밍 (C, Java)

‹

교재 및 참고문헌

[1] Walter Savitch, Absolute C++, 5th Ed, Pearson, 2013.

[2] 천인국, 쉽게 풀어 쓴 C언어 Express, 개정판, 생능출판사, 2012.

(3)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

인류의 문명 진화

‹

인류는 새로운 도구를 효율적으로 현명하게 사용함으로 써 문명을 진화시켰음

z increased

productivities

with new tools of new materials, powered machines:

ƒ from stone, stick, bronze, iron, telephone and computers z increased

collaborations

among multiple persons

z increased

performance

in value creation z increased

energy efficiencies

z 컴퓨터와 프로그래밍을 통하여 이러한 기능을 강화시킴

(4)

프로그래밍언어 과목을 통하여 무엇을 배우나?

‹ “엔지니어”로 생각하고 설계하는 방법을 배운다.

z Technician (기능공) vs. Engineer

z Simple passive & repeated implementation vs.

creative design (창의적 설계) and fast prototyping (신속한

‹

알고리즘의 기초에 대하여 배우며, 설계된 알고리즘에 따 라 프로그램을 설계/구현하는 기법을 배운다.

‹ C/C++ 프로그래밍 기법을 배운다.

‹

프로그래밍의 즐거움을 느낄 것이다!

(5)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

소프트웨어 시스템 설계 및 구현 단계

Source codes .c, .cc

Object codes .o

Program Execution output Compile

Link Executable codes

.exe Load

Execute

Correct Output ?

Mission Completed !!

Edit program source code Analysis of the requirement

Evaluate Feasibility

Algorithmdesign Data structure design Software system design

Subsystem design Block design Module design Class / Function design

설계(Design) 구현(Implementation)

Problem Specifications (Requirements,

Objectives)

Syntax Error

Logical Error

(6)

알고리즘

‹Algorithm is a list of instructions

z when executed,

transform information from input to output

z The instructions are a

finite set of steps

that can be executed, in a

definite deterministic order

z When these steps are actually executed,

the execution must

terminate

after a finite time.

‹ Pseudo code

z Simplified list of instructions to show the overall process of algorithm

z not following the details of programming language z the skeleton of the algorithm should be shown

(7)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

자료구조 (Data Structure)

‹

모든 소프트웨어 개발에서는 효율적인 알고리즘과 이 알고리 즘에 적합한 자료구조를 사용하여야 우수한 성능을 발휘할 수 있음

‹

알고리즘의 예

z sorting (정렬): selection sorting, quick sorting

z search (탐색): depth-first search, breadth-first search z shortest path, minimum spanning tree

‹

자료구조의 예

z 단순 배열 (simple array) z 구조체 (structure)

z 구조체 배열 (array of structure)

z 자기참조 구조체 (self-referential structure) z Linked List, Binary Tree

z Heap, priority queue z Map, Skip list

(8)

효과적인 프로그램 개발 방법 (1)

‹

프로그램 설계 (알고리즘 및 자료구조 설계)에 더 많은 시 간을 투자할 것

z 주어진 문제를 해결하기 위한 효율적인 알고리즘을 먼저 구성 할 것

z 구성된 알고리즘에 적합한 자료구조를 선택할 것

z 예) 100,000개의 학생 데이터로 부터 0.01초의 데이터 처리 시간 내에 특정 조건을 만족하는 학생을 탐색 (search)하여야 하는 경우 , 어떤 자료구조를 사용하며, 어떤 방식으로 탐색할 것인가 ?

ƒ array vs. linked list vs. binary tree

ƒ linear search vs. binary search

(9)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

효과적인 프로그램 개발 방법 (2)

‹

프로그램 오류 수정을 위한 debugging 방법을 먼저 숙 달 할 것

z 프로그램 소스코드 상에 존재하는 문법적 에러 및 논리적인 에러 를 빨리 찾아내는 방법을 먼저 숙달

z Visual studio의 debugging 기능을 먼저 확인하고, 숙달할 것

ƒ break point 기능

ƒ trace 기능

ƒ 각 단계에서의 local variable 값 확인

(10)

강의주제 (1)

Part 1) 알고리즘과 프로그래밍 소개 - 컴퓨터, 프로그래밍과 소프트웨어

- 순서도 (flow chart)와 의사코드 (pseudo code) - 알고리즘

- 자료구조

Part 2) Structured Programming - 조건문: if, if-else, switch

- 입출력, printf, scanf

- 반복문: for, while, do-while - 함수 (function)

- 재귀 (recursion)

- 배열 (array), 탐색 (searching)과 정렬(sorting) - 파일 및 파일 입출력

- 구조체 (structure)

- 동적 메모리 할당 (dynamic memory allocation) - 포인터 (pointers)

(11)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

강의주제 (2)

Part 3) 객체 지향형 ( object programming) 프로그래

- 객체 지향형 프로그래밍 소개밍 개요

- 클래스 (class)와 객체 (object)

- 캡슐화 (encapsulation), 추상화 (abstraction), 정보 은닉 (information hiding)

- 소프트웨어 재사용 (software reuse)과 상속 (inheritance) - Operator overloading

(12)

수업 진행 및 평가 (1)

‹

강의 및 실습

z 주당 2 시간 강의 z 주당 2 시간 실습

z 주강 2 시간 보충 설명 시간

‹

시험

z 학기당 실기 시험 4회

ƒ 시험 1: 3월 29일 (토요일)

ƒ 시험 2 (중간고사) : 4월 23일 (수요일)

ƒ 시험 3: 5월 24일 (토요일)

ƒ 시험 4 (기말고사) : 6월 18일 (수요일)

z 각 실기시험에 구두 시험 (oral test) 포함

‹ 과제물 (homework)

z 각 장 (chapter) 별로 homework 부과

z 과제물 보고서는 각 장 별로 분리하여 제출

z 과제물 제출 기한: 과제물 공지 후 1주일 이내 (수업시간에 제출) z 과제물 제출 기한 초과시 1주일 단위로 20%씩 점수 감점

(13)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

수업 진행 및 평가 (2)

‹

설계 프로젝트 (Design Project)

z 공학교육인증 프로그램 (ABEEK)의 요구사항에 따른 4 주 분량의 설계 프로젝트 수행

z 설계 문서 작성

z 설계 및 구현, 성능 분석 z 발표

z 최종 보고서

‹

성적 평가

z 총 1000점 만점

z 시험 4회 x 100 점 = 400점 z 실습 200점

z 설계프로젝트 200점 z 출석 및 퀴즈 100점 z 과제물 100점

(14)

수업 진행 및 평가 (3)

‹ 조교 (Teaching Assistant: TA)

z 황현동: 박사과정 (차세대 네트워킹 연구실, IT관 304호실) z 전화 : (053) 810-3940

z E-mail: mch2d@ynu.ac.kr

‹ 강의지원시스템

z 강의자료 및 보충 설명자료 z 실습자료

(15)

Advanced Networking Tech. Lab.

Yeungnam University (YU-ANTL) Programming language

Prof. Young-Tak Kim

이 과목에서 배울 12 가지 중점 주제 (1)

<Part 1: C>

1) 2차원 배열을 사용한 5×5 행렬 계산 : 행렬 덧셈, 뺄셈, 곱셈, 행렬식, 역행렬

2) 100,000개 요소에 대한 선택정렬, quick sorting, 정렬 시간이 비교 3) 구조체 (structure)

4) 구조체 배열에 대한 정렬: Selection sorting of array of structure, Quick sorting of array of structure

5) 포인터 (pointer)

6) 2차원 배열의 동적 생성, 7 × 7 행렬 계산

7) 자기참조 구조체 (self-referential structure)기반의 연결 리스트 (linked list)

8) 이진 트리 (binary tree)

(16)

이 과목에서 배울 12 가지 중점 주제 (2)

<Part 2: C++>

9) 클래스(class)와 객체 (object): 클래스 선언 및 구현 (private data member, member function), encapsulation, abstraction,

information hiding

10) operator overloading: +, -, *, /, ==, !=, ++, --, ! (determinant of matrix), ~ (inverse of matrix)

11) 클래스 상속 (inheritance of classes)

12) 가상함수 (virtual function)와 polymorphism (同質異形)

참조

관련 문서

School of Mechanical Systems Engineering Advanced Design

duction of Architectural Design and Planning 4.2.1 개요. l 식사의 기능

School of Mechanical Systems Engineering Advanced Design Engineering..  40가지

Source: A Policy on Geometric Design of Highways and Streets (The Green Book)..

School of Mechanical Engineering Chonnam

• 잡음의 영향 하에서 성능특성치의 분산을 작게 함과 동시에 평균 을 목표치에 근접시킬 수 있는 제어인자의 적절한 수준을 찾음 (1) 직교배열표를 이용하여

School of Mechanical Engineering Chonnam

School of Mechanical Systems Engineering Chonnam National University..