Object Oriented Programming (FIT-II) J. H. Wang Jan. 31, 2008
Instructor –J. H. Wang ( 王正豪 ) –Assistant Professor, CSIE, NTUT –Office: R312-1, Complex Building – –Tel: ext –Office Hour: 10:00-12:00 am, every Tuesday and Thursday TA –TBA (one TA per 40 students)
Course Overview Course: Object Oriented Programming (FIT-II) Time: 13:10-16:00pm, Friday Place: 電算 313 (Computer and Network Center) Textbook: Absolute C++, 3rd edition, by Walter Savitch, Addison-Wesley. ( 開發 ) References: –The C++ Programming Language, 3 rd edition, by Bjarne Stroustrup, Addison-Wesley, –C++ Primer, 4th edition, by Stanley B. Lippman, Josee Lajoie, and Barbara E. Moo, Addison-Wesley, Prerequisite: –Basic computer skills (FIT-I basic) –Working knowledge of high-level programming languages such as C (FIT-I pro)
Target Students For those who –Might not major in CSIE but are interested in information technologies, and –Have accomplished the courses FIT-I basic & FIT-I pro, and –Are willing to prepare for intermediate and advanced software engineering courses
Emphases of Teaching Basic concepts of the object oriented programming paradigm C++ Programming skills Problem solving techniques, basic data structures and algorithm design
Teaching Lecture Quiz Homework and program assignments –Homework should be turned in within two weeks Mid-term and final exam
Grading Homework and program assignments: 40% Quiz: 15% Midterm: 20% Final exam: 25%
Main Topics Computer programming –To know about programming languages –To learn and practice the programming skills Object-oriented problem solving –To learn the concepts of object oriented programming –To practice the techniques of programming solving and application design
Course Description Object oriented programming –Programming paradigms –Fundamental constructs in OOP with C++ –Fundamental data structures –Advanced topics Course Web Page –
Outline & Schedule Outline –Overview of Object Oriented Programming –C++ Basics –Functions, Parameters, and Overloading –Arrays, Structures and Classes –Constructors and Other Tools –Operator Overloading, Friends, and References –Strings –Pointers and Dynamic Arrays
Outline & Schedule (Cont’) Outline (cont’d) –Streams and File I/O –Inheritance –Polymorphism and Virtual Functions –Templates –Standard Template Library –Patterns and UML Schedule –Basically, 1 or 2 weeks per chapter
Program Development Environment Free C++ Development Environments –GCC on Linux/UNIX servers (ntut.edu.tw) –Windows-based Dev C++ ( Cygwin ( MinGW ( Commercial tools –Microsoft Visual C++ –Borland C++ –…
Homework Submission Homework submission: –(TBA) Program Development Environment –(TBA)
Why C++? Programming language: Why C++? –C++: general purpose programming language with a bias towards systems programming that is [from Bjarne Stroustrup’s homepage] A better C Supports data abstraction, object-oriented programming, and generic programming –C++ has Many users Many applications –Others: Smalltalk, Java, …
Preparing for advanced courses –Application software design –Software engineering & project management