CLARENCE FITZROY BRYANT COLLEGE
DIVISION OF TECHNICAL AND VOCATIONAL EDUCATION
AND MANAGEMENT STUDIES
PROGRAMME: ACTI -Information Technology (A.A.S.)
COURSE TITLE: Computer Science I: Object Oriented Programming
COURSE CODE: COMP1003
LEVEL OF STUDENTS: YEAR 1
SEMESTER: Two
DURATION: 45 Hours
NO. OF CREDITS: 3
PRE-REQUISITES: IFTH1006
LECTURER: Mr. Wingrove Rouse wingrove.rouse@cfbc.edu.kn
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
2. Classes and Abstraction:
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
3. Composition, Friendship, and this pointer:
● Composition data
● Purpose of friendship
● Friend functions and classes
● The ‘this’ pointer
4. Templates, Containers, and Iterators:
● Generic classes and functions
● Class and function templates specializations
● Container classes and iterators
5. The Concept of Overloading:
● Operator overloading – binary and unary
● Method overloading
● Overloading using friendship
6. Inheritance and Polymorphism:
● Introduction to Inheritance
● Basic terminology – base class, derived class, polymorphism.
● Base and derived classes
● Protected access
● Constructor and destructor in derived class
● Re-defining base-class members in derived classes
● Private, public, and protected inheritance
● Virtual and pure functions
● Abstract and Concrete classes
● Object pointers and polymorphism
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%
Final Assessment 25%
Assessment Summary
Task / Assignment Due Date Time Weight Type Learning
No. & Name Outcomes
Test April 14 2:00 pm 10% Individual Units 1 to 5
Tutorial – March 31 2:00 pm 10% Individual -
Sololearn &
Codecademy
Java Project/Labs April 28 2:00 pm 25% Individual & Group TBD
Class Exercise TBD 2:00 pm 5% Individual TBD
Oral Presentations TBD 2:00 pm 5% Individual & Group TBD
Assignment April 7 2:00 pm 10% Individual Units 4 to 7
Mid-Term March 17 2:00 pm 10% Individual Units 1 to 3
Final Assessment May 2021 TBD 25% Individual / Structured Units 1 to 7
NB: Dates are subject to change
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.
Grades and GPA
95- 100 A+ 4.00
85- 94 A 3.75
80- 84 A- 3.67
75- 79 B+ 3.33
70- 74 B 3.00
65- 69 B- 2.75
60- 64 C+ 2.67
55- 59 C 2.33
50- 54 C- 2.00
45- 49 D+ 1.67
40- 44 D 1.33
0- 39 F 0.00
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
Introduction to OOP Week 1 Class Discussion and
• Basic concepts –
Presentations
information hiding,
Page 5 of 8
encapsulation, January
abstraction, • Structured vs. 17 - 21
OOP
• Data types – int, float,
char, bool, double
Week 2 Class Discussion and
• Type modifiers – long,
Presentations
short, const, static
• Operators and control January
structures 24 - 28
Using functions and
creation of user libraries
Classes and Week 3 Class Discussion and
• Keyword class
Abstraction Presentations
• Class scope and access
control January
31 -
• Class data members – February
4
automatic, static,
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
Composition, Week 5 Problem Solving and
• Composition data Class Discussion
Friendship, and
this pointer
• Purpose of friendship
February
• Friend functions and
14 - 18
classes
Week 6 Problem Solving and
• Composition data Class Discussion
• Purpose of friendship
February
• Friend functions and
classes
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
Mid-Semester Break Week 10
March
21 - 25
The Concept of Week 11 Codecademy &
• Operator overloading Sololearn Assignment
Overloading
– binary and unary Due
• Method overloading March 28 -
April 1
• Overloading using
friendship
Inheritance and Week 12 Assignment
• Introduction to Inheritance
Polymorphism
• Basic terminology – base
April
class, derived class,
polymorphism. 4-8
• Base and derived classes
• Protected access
• Constructor and destructor
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
functions • Abstract and
Concrete classes
• Object pointers and
polymorphism
Exception Handling Week 14 Problem Solving and
• Introduction to exception Class Discussion
handling
• Try blocks April
• Throwing an exception 18 - 22
Week 15 Problem Solving and
• Catching, handling, and re Class Discussion
throwing an exception
April 25 - 29
FINAL ASSESSMENT May 2 - 27 Multiple Choice &
Structured Questions
Textbooks and References
Lewis, J., & Loftus, W. (2015). Java Software Solutions, Foundations of Program Design, 8th
Edition. Pearson Education Limited.
Page 8 of 8