CSC186 SchemeOfWorkMac2025Jul2025 Signed
CSC186 SchemeOfWorkMac2025Jul2025 Signed
SCHEME OF WORK
OBJECT ORIENTED PROGRAMMING (CSC186)
This course will emphasis on solving simple to more complex problems using a
programming language that supports Object-Oriented programming. The main
concepts of Object-Oriented programming are discussed. Principles and techniques
taught will include objects and classes, abstraction, encapsulation, inheritance and
polymorphism. Students will also be taught on how to model the solution using UML
design prior to development process.
1
SYLLABUS CONTENT
2
Week Topic Hours Description
2. Basic OO Design using UML(Unified
Modelling Language) 10 Group Project
• Use Case diagram and Use Case * group project on
scenarios UML diagrams as
• Class diagram proposed
• OOSE life cycle solutions based
• Significance on the given
• Conceptual model – basic of UML tasks using
building blocks, Rules, and specified UML
Mechanisms. drawing tool, and
• Architecture develop a Java
• Diagrams app that applies
• OOSE life cycle OOP features
Lecture/ Lab:
2-3 • Class Diagram – Intro, Class, Attributes
(and its visibility), Operations (and its
visibility), Relationships (Generalisation
vs Association (Composition and
Aggregation), Dependency, Names,
Roles), Navigability, Multiplicity.
• Use Case Diagram – Common
components (actors, system, goal),
Symbols and Notations, Relationships
between use cases - extend, include,
generalize.
• Using tool to draw UML Diagrams such
as ArgoUML, Lucidchart, UMLet,
draw.io, etc.
3
Week Topic Hours Description
3. Concepts of classes 1
• Class concept 10
• Class definition
• Data members (introduce constant and
access specifiers – private and
public)
• Basic types of methods - method
definition (methods in a concrete class –
constructors, setter, getter, processors,
printer)
• Object creation and application (object
instantiation in main(), and use the
4–5 object for a simple input-output process)
• Class vs Object
Lab:
• Draw class diagrams and use-case
diagrams, and define simple concrete
classes based on case studies.
• Instantiate simple and individual objects
in main() – no array of objects at
this stage.
• Use the created objects to manipulate
data members using methods.
4. Concepts of classes 2
• Data members of type array 10 Progress Report
• Array of objects Submission
• Method overloading (Week 6)
• Objects as parameter and method type
• Composite objects
Lab:
• Draw class diagrams and use-case
diagrams, and define simple concrete
classes based on case studies.
• Define data members of type array (of
any primitive and String type), and its
6–7
manipulation inside the class and
main().
• Define and manipulate array of objects
inside main().
• Define overloaded methods and call
them inside main().
• Define objects as parameters and
method types – both object and array
• Define composite objects and its
manipulation inside the class and
main().
4
Week Topic Hours Description
5. File Input/Output
• Basic concepts of file input/output 10 Test (Week 9)
• Opening and closing files [26/5 – 30/5]
• Storing and retrieving data using OOP *30/5 – cuti
• File and Exceptions pertengahan
semester dan
Lab: cuti khas
• Draw class diagrams and use-case perayaan (Pesta
diagrams, and define simple concrete Menuai/Gawai)
8-9 classes based on case studies. * one test that
• Define main() to open files for writing includes Chapter
and reading data to/from text files - 1, 3 & 4 only.
emphasize on the use of objects in
storing and retrieving data to/ from
text files.
• Handle exceptions by using try-
catch block and throws clause.
6. Inheritance
• Basic concept – single vs multiple 15 Presentation
inheritance. (Week 10)
• Generalization and specialization.
• Class Object – explain that all classes
either directly or indirectly inherits class
Object.
• Access levels – private, public,
package/ default, protected.
• Array of subclasses.
10 –
12 Lab:
• Draw class diagrams and use-case
diagrams, and define simple concrete
classes using inheritance concept
based on case studies.
• Show the different accessibilities of data
members and methods of a class inside
subclasses and main().
• Define and manipulate array of objects
using inheritance concept inside
main().
5
Week Topic Hours Description
7. Polymorphism
• Basic concept 10 Final Report
• Abstract classes and methods Submission
• Method overriding (Week 14)
• Concrete sub classes and methods
Final
Lab: Examination
13 – * one test that
• Draw class diagrams and use-case
14 includes Chapter
diagrams, and define simple abstract
class and concrete subclasses based 4, 6 & 7 only.
on case studies.
• Define and manipulate array of objects
using polymorphism concept inside
main().
ASSESSMENT
RECOMMENDED TEXT
Gaddis, T. (2019). Starting Out with Java: From Control Structures through Objects
(7th Edition), Pearson, 7 edition, 2019, ISBN: 978-0134802213.