COMP0004 Object-Oriented Programming
This database contains the 2018-19 versions of syllabuses.
Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).
This module provides a thorough introduction to object-oriented (OO) programming. The key object-oriented concepts such as class design, inheritance, dynamic binding and interfaces, are introduced, along with design strategies for smaller sized object-oriented programs. Material is also included on data representation and data processing, the implementation of common data structures such as lists, trees and hash tables, and on development tools and practices.
To learn how to apply object-oriented design concepts, and practice programming skills, the module has a substantial practical element, with weekly lab classes, sets of exercise questions, and an individual programming mini-project.
On successful completion of the module, a student will be able to:
- Design and implement smaller-scale object-oriented programs
- Have a good knowledge of key object-oriented principles and design strategies
- Read, write, and process data sets using object-oriented streams
- Understand how core data structures are implemented using classes
- Use programming tools such as an integrated development environment (IDE), debugger, and code repository
Availability and prerequisites
This module delivery is available for selection on the below-listed programmes. The relevant programme structure will specify whether the module is core, optional, or elective.
In order to be eligible to select this module as optional or elective, where available, students must meet all prerequisite conditions to the satisfaction of the module leader. Places for students taking the module as optional or elective are limited and will be allocated according to the department’s module selection policy.
Programmes on which available:
In order to be eligible to select this module:
Topics covered in lectures or via online material:
- Taking an object-oriented approach to software development
- Classes and the use of abstractions
- Key design principles and development practices
- Designing and implementing classes
- Identifying and implementing class relationships
- Using abstract classes, interfaces and inheritance
- Developing smaller-scale programs taking an object-oriented approach
- Effective object-oriented design and programming practices
- Documenting designs using the Unified Modelling Language (UML)
- Implementing common data structures
- Storing data in files and basic databases
- Processing data using streams
An indicative reading list is available via http://readinglists.ucl.ac.uk/departments/comps_eng.html.
The module is delivered through a combination of lectures and lab classes.
This module delivery is assessed as below:
In-class test (1 Hour)
Individual programming project (Up to 1500 lines of code)
In order to pass this module delivery, students must:
- achieve an overall weighted module mark of at least 40%; and
- achieve a mark of at least 30% in any components of assessment weighed ≥ 30% of the module.
Where a component comprises multiple assessments, the minimum mark applies to the overall component.