資訊工程學系(Department of Computer Science and Information Engineering)
課程名稱(英文)
Object-Oriented Programming
課程代碼
4102160_02
授課教師:
郭建志
學分數
3
必/選修
必修
開課年級
2
先修科目或先備能力:
Program Design, Data Structures, and Discrete Mathematics
課程概述:
Object-oriented programming (OOP) is a currently popular and powerful programming technique. This course provides the knowledge and skills of OOP, emphasizing C++ language. Core topics include C++ basics, parameters and arrays, classes, inheritance, and polymorphism. Advanced topics include powerful tools and programming skills in C++, UML, and introduction to object-oriented software engineering.
學習目標:
1. Understand the fundamentals of OOP
2. Learn the programming skills and practices of C++
3. Deal with complex mathematical problems
4. Write large-scale programs using knowledge and principles from the course
教科書:
1. Absolute C++ (7/E) by Walter Savitch Pearson, ISBN 9781292098593, 2016
2. C++ How to Program (10/E) By Paul Deitel and Harvey Deitel Pearson ISBN 9781292153346, 2017
3. Thinking in C++ by Bruce Eckel, Prentice Hall, ISBN 0139798099, 2000
課程大綱
分配時數
核心能力
備註
單元主題
內容綱要
講授
示範
隨堂作業
其他
C++ Basics
1.11.21.32.12.22.33.13.23.34.14.2
Parameters, Overloading, and Arrays
1.11.21.32.12.22.33.13.23.34.14.2
Classes
Structures and Classes
Constructors
Operator Overloading, Friends, Reference
1.11.21.32.12.22.33.13.23.34.14.2
Tools in C++
Strings
Pointers and Dynamic Array
Separate Compilation and Namespaces
Streams and File I/O
1.1.具有資訊工程相關基礎知識之吸收與了解的能力(Capability to grasp foundational knowledge in computer science.)
1.2.具有運用資訊工程理論及應用知識,分析與解決相關問題的能力(Capability to use computer science theory and application knowledge to analyze and solve related problems.)
1.3.在資訊工程的許多領域中,具有至少某一項專業能力,例如:硬體、軟體、多媒體、系統、網路、理論等(Professional in at least one area, including hardware, software, multimedia, system, networking, and theory.)
2.1.具有資訊工程實作技術及使用計算機輔助工具的能力(Capability to perform computer science implementations and use computer-aided tools.)
2.2.具有設計資訊系統、元件或製程的能力(Capability to design computer systems, components, or processes.)
2.3.具有科技寫作與簡報的能力。(Capability to write and present technical materials.)
3.1.具有除了已有的應用領域之外,亦可以將自己的專業知識應用於新的領域或跨多重領域,進行研發或創新的能力。(Capability to apply one’s professional knowledge to a new application domain or across multiple different application domains.)
3.2.具有領導或參與一個團隊完成一項專案任務的能力並且具有溝通、協調與團隊合作的能力。(Capability to lead or participate in group projects, with effective communication, coordination, and teamwork.)
3.3.具有因應資訊科技快速變遷之能力,培養自我持續學習之能力。(Capability to adapt to rapidly changing computer science technology and to develop self-learning capabilities.)
4.1.具有社會責任、人文素養及奉獻精神。(The awareness of social responsibilities, humanity, and contribution.)
4.2.具有工程倫理、宏觀能力、國際觀及前瞻視野。(The awareness of engineering ethics, broad capabilities, and global and contemporary vision.)