KF7014 - Advanced Programming

What will I learn on this module?

In this module you will enhance your Software Engineering skills using an object oriented methods to develop applications. The module has a strong focus on current professional best practice, and is written to support the needs for professional agile development. You will learn about programming design patterns which can be applied to the Presentation, Domain and Data Access layers of an application and technologies such as Object Relational Mapping that allow the domain layer to remain object orientated while storage uses a relational model. Automated testing is also covered as it supports agile development. The module will also cover application level security and discuss design and implementation issues in relation to access control and data security.

The module will cover the following topics:

1. Basic anatomy of the programming language
2. Abstract Data type, Immutable objects and Encapsulation
3. Presentation Design Patterns
4. Design Principles (e.g., Open-Closed, Dependency Inversion, Single Responsibility etc.)
5. Creational Design Patterns and their Implementation
6. Behavioural Design Patterns and their Implementation
7. Structural Design Patterns and their Implementation
8. Traditional Data Access including data access layer patters.
9. Object Relational Mapping
10. Testing using unit testing frameworks.
11. Data Security

How will I learn on this module?

A lecture will be used to covey the main concepts. Practical work will be supported in the laboratory sessions in which you will put into practice the material covered in the lecture.

Outside class contact time, you are expected to engage in independent learning by reading additional material from both books and relevant professional development sources. This will help you to deepen your knowledge and understanding of the techniques covered in class.

How will I be supported academically on this module?

The module team will guide and support you in the laboratory sessions. The module team will prepare diverse examples to support you in learning complex programming techniques. Advanced topics such as encryption and object relational mapping will be coved in depth allowing to you develop your knowledge and skills. The module team will work closely with you in the practical work to provide further detailed guidance on the subjects covered.

You can also request appointments with the module teaching team outside of scheduled class time to ask questions and seek advice.

What will I be expected to read on this module?

All modules at Northumbria include a range of reading materials that students are expected to engage with. The reading list for this module can be found at: http://readinglists.northumbria.ac.uk
(Reading List service online guide for academic staff this containing contact details for the Reading List team – http://library.northumbria.ac.uk/readinglists)

What will I be expected to achieve?

Knowledge & Understanding:
1. Demonstrate in-depth knowledge and understanding of current best professional practice in the design and development of Object Orientated system.

Intellectual / Professional skills & abilities:
2. Design a system using advanced object orientated principles and methods, such as Behavioural, Creational and Structural design patterns.

3. Work as part of a self-organising team in the implementation and testing of an Object Orientated system, using appropriate advanced techniques.

4. Critically evaluate the effectiveness of the implemented Object Orientated applications with regard to design principles.

Personal Values Attributes (Global / Cultural awareness, Ethics, Curiosity) (PVA):
5. Demonstrate a professional understanding of the importance legal requirements in producing a system that holds third party information. In particular the need for application level security both in terms of access control and data security.

How will I be assessed?

Summative assessment
The module will be assessed by one assessment with two main components.

For the first main component (worth 40% of the final marks), you will work in a group to design, document, implement and test an Object Orientated System. This will require the group members to self-organise and contribute effectively to the overall technical solution. This will assess MLOs 2 and 3. At the end of the technical development students will undertake a peer assessment to assess the contribution made each member of their team.

For the second main component (worth 60% of the final marks) you will write an individual report critically evaluating the work created for the group assignment, considering its effectiveness, best practice and software quality. This will assess MLOs 1, 4 and 5.

You will be provided with written, electronic, feedback for each of the summative assessments.

Formative assessment and feedback
The practical exercises provide opportunities for formative assessment, helping you and your tutors to assess your progress. You will receive guidance and ongoing feedback on your work and progress verbally in the laboratory.

You will also have the opportunity to discuss your progress and the needs of the summative assessment informally in the laboratory.

Pre-requisite(s)

N/A

Co-requisite(s)

N/A

Module abstract

This module you will enhance your Software Engineering skills using an object oriented methods to develop applications. The module has a strong focus on current professional best practice, and is strongly linked to the skills needed in developing agile systems. You will learn about programming design patterns which can be applied to the Presentation, Domain and Data Access layers of an application and technologies such as Object Relational Mapping that allow the domain layer to remain object orientated while storage uses a relational model. The module also covers the need for software development to incorporate security including password authentication and data security. You will be assessed by a two assignments. For the first you will work in a group to design, document, implement and test an Object Orientated System. Then for the second you will write an individual report critically evaluating the work.

Course info

Credits 20

Level of Study Postgraduate

Mode of Study 1 year full-time

Department Computer and Information Sciences

Location City Campus, Northumbria University

City Newcastle

Start September 2023

Fee Information

Module Information

All information is accurate at the time of sharing.

Full time Courses starting in 2023 are primarily delivered via on-campus face to face learning but may include elements of online learning. We continue to monitor government and local authority guidance in relation to Covid-19 and we are ready and able to flex accordingly to ensure the health and safety of our students and staff.

Contact time is subject to increase or decrease in line with additional restrictions imposed by the government or the University in the interest of maintaining the health and safety and wellbeing of students, staff, and visitors, potentially to a full online offer, should further restrictions be deemed necessary in future. Our online activity will be delivered through Blackboard Ultra, enabling collaboration, connection and engagement with materials and people.

 

Current, Relevant and Inspiring

We continuously review and improve course content in consultation with our students and employers. To make sure we can inform you of any changes to your course register for updates on the course page.


Your Learning Experience

Find out about our distinctive approach at 
www.northumbria.ac.uk/exp

Admissions Terms and Conditions
northumbria.ac.uk/terms

Fees and Funding
northumbria.ac.uk/fees

Admissions Policy
northumbria.ac.uk/adpolicy

Admissions Complaints Policy
northumbria.ac.uk/complaints