프로그래밍언어 강의소개
2015-1 프로그래밍언어
2015. 3. 1.
교수 김 영 탁
영남대학교 공과대학 정보통신공학과
(Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr)
프로그래밍언어 강의 개요
목적
C 프로그래밍언어를 기반으로 한 공학문제의 해결 방법 습득, C++ 프로그래밍언어의 기본 지식 습득 및 객체 지향형 프로그래 밍,소프트웨어 시스템 설계 및 구현 지식 습득
관련 C/C++ 프로그래밍 실습
C/C++ 기반 설계 프로젝트 수행
선수과목: 정보통신공학 개론, 컴퓨터 프로그래밍 (C, Java)
교재 및 참고문헌[1] 천인국, 쉽게 풀어 쓴 C언어 Express, 개정판, 생능출판사, 2014.
[2] Walter Savitch, Absolute C++, 5th Ed, Pearson, 2013.
인류 문명의 진화와 컴퓨터 프로그래밍
인류는 새로운 도구를 효율적으로 현명하게 사용함으로 써 문명을 진화시켰음 increased
productivities
(생산성) with new tools of new materials, powered machines: from stone, stick, bronze, iron, telephone and computers
increased
collaborations
(협동) among multiple persons increased
performance
(성능) in value creation increased
energy efficiencies
(에너지 효율성) 컴퓨터와 프로그래밍을 통하여 이러한 기능을 강화시킴
프로그래밍언어 과목을 통하여 무엇을 배우나?
“엔지니어”로 생각하고 설계하는 방법을 배운다.
Technician (기능공) vs. Engineer (엔지니어)
Simple passive & repeated implementation (단순 반복 작업, 구현 위주 의 업무) vs.
creative design (창의적 설계) and fast prototyping (신속한 시제품 개 발)
알고리즘의 기초에 대하여 배우며, 설계된 알고리즘에 따 라 프로그램을 설계/구현하는 기법을 배운다. C/C++ 프로그래밍 기법을 배운다.
프로그래밍의 즐거움
을 느낄 것이다!강의주제 (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)
- 연결 리스트 (linked list) - 이진 트리 (binary tree)
강의주제 (2)
Part 3) 객체 지향형 ( object programming) 프로그래밍 개요
- 객체 지향형 프로그래밍 소개 - 클래스 (class)와 객체 (object)
- 캡슐화 (encapsulation), 추상화 (abstraction), 정보 은닉 (information hiding)
- 소프트웨어 재사용 (software reuse)과 상속 (inheritance) - Operator overloading
수업 진행 및 평가 (1)
강의 및 실습 주당 2 시간 강의
주당 2 시간 실습
주당 2 시간 보충 설명 시간
시험 학기당 실기 시험 4회
시험 1: 3월 28일 (토요일)
시험 2 (중간고사) : 4월 22일 (수요일)
시험 3: 5월 23일 (토요일)
시험 4 (기말고사) : 6월 17일 (수요일)
각 실기시험에 구두 시험 (oral test) 포함
과제물 (homework)
각 장 (chapter) 별로 homework 부과
과제물 보고서는 각 장 별로 분리하여 제출
과제물 제출 기한: 과제물 공지 후 1주일 이내 (수업시간에 제출)
과제물 제출 기한 초과시 1주일 단위로 20%씩 점수 감점
수업 진행 및 평가 (2)
설계 프로젝트 (Design Project) 공학교육인증 프로그램 (ABEEK)의 요구사항에 따른 4 주 분량의 설계 프로젝트 수행
설계 문서 작성
설계 및 구현, 성능 분석
발표
최종 보고서
성적 평가 (총 1000점 만점) 시험 4회 x 100 점 = 400점
실습 200점
설계프로젝트 200점
출석 및 퀴즈 100점
수업 진행 및 평가 (3)
조교 (Teaching Assistant: TA)
황현동: 박사과정 (차세대 네트워킹 연구실, IT관 304호실)
정용환: 학부4학년 (차세대 네트워킹 연구실, IT관 304호실)
전화 : (053) 810-3940
E-mail: mch2d@ynu.ac.kr, wjdsd@ynu.ac.kr
강의지원시스템
강의자료 및 보충 설명자료
실습자료
이 과목에서 배울 12 가지 중점 주제 (1)
<Part 1: C>
1) 2차원 배열을 사용한 55 행렬 계산 : 행렬 덧셈, 뺄셈, 곱셈, 행렬식, 역행렬
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)
8) 기본적인 자료구조: 연결 리스트 (linked list), 이진 트리 (binary tree)
이 과목에서 배울 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 (同質異形)