Unit information: Object-Oriented Programming and Algorithms in 2027/28

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

Unit name Object-Oriented Programming and Algorithms
Unit code COMS10018
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
Units you must take before you take this one (pre-requisite units)

None

Units you must take alongside this one (co-requisite units)

None

Units you may not take alongside this one

None

School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Unit Directors: Christian Konrad and Sion Hannuna

Why is this unit important?

This unit provides an introduction to object-oriented programming and to the design and analysis of algorithms. Object-oriented programming is a major programming paradigm extending imperative programming, and efficient algorithms underpin much of computer science.

How does this unit fit into your programme of study

This is a mandatory unit taken in year 1.

Your learning on this unit

An overview of content

This unit 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.

How will students, personally, be different as a result of the unit?

On completion of this unit students, will gain advanced problem-solving skills, fostering a methodical and logical mindset. This unit encourages precision and meticulous attention to detail. Students will cultivate a deep understanding of software design and efficiency, enabling them to create elegant, reusable code. Additionally, they will develop patience and persistence, as algorithmic challenges often require perseverance. These experiences will shape them into more analytical, patient, and detail-oriented individuals, well-equipped for complex problem-solving in both their academic and professional lives.

Learning Outcomes

Successful completion of this unit will enable students to:

  1. Identify and synthesize syntactically and semantically correct object-oriented programs.
  2. Explain key features and characteristics of such languages (i.e. encapsulation, abstraction, inheritance, polymorphism).
  3. Undertake domain/problem analysis and produce elegant and efficient designs, adhering to Object Oriented principles.
  4. Write effective and efficient code in a relevant object-oriented programming language.
  5. Reproduce fundamental algorithms.
  6. Explain the argument behind the operation of key algorithms and synthesize formal proofs of correctness.
  7. Read and write asymptotic notation and be able to identify complexity bounds for simple algorithms.

How you will learn

Teaching will be delivered through a combination of:

  • a combination of synchronous lectures and asynchronous videos and/or materials to introduce fundamental concepts and support revision
  • scheduled labs and help sessions covering formative programming tasks and problem sheets with staff support for hands-on programming or drop-in sessions
  • self-directed exercises with opportunities to discuss these with staff

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):

Weekly labs and classes containing example problems and programming exercises, with direct feedback from unit teaching staff.

Tasks which count towards your unit mark (summative):

  • Programming coursework, completed in groups, with individual contribution determined by a student viva (50%) (ILOs 1-4)
  • Exam (in the TB2 examination period, 50%) (ILOs 5-7)

The mark for the programming coursework will be informed and authenticated by a viva (with individual contributions checked)

Additionally:

  • The programming coursework is considered a “must pass” component: students must achieve a mark of at least 40% in this assessment to obtain credit points for this unit.
  • The exam is considered a “must pass” component: students must achieve a mark of at least 40% in this assessment to obtain credit points for this unit.

When assessment does not go to plan

Students will be required to retake a failed “must-pass” component in a like-for-like fashion, in accordance with the University rules and regulations.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMS10018).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

Assessment
The assessment methods listed in this unit specification are designed to enable students to demonstrate the named learning outcomes (LOs). Where a disability prevents a student from undertaking a specific method of assessment, schools will make reasonable adjustments to support a student to demonstrate the LO by an alternative method or with additional resources.

The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.