Module Code: H7APRG
Long Title Advanced Programming
Title Advanced Programming
Module Level: LEVEL 7
EQF Level: 6
EHEA Level: First Cycle
Credits: 10
Module Coordinator:  
Module Author: CRISTINA HAVA MUNTEAN
Departments: School of Computing
Specifications of the qualifications and experience required of staff

This module requires a lecturer holding a BSc degree or higher, in computing/computer science or cognate discipline.

Learning Outcomes
On successful completion of this module the learner will be able to:
# Learning Outcome Description
LO1 Explain the theory, concepts and principles of distributed systems operation and design
LO2 Compare and contrast the methods, theories, and concepts of Web Services.
LO3 Demonstrate conceptual, technical and practical skills in the analysis, design and test of distributed systems
LO4 Demonstrate conceptual, technical and practical skills in the implementation of advanced communication systems.
LO5 Demonstrate conceptual and technical skills in the analysis, design and implementation, management of systems and applications based on web services and REST web services.
LO6 Explain and apply advanced programming techniques, including exception handling and multithreaded programming
Dependencies
Module Recommendations

This is prior learning (or a practical skill) that is required before enrolment on this module. While the prior learning is expressed as named NCI module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).

No recommendations listed
Co-requisite Modules
No Co-requisite modules listed
Entry requirements

Learners should have attained the knowledge, skills and competence gained from stage 2 of the BSc (Hons) in Computing.

 

Module Content & Assessment

Indicative Content
Multithreaded Programming
• Concurrent execution of threads (multitasking) • User created threads • Thread priorities • Thread states and lifecycle
Exception handling
• General exception handling • Exception handling templates • Exception enrichment techniques
Distributed Systems – Concepts and Principles
• Description of a Distributed System • Distributed Systems Models • Parallel and Distributed Programming Paradigm • Evolution from centralised systems to web services and service oriented architectures. • Non-Functional Requirements • Security Options for Distributed System
Service Oriented Architecture (SOA) and Web Distributed Services
• The Web • Service orientated architecture • Web Services and their Approach to Distributed Computing • Web Services Technologies • Semantic Web • Semantic Web Services • Personalised Web • Distributed Recommender Systems • SOAP • WSDL • Web service security framework
RESTful Web Services
• Using the Uniform Interface • Identifying Resources • Designing Representations • Designing URIs • Web Linking • Content Negotiation • Queries • Web Caching • Security • Extensibility and Versioning
API Development and Management
• Service orientated architecture • API • Web API Invocations • Web API Responses • Design Patterns and consideration for Web services APIs • API management (exposure, security, access control, lifecycle management) • API’s Testing and Evaluation
Cloud-based Distributed Systems
• Distributed and cloud-based storage architectures and file systems • Services in the Cloud Computing • Programming Distributed systems using Amazon Web Services and Windows Azure
Ubiquitous Distributed Systems
• Trends in supporting Ubiquitous Computing • Distributed Systems for Social and Professional Networking • Distributed Systems for Multimedia
Assessment Breakdown%
Coursework50.00%
End of Module Assessment50.00%

Assessments

Full Time

Coursework
Assessment Type: Project % of total: 50
Assessment Date: n/a Outcome addressed: 3,4,5,6
Non-Marked: No
Assessment Description:
The assessment will consist of practical tasks in the form of a group project, and it will assess learners’ knowledge and competences on advanced programming techniques, web services and distributed systems. Feedback will be provided in oral format, or on-line through Moodle.
End of Module Assessment
Assessment Type: Terminal Exam % of total: 50
Assessment Date: End-of-Semester Outcome addressed: 1,2,3,4,5
Non-Marked: No
Assessment Description:
Terminal assessment exam taken over 2 hours consists of one mandatory question and two questions of which the student must answer one that assess students' understanding of the underlying theories and concepts.
No Workplace Assessment
Reassessment Requirement
Repeat examination
Reassessment of this module will consist of a repeat examination. It is possible that there will also be a requirement to be reassessed in a coursework element.
Reassessment Description
The repeat strategy for this module is an examination. All learning outcomes will be assessed in the repeat exam.

NCIRL reserves the right to alter the nature and timings of assessment

 

Module Workload

Module Target Workload Hours 0 Hours
Workload: Full Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecture No Description 24 Per Semester 2.00
Lab No Description 48 Per Semester 4.00
Independent Learning No Description 178 Per Semester 14.83
Total Weekly Contact Hours 6.00
 

Module Resources

Recommended Book Resources
  • Andrew Tanenbaum, Maarten van Steen. (2016), Distributed Systems: Principles and Paradigms, 2nd. CreateSpace Independent Publishing Platform.
  • Bogunuva Mohanram Balachandar. (2017), RESTful Java Web Services: A pragmatic guide to designing and building RESTful APIs using Java, 3rd. Packt Publishing.
  • Brenda Jin, Saurabh Sahni, Amir Shevat. (2018), Designing Web APIs: Building APIs That Developers Love, 1st. O'Reilly Media.
This module does not have any article/paper resources
This module does not have any other resources
Discussion Note: