Course Outline COURSE TITLE NAME OF LECTURER C++ Programming Dr. Michael Collins, Lecturer, School of Computing, Dublin Institute of Technology, Ireland COURSE DESCRIPTION Module Description This module develops the students' programming and problem solving skills, progressing from procedural (C) to object-oriented (C++) programming. Topics include the principles, practices, and applications of programming in an object-oriented environment. The techniques and language features of object-oriented design are implemented in programming projects. Emphasis is placed upon development of well-designed, efficient, maintainable object-oriented software. Module Aims The aim of this module is that the student becomes familiar with Object-Oriented Programming concepts and implements these concepts in elementary object-oriented programs using the C++ language. Learning Outcomes On completion of this module, the learner will be able to: 1. Demonstrate an understanding of the underlying principles and concepts of ObjectOriented Programming 2. Write programs using an Object-Oriented programming language (C++) 3. Extensive testing to remove runtime errors from a program 4. Document an Object-Oriented program 5. Demonstrate an understanding of the advanced principles and concepts of ObjectOriented Programming Design and implement object-oriented programs using advanced Object-Oriented constructs and design patterns RECOMMENDED READINGS Reading lists will be specified during the course of the module, primarily electronic and available on-line. TEACHING METHODS 1. Lectures with demonstrations 2. Tutorials 3. Laboratory practical classes based on lectures and tutorials ASSESSMENT METHODS Module Assessment Continuous Assessment (100%): Individual exercises Individual assignments Lab tests CLASS TOPICS (each class is 3 hrs) Indicative Module content Comparison of Procedural Programming with OOP Review of procedural programming and the need for OOP Object-Oriented Principles and Concepts Introduction to class diagrams and OOP concepts Relationships, Inheritance, Multiple Inheritance, Abstract Classes Object-Oriented Programming Language Constructs Abstract data types, classes, objects, messages, Instance variables, methods, encapsulation, private and public access, class variables, constructors, class interface, class implementation Classes and objects, private and public class members, constructors, initialisation list, static data members, overloading, inline, separation of interface and implementation Function overloading, Operator overloading Destructors Virtual functions and friend functions Inheritance: Types of Inheritance, Construction, Destruction, Multiple Inheritance Polymorphism Abstract Classes String class and character arrays. Pointers and dynamic memory Exception handling SPECIAL COMMENTS It is important that any students wishing to take my class must have prior knowledge of C programming, i.e. a pre-requisite being a knowledge of C programming. Equipment If possible, students are encouraged to use their own laptop computers. However, the use of computers in the laboratory will be sufficient. Further Details Additional information may be given prior to the start of the class. All necessary information will be shared with students during the course.