Introduction to Object-oriented Programming
- Sciences
- 300 level
- 2 credit units
- 188 pages
- 15 units
This course introduces the fundamental concepts of object-oriented programming (OOP). It explores objects and classes, emphasizing their roles in OOP. The course covers creating classes, setting properties, and understanding constructors and destructors. It also examines relationships like composition, inheritance, and polymorphism. Modular programming is introduced, along with different types of overloading. Static methods and fields are analyzed, and students will learn to create classes that inherit fields and methods from other classes.
About this course
- Difficulty
- Intermediate
- Study hours
- 120 hours
- Maths
- Basic
- Content
- Theoretical, practical, problem solving
- Practical work
- Yes
- Basic programming concepts
- Knowledge of programming syntax
- Assignments
- Tutor marked assignments
- Final examination
What you'll read
The real module and unit structure of CIT383, taken from the course material NOUN publishes.
One paragraph, so you can see how it reads
CIT383 · UNIT 1 INTRODUCTION TO CLASSES AND OBJECTS
The Presentation Schedule included in your course materials gives you the important dates for the completion of Tutor- Marked Assignments and attending tutorials. Remember, you are required to submit all your assignments by the due date. You should guard against lagging behind in your work.
What you should be able to do
- Define classes and objects
- Explain inheritance and polymorphism
- Create constructors and destructors
- Describe abstraction and encapsulation
- Differentiate between instance and local variables
What it prepares you for
- Software Developer
- Software Engineer
- System Analyst
- Application Developer
- Database Developer
- Software Development
- Web Development
- Mobile App Development
- Data Science
- Artificial Intelligence
- Java
- C#
Where it gets hard
The units students slow down on, and what makes each one heavy.
- Module 3: Overloading
Unit 3: Logical Operator Overloading
Understanding the nuances of logical operator overloading requires a solid grasp of Boolean algebra and operator precedence, making it challenging to apply correctly in complex expressions.
- Module 3: Overloading
Unit 5: Conversion Operator Overloading and Indexers
Conversion operator overloading involves understanding both implicit and explicit conversions, and the potential data loss or exceptions that can occur, requiring careful design and implementation.
A suggested way through it
13 weeks, about 26 hours in total. Yours will differ.
- Week 1Module 1: Basic Concepts of Object-Oriented Programming
Unit 1: Introduction to Classes and Objects · 2 hours
Read the introduction to classes and objects.. Understand the concepts of state and behavior in objects.. Learn about object creation and destruction.. Practice accessing objects using dot notation..
- Week 2Module 1: Basic Concepts of Object-Oriented Programming
Unit 2: Passing Message and Encapsulation · 2 hours
Explore message passing and its role in object communication.. Understand the concept of encapsulation and data hiding.. Learn how to shield variables from external access..
- Week 3Module 1: Basic Concepts of Object-Oriented Programming
Unit 3: Inheritance · 2 hours
Define inheritance and its benefits.. Differentiate between superclass and subclass.. Learn how to build inheritance hierarchies.. Understand the is-a relationship..
- Week 4Module 1: Basic Concepts of Object-Oriented Programming
Unit 4: Polymorphism and Modulation · 2 hours
Define polymorphism and its importance.. Explore different types of polymorphism.. Understand modular programming and its functions..
- Week 5Module 1: Basic Concepts of Object-Oriented Programming
Unit 5: Composition and Abstraction · 2 hours
Define composition and its relationship to aggregation.. Describe abstraction and its role in simplifying complexity.. Learn about abstract classes, interfaces, and abstract data types..
- Week 6Module 2: Object-Oriented Programming Properties Using any Programming Language
Unit 1: Classes and Objects Properties · 2 hours
Describe classes, objects, methods, and instance variables.. State a class and use it to create an object.. Declare methods in a class to implement the class's behaviors..
- Week 7Module 2: Object-Oriented Programming Properties Using any Programming Language
Unit 2: Constructors and Destructors · 2 hours
Define a constructor.. Explain the concept of object initialization.. Create your own constructor.. Differentiate between constructors and methods..
- Week 8Module 2: Object-Oriented Programming Properties Using any Programming Language
Unit 3: Static Behaviours · 2 hours
Explain how static methods and fields are associated with an entire class rather than specific instances of the class.. Identify and use some common Math methods available in Java API.. Create and use static methods..
- Week 9Module 2: Object-Oriented Programming Properties Using any Programming Language
Unit 4: Inheritance and Composition · 2 hours
Explain how inheritance promotes software reusability.. Describe the concepts of superclasses and subclasses.. List the properties of a class that inherits fields and methods from another class..
- Week 10Module 2: Object-Oriented Programming Properties Using any Programming Language
Unit 5: Polymorphism · 2 hours
Explain the concept of polymorphism.. Use overridden methods to effect polymorphism.. Distinguish between abstract and concrete classes..
- Week 11Module 3: Overloading
Unit 1: Methods and Method Overloading · 2 hours
List the mechanisms for passing information between methods.. Differentiate between parameters and arguments.. Define method overloading..
- Week 12Module 3: Overloading
Unit 2: Basic Operators Overloading · 2 hours
List the concept of operator overloading.. Identify some object-oriented programming languages that support operator overloading.. Explain why Java does not support operator overloading..
- Week 13Module 3: Overloading
Unit 3: Logical Operator Overloading · 2 hours
Describe logical operator.. Explain operator overloading.. List the boolean AND operator.. Analyse short-circuit operator..
Preparing for the exam
- Create concept maps linking Modules 1-2 OOP principles
- Practice writing classes and objects in Java weekly (Units 1-6)
- Review inheritance and polymorphism examples from Units 3-5
- Focus on overloading concepts and syntax in Module 3
- Work through all Tutor-Marked Assignments (TMAs) and correct errors
- Practice coding examples without reference to the course material
- Allocate specific time slots for focused study each day
- Form a study group to discuss challenging concepts and share insights
- Prioritize key topics based on TMA weight and examination structure
- Get enough sleep and manage stress during the exam period
Questions students ask about this course
What is CIT383 about?
This course introduces the fundamental concepts of object-oriented programming (OOP). It explores objects and classes, emphasizing their roles in OOP. The course covers creating classes, setting properties, and understanding constructors and destructors. It also examines relationships like composition, inheritance, and polymorphism. Modular programming is introduced, along with different types of overloading. Static methods and fields are analyzed, and students will learn to create classes that inherit fields and methods from other classes.
How many units does CIT383 have?
CIT383, Introduction to Object-oriented Programming, has 15 units across 3 modules, over 188 pages of course material. You can read it one unit at a time.
How many credit units is CIT383?
CIT383 carries 2 credit units, at 300 level in Sciences.
Is CIT383 hard?
CIT383 is rated intermediate level, with basic mathematical content. It is mostly theoretical, practical and problem solving work, and it has a practical component.
How long does CIT383 take to study?
About 120 hours of study, spread across its 15 units.
How is CIT383 assessed?
CIT383 is assessed by assignments, tutor marked assignments and final examination.
What do I need before starting CIT383?
Basic programming concepts Knowledge of programming syntax
What can I do with CIT383?
Software Developer, Software Engineer, System Analyst, Application Developer and Database Developer.