Please note: you are viewing unit and programme information
for a past academic year. Please see the current academic year for up to date information.
Unit name |
Object-Oriented Programming and Algorithms I |
Unit code |
COMS10017 |
Credit points |
20 |
Level of study |
C/4
|
Teaching block(s) |
Teaching Block 2 (weeks 13 - 24)
|
Unit director |
Dr. Hannuna |
Open unit status |
Not open |
Pre-requisites |
COMS10016 Imperative and Functional Programming.
|
Co-requisites |
None
|
School/department |
School of Computer Science |
Faculty |
Faculty of Engineering |
Description including Unit Aims
This unit provides an introduction to object-oriented programming and to the design and analysis of algorithms. It is delivered in two distinct streams each focusing on one of the subjects. The unit assumes no prior exposure to either of the two subjects.
- For object-oriented programming, the aim is to introduce objects and classes. Further important principles include inheritance, abstraction, encapsulation, polymorphism, and design patterns.
- For the design and analysis of algorithms, the aim is to introduce students to some fundamental algorithms and data structures, and the basics of algorithmic design and analysis.
Intended Learning Outcomes
Successful completion of this unit will enable students to:
- Understand the structure and semantics of a relevant object-oriented programming language.
- Understand and explain key features and characteristics of such languages (i.e. encapsulation, abstraction, inheritance, polymorphism).
- Undertake domain/problem analysis and produce elegant and efficient designs, adhering to Object Oriented principles.
- Write effective and efficient code in a relevant object-oriented programming language.
- Understand and be able to reproduce/implement important algorithms for searching, sorting and pattern matching.
- Understand and be able to write formal proofs regarding the operation of key algorithms.
- Understand asymptotic notation and be able to identify complexity bounds for simple algorithms.
Teaching Information
Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities supported by drop-in sessions, problem sheets and self-directed exercises.
Assessment Information
50% coursework, 50% summer timed assessment.
Reading and References
- Sierra, Kathy and Bates, Bert, Head First Java, 2nd Edition (O'Reilly Media, 2005) ISBN: 978-0596009205
- Freeman, Eric et al, Head First Design Patterns (O'Reilly Media, 2004) ISBN: 978-0596007126
- Sestoft, Peter, Java Precisely by Peter Sestoft, 2nd Edition (MIT Press, 2016) ISBN: 978-0262693257
- Cormen, Thomas H et al, Introduction to Algorithms (MIT Press, 2009) ISBN: 978-0262033848