Presentation on theme: "Object-Oriented Programming Dr. Napoleon H. Reyes, Ph.D. Computer Science Institute of Information and Mathematical Sciences Rm. 2.56 QA, IIMS, Albany."— Presentation transcript:
Object-Oriented Programming Dr. Napoleon H. Reyes, Ph.D. Computer Science Institute of Information and Mathematical Sciences Rm. 2.56 QA, IIMS, Albany Campus Email: email@example.com Tel. No.: 64 9 4140800 x 9512 Fax No.: 64 9 441 8181 Consultation Hours: After every lecture for 1 hr Computer Lab Tutorials: Fridays, 9am at (Computer Lab QB4) Lectures: Mon, 2pm (AT3); Tue, 2pm at (AT5); Wed., 9am (AT3) 159.234
Schedule For the first week: Monday, Wednesday, Friday – all lectures, no tutorial tomorrow! Computer Lab tutorial starts next week – It will be every Friday Tutor: Alwyn Husselmann 159.234
Topics for Discussion Pre-requisites Course Overview Learning Outcomes Texts and Course Material Assessment Course Schedule 159.234 Demo
Pre-requisites Have taken up Programming Fundamentals (159.101 ) 159.234 Students are expected to:
Classes, Objects, Templates, Inheritance, Polymorphism Course Overview Introduction to OOP Object Libraries 159.234 Calendar Prescription Problem-based learning A Graphics Engine will be provided to make learning OOP more fun
Understand contents of and be able to use features of the STL (Standard Template Library) Learning Outcomes Understand concepts of objects, inheritance & polymorphism Be able to write programs in the C++ Programming Language 159.234 On successful completion of the course, the students should be able to: Have some familiarity with JAVA Accomplishing the assignments covers all these objectives!
Student Responsibility Note: 159.234 If a student cannot attend lectures/tutorials it is the student’s responsibility to find out what was discussed in lectures / tutorials (possible changes to assignments, questions & answers).
Creating Turbo C++ Games by Clayton Walnum Texts and Course Material C++ for C Programmers by Ira Pohl http://www.cs.colorado.edu/~main/bgi/doc/index.html 159.234 http://csci.biola.edu/csci105/using_winbgi.html References (optional, for further information) Deitel & Deitel, C++ How to program, 3rd Ed., Prentice Hall, 2000 Bruce Eckel, Thinking in C++, 2nd Ed. http://www.mindview.net/Books/DownloadSites Chapter 6 from Physics for Game Developers Book: Projectile http://www.massey.ac.nz/~nhreyes/Massey/159234.html
Texts and Course Material 159.234 Other References (optional, for further information) Bruce Eckel, Thinking in JAVA, 3rd Ed. http://www.mindview.net/Books/DownloadSites
Assessment 159.234 330% 3 assignments: 30% 70% Final Exam (3 hours): 70% In order to pass the course you must have (both of them). The exam mark at least 45% from max. The final mark greater than or equal to 50%. All assignments will be submitted electronically.
Assessment 159.234 Program solutions that do not compile or do not run in our laboratories get 0 marks. Late assignments will be penalized Assignments may be completed in groups all members of the group should be named in the source file of each assignment they contributed. Assessment Approximate Due Date / Deadline Assignment #1 – a simple object-oriented game will be developed that will require a good understanding of objects, inheritance and polymorphism; lectures, tutorials and code snippets will be provided to help the students develop the game Mar. 30, 2009 Assignment #2 – requires re-architecturing of assignment #1 to incorporate STLs, allowing for more sophisticated functionalities of objects: Tank with bullets and bomb, etc. April 27, 2009 Assignment #3 – Jumping Tank, flying ledges May 25, 2009
Assessment 159.234 Each group member will receive the same grade. Students in a team have the authority (in consultation with the lecturer) to "expel" any member that does not meet obligations. The collaboration is limited only to members within each group. It is a student responsibility to check their assignment marks and notify in writing any errors they might find no later than 10 days after the day the marks were made available.
Course Schedule 1. Introduction 2. Intro to C++ 159.234 Review of C, Memory Allocation I/O, new types
Course Schedule 159.234 11. JAVA Introduction 12. JAVA compared to C++ Review of the Course 13. Study break/Final Examination
Course Schedule Send your email address to firstname.lastname@example.org to receive announcements, tips, etc. during the duration of the email@example.com Download gcc Check out OOP lecture notes at www.massey.ac.nz/~nhreyes Download JAVA (e.g. NetBeans 6.1, http://www.netbeans.org/downloads/) Try to get hold of some of the references for the paper 159.734 Tasks
Demo 159.234 C++ Tank Game JAVA Tank Robot Navigation (AI) Shooting & Tank with AI 3-D Tank with AI - Physics, Fuzzy Logic, Zoom / UnZoom - Fuzzy Logic + A* algorithm - Fuzzy Logic for target pursuit & obstacle avoidance, auto speed control - Integration of Physics formulas, transformation equations for device independence & graphics; implemented in an object-oriented fashion - Graphics in JAVA implementing the tank class