WEB PLATFORM DEVELOPMENT 2

SHE Level 3
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M3I322955
Module Leader Katrin Hartmann
School School of Computing, Engineering and Built Environment
Subject Computing
Trimester
  • B (January start)

Pre-Requisite Knowledge

Web Platform Development 1, Programming 2 or equivalent

Summary of Content

This module equips the students with the knowledge and understanding to design, implement and deploy scalable web applications consisting of a web browser client interacting with a server which uses a database as well as external services. Students examine web application platforms, architectures and design patterns including the Model-View-Controller design pattern. Aspects of practical importance such as testing, tooling and security are covered in a web application context.

Syllabus

Web platform architectures -360 - n-tier-architectures -360 - scalable/distributed architectures - RESTful architectures Design patterns relevant to web applications, -360 - Model-View-Controller -360 - Dependency Injection Server-side application design: -360 - Business logic -360 - Routing and URL design - Handling requests - Using MVC frameworks: models, views and templates, controllers - REST APIs: using request methods and headers, content negotiation including serialisation and de-serialisation, formatting responses Client-side application design -360 - Review of HTML, CSS, JavaScript and JavaScript libraries, DOM and event handling -360 - View generation Interfacing with external data sources and services -360 - Database interfaces -360 - Data in JSON format -360 - Data from web services The use of third party services, e.g. for authentication. Testing, debugging and error handling. The use of test frameworks. Web platform frameworks. Session management, including distributed session management. Performance management. -360 - DNS management -360 - Scaling -360 - http cache specification -360 - memcached (distributed in-memory cache) -360 - edgecaching/CDN Tool chains in the context of web application development. Web application specific security vulnerabilities and their prevention. -360 - Injection (SQL, JavaScript) -360 - Cross-site scripting -360 - Cross-site request forgery - Broken authentication and session management Deployment and hosting. Architectural comparison of large scale web application such as YouTube, Facebook or Twitter.

Learning Outcomes

On completion of this module, students should be able to:Critically appraise different web platforms.Critically appraise different web architectures. Critically appraise design patterns relevant to web applications and their components.Design, develop and deploy a web application with a web browser client, application logic implemented using the capabilities of a scalable web server platform and a database-driven backend leveraging external services such as authentication using appropriate tools and frameworks.Analyse web application security vulnerabilities and their prevention.

Teaching / Learning Strategy

The Learning and Teaching Strategy is informed by the University's Strategy for Learning. The contents of this module are introduced in lectures. These are supported by practical exercises in laboratory sessions. All lectures and laboratory material will be made available on GCU Learn and links will be provided to appropriate external material such as research papers, podcasts, MOOCs, videos and literature. During all lab sessions students will receive formative feedback on their performance in undertaking the laboratory exercises. The coursework is undertaken in two parts to avoid assessment overload at the end of the trimester. Feedback is provided after the first coursework to help students to improve their work. Summative feedback and marks will be provided for the coursework assignments undertaken as part of the module using GCU Learn. GCU Learn will also be used to provide the students with module specific forums to stimulate student and lecturer interaction outwith the normal lecture and laboratory sessions.

Indicative Reading

Loudon, K. (2010) Developing Large Web Applications, O'Reilly Media Zandstra M. (2010) PHP Objects, Patterns, and Practice, APRESS Fowler, M. (2004) Patterns of Enterprise Application Architecture, Addison Wesley Freeman, A (2013) Pro ASP.NET MVC 5 Framework, Apress Cantelon, M. et al (2014) Node.js in Action, Manning Sanderson, D. (2009) Programming Google AppEngine, O'Reilly

Transferrable Skills

D1 Specialist knowledge and application D2 Critical thinking and problem solving D3 Critical analysis D4 Communication skills, written, oral and listening D5 Numeracy D7 Computer literacy D8 Self confidence, self discipline & self reliance (independent working) D10 Creativity, innovation & independent thinking D15 Ability to prioritise tasks and time management

Module Structure

Activity Total Hours
Practicals (FT) 24.00
Independent Learning (FT) 134.00
Assessment (FT) 18.00
Lectures (FT) 24.00

Assessment Methods

Component Duration Weighting Threshold Description
Coursework 1 n/a 50.00 35% Practically based programming assignment
Coursework 2 n/a 50.00 35% Practically based programming assignment