Module Code: |
H7APRG |
Long Title
|
Advanced Programming
|
Title
|
Advanced Programming
|
Module Level: |
LEVEL 7 |
EQF Level: |
6 |
EHEA Level: |
First Cycle |
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 | % |
Coursework | 50.00% |
End of Module Assessment | 50.00% |
AssessmentsFull 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. |
|
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 |
---|
|