COMP1003 Object Oriented Programming 2021-2022
COMP1003 Object Oriented Programming 2021-2022
SEMESTER: Two
DURATION: 45 Hours
NO. OF CREDITS: 3
PRE-REQUISITES: IFTH1006
RATIONALE
The field of object-oriented programming has grown in popularity since the advent of the
Internet. It is today a fundamental approach to programming (to which) all Information
Communication (ICT) students should be exposed. This course in object-oriented programming
has been included in the ICT programme of study for this very reason and it has been put
together in such a way that students will develop skills that are immediately applicable in the
working world, but also provides foundation knowledge that will allow them to matriculate and
do well in more advanced Computer Science degree programme.
DESCRIPTION/OVERVIEW
This course is designed to give the learner a working knowledge of the principles of object
oriented programming. It is also intended to provide students with the knowledge needed to craft
object-oriented solutions to problems and to implement the solutions using Java Topics covered
Page 1 of 8
will include an introduction to OOP, Classes and Abstraction, Friendship, Overloading,
Inheritance, Polymorphism and Exception Handling.
LEARNING OUTCOMES
Upon successful completion of this course, the learner should be able to:
1. Demonstrate the use of arrays and pointers in the solution of programming problems using
Java.
2. Explain the Object-Oriented Programming concept and can discuss the differences
between procedural and object oriented languages.
3. Demonstrate the ability to create and use classes within the Java programming language 4.
Demonstrate the ability to create, compile, and execute programs using the Object Oriented
design model.
5. Show an ability to program using important Java techniques, such as composition of
objects, operator overloads, dynamic memory allocation, inheritance and polymorphism,
file I/O, exception handling, templates, pre-processor directives, and basic data
structures.
6. Write programs using the full engineering power of Java including classes and objects,
encapsulation and information hiding, class inheritance, overloading of operators and
functions, template classes and functions, bitwise programming, I/O using streams, and
the use and management of external data files
7. Design and implement solutions to programming problems requiring up to five hundred
lines of code and multiple source code files.
8. Improve reliability, maintainability, and correctness of programs through software
engineering principles and techniques including component re-use, coding style, and use
of language features such as const, static, and namespace.
9. Use inheritance, polymorphism, and runtime binding to solve certain programming
problems
10. Analyse the appropriateness of OOP techniques for specific programming
problems. CONTENT
1. Introduction to OOP
● Basic concepts – information hiding, encapsulation, abstraction,
● Structured vs. OOP
● Data types – int, float, char, bool, double
● Type modifiers – long, short, const, static
● Operators and control structures
● Using functions and creation of user libraries
Page 2 of 8
● Keyword class
● Class scope and access control
● Class data members – automatic, static, constant
● Constructors and destructors
● Class member methods – constant, static
● Access, mutate and utility functions
● Object instantiation – constant and regular
● Using class members through handles
7. Exception Handling:
● Introduction to exception handling
● Try blocks
● Throwing an exception
Page 3 of 8
● Catching, handling, and re-throwing an exception
TEACHING/LEARNING METHODOLOGIES
• Lecture/Tutorial
• Practical demonstrations
• Independent Work
• Demonstration
• Research
• Lab work
• Discussion
STUDENT ASSESSMENT/EVALUATION
Assignment 10%
Tutorial 10%
Projects/Labs 25%
Presentation/Exercise 10%
Test 10%
Mid-term 10%
Assessment Summary
Task / Assignment Due Date Time Weight Type Learning
No. & Name Outcomes
Page 4 of 8
CLASS PARTICIPATION:
• This course requires that all students participate in all class and group discussions,
presentations, and assignments.
• It is suggested that students form study groups to facilitate class preparation and optimize
performance on assignments and tests.
• Due to the Covid-19 pandemic, sometimes it would be necessary to have virtual classes.
CONTINUOUS ASSESSMENT
Students are responsible for all materials covered both in class and study assignments, including
research, lectures, and discussions. Students are encouraged to complete all assignments and
tests on the date stipulated. However, students will be allowed to re-take/make-up an assignment
or test to improve their score. The final assessment can only be taken ONCE. Letter grades will
be assigned as set out in the CFBC Catalog. Students failing to make 80% attendance for the
COURSE will receive an “F” grade.
Honor Roll
3.00 – 3.39 Cum Laude
3.40 – 3.69 Magna Cum Laude
3.70 – 4.00 Summa Cum Laude
SCHEDULE
Topics Content Dates Assessment
Page 5 of 8
encapsulation, January
constant • Constructors
and
destructors
Week 4 Problem Solving and
• Class member methods Class Discussion
– constant, static
• Access, mutate and utility February
functions 7 - 11
• Object instantiation –
constant and regular
Using class members
through handles
Page 6 of 8
21 - 25
Week 7
• The ‘this’ pointer
February
28 – March
4
Templates, Week 8
Containers, and • Generic classes and
Iterators functions
• Class and function March
templates specializations 7 - 11
Container classes and
iterators
Mid-Semester Exam Week 9 Multiple Choice &
Structured Questions
March
14 - 18
March
21 - 25
• Protected access
Page 7 of 8
in derived class
Week 13 TEST
• Re-defining base-class
members in derived classes
• Private, public, and April
protected inheritance 11 - 15
• Virtual and pure
• Throwing an exception 18 - 22
Lewis, J., & Loftus, W. (2015). Java Software Solutions, Foundations of Program Design, 8th
Edition. Pearson Education Limited.
Page 8 of 8