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++, 5 th Ed, Pearson, 2013. [3] Deitel and Deitel, How to Program C++, Prentice Hall, 2005. ch 0-2
인류문명의진화와컴퓨터프로그래밍 인류는새로운도구를효율적으로현명하게사용함으로써문명을진화시켰음 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 ( 에너지효율성 ) 컴퓨터와프로그래밍을통하여이러한기능을강화시킴 ch 0-3
프로그래밍언어과목을통하여무엇을배우나? 엔지니어 로생각하고설계하는방법을배운다. Technician ( 기능공 ) vs. Engineer ( 엔지니어 ) Simple passive & repeated implementation ( 단순반복작업, 구현위주의업무 ) vs. creative design ( 창의적설계 ) and fast prototyping ( 신속한시제품개발 ) 알고리즘의기초에대하여배우며, 설계된알고리즘에따라프로그램을설계 / 구현하는기법을배운다. C/C++ 프로그래밍기법을배운다. 프로그래밍의즐거움을느낄것이다! ch 0-4
강의주제 (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) ch 0-5
강의주제 (2) Part 3) 객체지향형 ( object programming) 프로그래밍개요 - 객체지향형프로그래밍소개 - 클래스 (class) 와객체 (object) - 캡슐화 (encapsulation), 추상화 (abstraction), 정보은닉 (information hiding) - 소프트웨어재사용 (software reuse) 과상속 (inheritance) - Operator overloading ch 0-6
강의및실습 주당 2 시간강의 주당 2 시간실습 주당 2 시간보충설명시간 수업진행및평가 (1) 시험 학기당실기시험 4 회 시험 1: 3 월 28 일 ( 토요일 ) 시험 2 ( 중간고사 ) : 4 월 22 일 ( 수요일 ) 시험 3: 5 월 23 일 ( 토요일 ) 시험 4 ( 기말고사 ) : 6 월 17 일 ( 수요일 ) 각실기시험에구두시험 (oral test) 포함 과제물 (homework) 각장 (chapter) 별로 homework 부과 과제물보고서는각장별로분리하여제출 과제물제출기한 : 과제물공지후 1 주일이내 ( 수업시간에제출 ) 과제물제출기한초과시 1 주일단위로 20% 씩점수감점 ch 0-7
수업진행및평가 (2) 설계프로젝트 (Design Project) 공학교육인증프로그램 (ABEEK) 의요구사항에따른 4 주분량의설계프로젝트수행 설계문서작성 설계및구현, 성능분석 발표 최종보고서 성적평가 ( 총 1000 점만점 ) 시험 4 회 x 100 점 = 400 점 실습 200 점 설계프로젝트 200 점 출석및퀴즈 100 점 과제물 100 점 ch 0-8
수업진행및평가 (3) 조교 (Teaching Assistant: TA) 황현동 : 박사과정 ( 차세대네트워킹연구실, IT관 304호실 ) 정용환 : 학부4학년 ( 차세대네트워킹연구실, IT관 304호실 ) 전화 : (053) 810-3940 E-mail: mch2d@ynu.ac.kr, wjdsd@ynu.ac.kr 강의지원시스템 강의자료및보충설명자료 실습자료 ch 0-9
이과목에서배울 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) 8) 기본적인자료구조 : 연결리스트 (linked list), 이진트리 (binary tree) ch 0-10
이과목에서배울 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 ( 同質異形 ) ch 0-11
Q & A