COMP3200: Introduction to Object-Oriented Programming
OverviewThis module builds on the foundation of object-oriented design and implementation found in CO320 to provide both a broader and a deeper understanding of and facility with object-oriented program design and implementation. Reinforcement of foundational material is through its use in both understanding and working with a range of fundamental data structures and algorithms. More advanced features of object-orientation, such as interface inheritance, abstract classes, nested classes, functional abstractions and exceptions are covered. These allow an application-level view of design and implementation to be explored. Throughout the course, the quality of application design and the need for a professional approach to software development is emphasised.
This module appears in:
- Computing Stage 1 Canterbury
- Computing Stage 1 Medway
- Computing Stage 2/3 Canterbury
- Computing Stage 2/3 Medway
- Humanities Undergraduate Stage 1
- Humanities Undergraduate Stage 2 & 3
- Short-Term Study
- Social Sciences Undergraduate Stage 1
- Social Sciences Undergraduate Stage 2 & 3
- STMS Undergraduate Stage 1
- STMS Undergradute Stage 2 & 3
- Wild Modules
Total contact hours:44
Private study hours: 106
Total study hours: 150
Method of assessment
90 min in course test (30%)
Coursework (30 hours) (70%)
Assessment 1 - Class Exercises (10%)
Assessment 2- Quiz (15%)
Assessment 3 - Inheritance & Polymorphism (20%)
Assessment 4 - GUI & Exception (25%)
Assessment 5 - In-class Test (30%)
Indicative list, current at time of publication. Reading lists will be published annually)
"Objects first with Java – A practical introduction using BlueJ", David J. Barnes and Michael Kölling, Pearson Education, 2017, ISBN 978-1-292-15904-1.
On successfully completing the module students will be able to:
Use advanced features of an object-oriented programming language, such as inheritance and graphical libraries, to write programs.
Use object-oriented analysis, design and implementation with a minimum of guidance, to recognise and solve practical programming problems involving inheritance hierarchies.
Design appropriate interfaces between modular components.
Evaluate the quality of competing solutions to programming problems.
Evaluate possible trade-offs between alternative solutions, for instance those involving time and space differences.
Thoroughly test solutions to programming problems.
Discuss the quality of solutions through consideration of issues such as encapsulation, cohesion and coupling.