CEC225 COURSE COMPACT Course GEC 225 Applied Computer Programming II(2 Units) Compulsory Course Duration Two hours per week for 15 weeks (30 hours) Lecturer Data Name of the lecturer: Dr. Oyelami Olufemi Moses Qualifications obtained: Ph.D. Department: Physical Sciences Faculty: CSE E-mail: oyelami.olufemi@lmu.edu.ng Office Location: Lecture Theatre ( New College Building) Consultation Hours: Wednesday (4-6pm) Course Content: Comparison of procedure oriented, structure oriented, event-driven, and object oriented programming paradigms, fundamental of object oriented design, features of object oriented programming. Windows programming. C++ Fundamentals: Keywords, data types, standard I/O streams, function prototypes, C++ enhancements over C, default function parameters, inline functions, overloaded functions, reference variables comparison between pointers and references. 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. Dynamic Memory Allocation: New and delete operators, class with pointer members, this pointer assignment, initialization, copy constructor, passing and returning objects, advanced free store techniques, exception handling. 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. Advanced C++ Concepts and Applications: File handling, templates, container classes, class library, stack, queue and linked list applications, simple database applications. Course : This is a programming course that teaches C++ programming language and program development using C++. Although C++ is a multi-paradigm language much attention will be devoted to object oriented style of programming. Consequently object oriented concepts such as data abstraction, encapsulation, information hiding, object and object type, composition of objects through aggregation, inheritance and polymorphism and how they are implemented in C++, will be discussed. The ANSI standard version
of C++ is considered here. The scope of discussion is limited to that specified in the course content above. Some area not covered may however be given as assignment to students to explore. Course Justification Illustration below: Although there are many high level languages none of them is yet to match C/C++ in the speed of execution. So C/C++ becomes the language of choice where time is critical. Its accommodation of low level code makes it a good candidate for developing system software (i.e operating system, device driver and other program meant for controlling system). One other feature of C/C++ language that makes it prominent in the programming environment is its flexibility. C++ allows you to have total control over your programming environment to do what you want to do the way you may want it. C++ has object-oriented features (as opposed to C-language) which make it useful for producing re-useable code and highly modular programs. Moreover it is multi-paradiganguage which makes it accommodate programming in many different styles. Course objectives At the end of this course, students are expected to be able: differentiate between procedure-, structured- and event-driven, and object- oriented programming paradigms; apply the fundamental concepts of C++ programming in developing applications; program in C++ using the concepts of classes and objects; implement the features of object-oriented programming which include inheritance and polymorphism; use the Standard Template Library (STL) to write programs using abstract data types (ADTs); and apply the knowledge gained from this course in solving real life problems. Course Requirement: To derive maximum benefits from the course and for fast grasping of many of the C++ concepts, the course requires that the students be familiar with C- programming language. The reason for this is because C++ descends from C (i.e extends or enhances C language) and so adopts many of the syntax of C language. However, the course is structured to accommodate to some extent, students that do not fall into this category. Being a programming course, the course requires that each student for the course has a computer system with C++ compiler installed in it and should be ready to undertake practical work in the laboratory. Failure to attend the practical classes could result into student failing the course.
Method of Grading S/N Grading Score (%) 1. Test 20 2. Assignment/Practical Work 10 3. Final Examination 70 Total 100 Course Delivery Strategies Lecturing method complimented with laboratory work will be adopted. In the laboratory, working programs will be demonstrated through execution and explaination. Students will be given programming projects as excersices a group and individual projects. Week 1: Introduction to C++ LECTURE CONTENT Compare object-oriented programming with other paradigms Explain the features of object-oriented programming Comparison of procedure-oriented, structure-oriented, event-driven, and objectoriented programming paradigms, Fundamental of object oriented design. Features of object-oriented programming. Week 2-4: C++ Fundamentals Explain the fundamentals of C++ programming in terms of data types, keywords, C++ enhancements over C, how to declare variables, functions and parameter passing in functions. They should also be able to compare reference and pointer variables. Keywords, data types, standard I/O streams, function prototypes, C++ enhancements over C, default function parameters, inline functions, overloaded functions, reference variables, comparison between pointers and references.
Weeks 5-6: Classes Create new data types using classes. Create objects of classes they create Use constructors and destructors in their defined classes. Make functions and classes friends of other classes Create arrays of objects 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. Weeks 7-8: Dynamic Memory Allocation Create memories dynamically using the new operator Define copy constructors for assigning an object to another Return an object used to invoke a method Write programs that handle cases of unusual happenings new and delete operators, class with pointer members, this pointer assignment, initialization, copy constructor, passing and returning objects, advanced free store techniques, exception handling. Week 9: Mid-Semester Examination Week 10-11: Inheritance and Polymorphism Reuse code through inheritance Redefine operators in a bid to overload them
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. Week 12-13: Advanced C++ Concepts and Application Write applications that make use of files and simple databases Apply the concepts learnt so far to write applications that use abstract data types like queue, stack and list. File handling templates, container classes, class library, stack, queue and linked list applications, simple database applications. Week 14: Revision Week 15: Omega Semester Examination Reading List: i. C++ Primer Plus by Stephen Prata (2005). ii. C++ Language Tutorial by Juan Soulié iii. C++ Primer by Stanley B. Lippman, Josee Lajoie and Barbara E. Moo (2005). Addison-Wesley. iv. C++ How To Program by H.M. Deitel and P.J. Deitel (2001). Prentice Hall. v. The C++ Standard Library (A Tutorial and Reference) by Nicola M. Josuttis (1999). Addison-Wesley. vi. First Course in C++ (A Gentle Introduction) by Mark Harman and Ray Jones (1997). McGraw-Hill. vii. C++ Programming Made Simple by Conor Sexton (2003). MADE SIMPLE BOOKS. viii. C++ for Programmers by Leen Ammeraal (2001). John Wiley & Sons Ltd.