國立嘉義大學112學年度第2學期教學大綱

課程代碼11223470005上課學制大學部
課程名稱物件導向程式設計 Object-Oriented Programming授課教師 (師資來源)許政穆(資工系)
學分(時數)3.0 (3.0)上課班級資工系1年甲班
先修科目必選修別必修
上課地點理工大樓 A16-415 授課語言國語
證照關係可參加 CPE、ITSA等程式設計競賽晤談時間星期2第5節~第6節, 地點:A16-516 (蘭潭校區理工大樓 516 室) 星期3第7節~第8節, 地點:A16-516 (蘭潭校區理工大樓 516 室)
永續發展目標[SDGs]之關聯性優質教育
課程大網網址https://web085004.adm.ncyu.edu.tw/Syllabus/Syllabus_Rpt.aspx?CrsCode=11223470005
備 註
本課程之教學主題、內容或活動是否與性別平等議題有相關之處:否本課是否使用原文教材或原文書進行教學:是

◎系所教育目標:
為配合國家建設及產業發展之需要,本系以培育中高級資訊科技人才為目的。在教學理念上除了注重理論的探討之外並強調實際動手的能力,以期培育出具有深厚學識基礎並能實際應用的資訊科技人才。在專業必修中涵蓋基礎理論、電腦硬體、作業系統、資料結構及計算機網路等方面,並有畢業專題製作,使學生紮實基礎,同時課程包含四個專業學程,兼顧學術及實務之分流與訓練。分別為一:軟體工程及知識工程學程、二:互動多媒體學程、三:網路及資訊安全學程、四:資訊系統開發實務學程,以期作為日後升學就業的準備。
◎核心能力關聯性
1.應用數理邏輯推理之能力2 關聯性稍弱
2.具備資訊軟體專業之能力5 關聯性最強
3.發掘、分析及解決問題之能力3 關聯性中等
4.現代資訊發展工具之使用與熟悉資訊應用系統之能力3 關聯性中等
5.資訊軟體或硬體創新設計與實作之能力2 關聯性稍弱
6.有效溝通與團隊合作之能力1 關聯性最弱
◎本學科內容概述:
本學科為大學部一年級專業必修課程。除介紹物件導向的基本觀念與抽象資料型別外,也將詳細介紹函數及運算元的多載及類別繼承等,使學生能體會多型與程式重複利用的意義。
◎本學科教學內容大綱:
1.pointer and dynamic array 2.struct, class and objects 3.function/operator overloading 4.inheritance 5.friend function 6.polymorphism
◎本學科學習目標:
本課程為資工系大學部一年級進階之程式設計課程,主要的內容以教授物件導向程式(Object-Oriented Programming)之概念,並進行進階程式設計之演練。程式類型以 C++ 語言為主。
◎教學進度:
週次主題教學內容教學方法
01
Course Introduction課程大綱
課程評分
物件導向設計開發環境介紹
線上程式設計檢測平台介紹 (CMS)
講授。
02
Class and Data AbstractionClasses
Data Abstraction, Class, and Abstract Data Types
Case Study
講授。
03
Class and Data AbstractionInformation Hiding
Inline Functions
Static Members of a Class
Case Study
講授。
04
Inheritance and CompositionInheritance
Composition (Aggregation)
OOD & OOP
Case Study
講授。
05
Pointers, Classes, Virtual functions and Abstract ClassPointer Data Type and Pointer Variables
Address of Operator
Dereferencing Operator
Classes, Structs, and Pointer Variables
Case Study
講授。
06
Pointers, Classes, Virtual functions and Abstract ClassDynamic Variables
Operations on Pointer Variables
Dynamic Arrays
Inheritance, Pointers, and Virtual Functions
Abstract Class and Pure Virtual Function
Case Study
講授。
07
Overloading and TemplatesOverloading
Operator Overloading
Function Overloading
Case Study
講授。
08
Overloading and TemplatesFunction Overloading
Templates
Case Study
講授。
09
期中考期中考講授、期中考。
10
Exception HandlingHandling Expectation within a Program
Creating Your Own Exception Classes
Exception-Handling Techniques
Case Study
講授。
11
RecursionRecursion Definition
Problem Solving Using Recursion
Recursion or Iteration
Case Study
講授。
12
RecursionRecursion or Iteration
Case Study
講授。
13
Searching, Sorting, and The VECTOR TYPEList Processing
vector Type
Case Study
講授。
14
Linked ListsLinked Lists
Linked List as an ADT
Unordered Linked Lists
Case Study
講授。
15
Linked ListsDoubly Linked Lists
Circular Linked Lists
Case Study
講授。
16
Stacks and QueuesStacks
Stack Operations
Case Study
講授。
17
Stacks and QueuesQueue
Queue Operations
Case Study
講授。
18
期末考期末考講授、期末考。
◎課程要求:
本課程除了上課講解之外,需要課堂程式實作練習以及作業練習。學期中會有多次小考以及期中、期末考。考試方式分成筆試及上機兩種。務使學生了解觀念,並具備足夠的物件導向程式的實作能力。
◎成績考核
課堂參與討論10% : 課堂點名與課程互動
小考30% : 含課後作業、課內(分組)作業(報告)、上機考 (參加競賽加分)
期中考25% : 期中考
期末考30% : 期末考
課堂其他表現 5%
◎參考書目與學習資源
Textbook:
D. Dale, C. Wees, & T. Richards, Programming and Problem Solving with C++ (7th Edition), Jones & Bartlett Learning, 2023 (開發代理)
References:
P. Deitel & H. Deitel, C++ How to Program (10th), Pesrson Global Edition (開發代理) [2022 TextBook]
1.D.S. Malik, C++ Programming from problem analysis to program design, ISBN:9789814792042
2.Savitch : Problem Solving with C++ 10/e
3.DALE、WEEMS、RICHARDS:C++ PLUS DATA STRUCTURES 6/E
4.Savitch:Absolute C++ 6E, Addison Wesley
5.Dale and Weems: Programming and problem solving with C++, 6E
6.T. Gaddis, J. Walters, G. Muganda, Starting out with C++ Early Objects 9E, Pearson.
◎教材講義
請改以帳號登入校務系統選擇全校課程查詢方能查看教材講義
1.請尊重智慧財產權、使用正版教科書並禁止非法影印。
2.請重視性別平等教育之重要性,在各項學生集會場合、輔導及教學過程中,隨時向學生宣導正確的性別平 等觀念及尊重多元性別,並關心班上學生感情及生活事項,隨時予以適當的輔導,建立學生正確的性別平等意識。