LAN-TC-01 Edisi ke 2 : Tatacara Kelulusan Bagi Kursus Pengajian Institusi Pendidikan Tinggi Swasta (IPTS) Bagi Peringkat Sijil, Diploma dan Ijazah Sarjana Muda.
1. Title of Subject
Object Oriented Programming
2. Subject code
ECP4146
3. Status of subject
Elective
4. Stage
Degree
5. Version
Date of Previous Version : May 2000, November 2003, December 2004
Date of Current Version : June 2005
6. Credit Hour
3
EAC Credit Hours Equivalent
3.43 (3 + 0.43)
3 represents lectures (3 hours per week 14 weeks)
0.43 represents assignment, tutorials or labs (3 hours of assignments/tutorials, 9 hours of labs)
7. Pre-Requisite
ECP1016: Computer and Program Design
8. Teaching Staff
Tutor
Dr. Ian Chai, Ph.D.(Comp. Sc.), M.Sc.(Comp. Sc.), B.Sc.(Comp. Sc.)
Azrul Hasni bin Madisa, Masters (INSA Rouen, France) - Information System Architecture Bachelor (IUT de Châteauroux, France) - Electrical Engineering and Industrial Computer Science
Chan Mun Leong, B.Eng(Telecommunications)
9. Semester
Year, Trimester 1
10. Aim of Subject
To introduce C++ language and the basic concepts of OOP
11. Learning Outcome
of Subject
At the completion of the subject, students should:
Be able to handle basic input/output through C++
Be able to create and and manipulate objects and classes
Be able to construct relationship between classes and objects
Be able to use templates and the standard template library (vector, map, string etc.)
Be able to design the structure and behavior of a software system using UML
Understand and able to apply certain design patterns
Programme Outcomes
% of contribution
Ability to acquire and apply fundamental principles of science and engineering.
30
Capability to communicate effectively.
10
Acquisition of technical competence in specialised areas of engineering discipline.
15
Ability to identify, formulate and model problems and find engineering solutions based on a systems approach.
15
Ability to conduct research in chosen fields of engineering.
5
Understanding of the importance of sustainability and cost-effectiveness in design and development of engineering solutions.
10
Understanding and commitment to professional and ethical responsibilities.
5
Ability to work independently as well as with others in a team.
5
Capability and enthusiasm for self-improvement through continuous professional development and life-long learning.
5
12. Assessment Scheme
Project / Assignment
Work in group of 2 or 3, or more, based on the class size
Design and code programs according to a given requirement
10%
Programming Test
Stress on Theory
20%
Programming Test
Stress on Practical
20%
Final Exam
Written exam
50%
13. Details of Subject
Topics
Hours
Introduction
Comparison of procedure oriented, structure oriented and object oriented programming paradigms - top-down design - algorithm development - refining algorithms - fundamental of object oriented design - identifying classes - attributes and behavior - features of object oriented programming.
6
C++ Fundamentals
Standard I/O streams - function prototypes - C++ enhancements to C - Default function parameters - inline functions - overloaded functions - reference variables comparison between pointers and references.
6
Classes
Creating new data type in C++ - class declaration - members - constructors and destructors - access functions constant objects - member objects - static members - friend classes - arrays of class objects.
6
Dynamic Memory Allocation
Free store - new and delete operators - class with pointer members - this pointer assignment - initialization - copy constructor - passing and returning objects - advanced free store techniques - exception handling.
6
Inheritance and Polymorphism
Operator overloading - handling related types in C++ - derived class - conversion between base and derived classes - virtual functions - dynamic binding - pure virtual functions - protected members - public and private base classes - new, delete operators overloading - inheritance applications.
8
Advanced C++ Concepts and Applications
File handling - templates - container classes - class library - stack, queue and linked list applications - simple database applications.
7
Basic OO Design using UML
Introduction to UML - Development Process - Use Cases - Class Diagrams - Interaction Diagram (sequence and collaboration) - Object Diagrams - State Diagrams - Activity Diagrams - Deployment Diagram - Case Studies
3
14. Teaching and
Learning Activities
This subject will be delivered using the following means:
Lecture hours = 42
Supervised tutorial hours = 3
Laboratory experiments = 9
Total contact hours = 54
15. Laboratory
Simple C++ programs
Classes and objects
Polymorphism (function overloading and operator overloading)
Inheritance
File handling, templates and simple data structures.
16. Reading Material
Textbook
Cay Horstmann & Timothy Budd, Big C++, Wiley 2005
Reference Material
Richard Johnsonbaugh, Martin Kalin, Object-Oriented Programming in C++, Prentice Hall, 1995.
Joyce Farrell, Object-Oriented Programming Using C++, Second Edition, Thompson Learning, 2001.
DEITEL&DEITEL, C++ How To Program (Fourth Edition), Prentice Hall International Edition, 2002
Ira Pohl, Object oriented programming using C++, Second edition, Addison-Wesley Publishers, 1997.
Andrew C. Staugaard, Jr., Structured and Object oriented techniques - an introduction using C++, Prentice Hall, 1997.
Jesse Liberty, SAMS Teach Yourself C++ in 21 Days (4th Edition), Sams Publishing, 2001.
Http://www.research.att.com/~bs
Martin Fowler, UML Distilled, Addison-Wesley Publishers, 1999.