Show/hide contentOpenClose All
Curricular information is subject to change
On successful completion of this module students should be able to:
describe the key aspects of object-oriented programming and their inter-relationships,
design, implement, test and debug object-oriented programs of moderate complexity,
compare and contrast different object-oriented programming languages,
assess the quality of a piece of object-oriented software.
- Introduction to OOP and OOPL used in the module
- Unit Testing
- Inheritance
- Software Quality: Coupling, cohesion, abstraction and encapsulation
- Polymorphism: Type systems, overriding, abstract methods, template methods, hook methods.
- Alternatives to inheritance
- Combining Closures with OOP
- Web app development using an OO framework
Plus
- Three programming assignments, developed & submitted through GitHub
- End-of-semester, programming exam
Student Effort Type | Hours |
---|---|
Lectures | 24 |
Practical | 24 |
Autonomous Student Learning | 70 |
Total | 118 |
This module assumes that participants:
have a solid grounding in object-oriented programming using Java, or a similar language,
have some experience of functional programming,
are familiar with basic data structures and algorithms,
are competent users of Git and GitHub,
have some experience with test-driven development.
Participants on this module should have covered the material provided by:
COMP20010 Data Structures and Algorithms I
COMP20040 Data Structures and Algorithms II
Description | Timing | Component Scale | % of Final Grade | ||
---|---|---|---|---|---|
Examination: Examination of theoretical and programming elements of the module. | Week 12 | Yes | Graded | No | 70 |
Assignment: Programming assignments | Throughout the Trimester | n/a | Graded | No | 30 |
Resit In | Terminal Exam |
---|---|
Spring | No |
• Group/class feedback, post-assessment
After each assignment the lecturer will discuss a sample solution with the class and highlight the most common errors.