WEB PLATFORM DEVELOPMENT 2

SHE Level 3
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M3I325098
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. The percentage of Work Based Learning for this module, as represented by the proportion of the Activity Types which take place off campus, is 79%. The percentage of Work Based Assessment for this module is 0%.

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:1 - Critically appraise different web platforms.2 - Critically appraise different web architectures. 3 - Critically appraise design patterns relevant to web applications and their components.4 - 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.5 - Analyse web application security vulnerabilities and their prevention.

Teaching / Learning Strategy

Work based Education aims to maximise the direct and digitally mediated contact time with students by practicing teaching and learning strategies that use authentic work based scenarios and encourage action learning, enquiry based learning, problem based learning and peer learning. All these approaches aim to directly involve the students in the process of learning and to encourage sharing of learning between students. The module team will determine the level and accuracy of knowledge acquisition at key points in the delivery, inputting when necessary either directly or with the support of external experts who will add to the authenticity, the credibility and application of the education and learning in the workplace. The Learning and Teaching Strategy is informed by the University's Strategy for Learning. The contents of this module are introduced in lectures in the form of online presentation as well as guided reading made available on GCULearn. These are supported by practical exercises, and there will be seminars on campus which will allow students to discuss key concepts and issues with peers and with instructors. Students will be expected to undertake a significant level of independent study within the workplace, including practical activities, and links will be provided to appropriate external material such as articles, podcasts and videos to supplement the module content. Students will also be encouraged to reflect upon the theoretical learning within the work place and the application of newly learned concepts to the work environment. Students will receive feedback on their performance throughout the module through undertaking the practical assignments and tutorial exercises and participating in the seminars. 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

Specialist knowledge and application Critical thinking and problem solving Critical analysis Communication skills, written, oral and listening Numeracy Computer literacy Self confidence, self discipline & self reliance (independent working) Creativity, innovation & independent thinking Ability to prioritise tasks and time management Gain additional industry focussed competence in the application of the knowledge and practical skills obtained on this programme. Develop an understanding of the practical considerations that constrain the application of theory in the workplace. Evaluate current research and technology concepts and their relationship and application to a work based problem.

Module Structure

Activity Total Hours
Lectures (FT) 24.00
Independent Learning (FT) 110.00
Seminars (FT) 24.00
Practicals (FT) 24.00
Assessment (FT) 18.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