資訊工程學系(Department of Computer Science and Information Engineering)
課程名稱(英文)
Object-Oriented Programming
課程代碼
4102160_02
授課教師:
Jian-Jhih Kuo 郭建志
學分數
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.)
具有資訊工程相關基礎知識之吸收與了解的能力(Capability to grasp foundational knowledge in computer science.)
為何有關:
This course introduces core object-oriented programming concepts using C++, covering topics such as classes, inheritance, polymorphism, templates, and software engineering practices.
達成指標:
Students will demonstrate the ability to grasp and apply core OOP principles through structured assessments.
評量工具(可複選):
Exams (midterm and final) are used to assess students' understanding of core OOP concepts and C++ language fundamentals.
1.2
具有運用資訊工程理論及應用知識,分析與解決相關問題的能力(Capability to use computer science theory and application knowledge to analyze and solve related problems.)
為何有關:
The course guides students in using object-oriented programming as a tool to design, implement, and debug practical solutions, linking theoretical concepts with real-world applications.
達成指標:
Students use C++ to analyze problem statements and implement object-oriented solutions that reflect both theoretical understanding and practical ability.
評量工具(可複選):
Programming tasks are designed to evaluate students' ability to analyze problems and implement object-oriented solutions. Outstanding submissions are selected for short in-class English presentations, which also come with bonus points as a reward for clear design and code quality.