CLIENT SIDE WEB DEVELOPMENT

SHE Level 4
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code MHI324187
Module Leader Jim Devon
School School of Computing, Engineering and Built Environment
Subject Computing
Trimesters
  • A (September start)
  • B (January start)
  • C (May start)

Pre-Requisite Knowledge

Web Platform Development 1 or Web Design Technologies or equivalent

Summary of Content

This module provides students with the technical foundation to enable them to develop applications which are executed within a web browser. The module covers HTML5, JavaScript frameworks and libraries and other appropriate technologies with implementations that allow client-side scripts to interact with the user, control the browser, communicate asynchronously and alter document content. In addition, widely applied patterns used for client-side web application development are covered. While undertaking the module students develop applications that consume remote services using appropriate technologies and data formats within browser-based applications.

Syllabus

HTML5 : - Canvas, video and audio, forms and data, browser history, offline support and client-side storage elements, geolocation, 'draggables & droppables' JavaScript : - Applying object-oriented principles in JavaScript - Large-scale JavaScript application architecture and design issues, including architecture patterns, modularisation, script loading, routing/navigation/history, templating/binding, data access, event-driven messaging - Libraries and frameworks which support development of large-scale JavaScript applications JavaScript Patterns : - Module, Revealing Module, Singleton, Constructor, Observer, Command, Facade, MVC, MV* Working with services on the client : - Consuming REST services, asynchronous requests and callbacks, XMLHttpRequest/AJAX - Querying OData services Real-time web communication - Server push - Publish-subscribe - Peer-to-peer - Techniques and technologies for real-time web communication, including: polling, long polling, WebSocket, HTML5 Server-Sent Events, WebRTC - Frameworks which support development of real-time web applications Testing and debugging : - Unit testing in JavaScript - Client-side test frameworks - Use of tools for debugging JavaScript - Use of tools for debugging HTTP requests/responses

Learning Outcomes

On completion of this module, students should be able to:Demonstrate a detailed understanding of the architecture and design patterns commonly used in client-side web applications Critically appraise and select libraries and frameworks which meet specific purposes within the architecture of client-side web applicationsEvaluate the requirement for real-time functionality to enhance responsiveness within a client-side web applicationDevelop and test a rich, responsive and scalable client-side web application solution which can be executed within a modern web browser and interacts with remote services, making use of appropriate technologies, libraries and frameworks

Teaching / Learning Strategy

The university 'Strategy for Learning' documentation has informed the learning and teaching strategy for this module. The module's material will be introduced through lectures, while practical exercises, based on the lecture material, will be given to students for their laboratory sessions. Tutorials will be used to help explain and elaborate on both the lecture material and the laboratory exercises. All lecture, laboratory and tutorial material will be made available on GCU Learn. During all lab and tutorial sessions students will receive formative feedback on their performance in undertaking the laboratory and tutorial exercises. Summative feedback and grades will also be provided for the coursework assignment undertaken as part of the module using GCU Learn. GCU Learn will also be used to provide the students with module specific discussion forums to stimulate student and lecturer interaction out with the normal lecture, laboratory and tutorial sessions.

Indicative Reading

-360b7 Learning Javascript Design Patterns, A. Osmani, 2012, O'Reilly b7 Javascript the good parts, D. Crockford, 2008, O'Reilly b7 Patterns of Enterprise Application Architecture, M. Fowler, 2002, Addison Wesley b7 Design Patterns: Elements Of Reusable Object-Oriented Software, E.Gamma, R. Helm, R.Johnson and J.Vlissides, 1994, Addison Wesley -357b7 Single Page Web Applications: JavaScript end-to-end, Michael Mikowski and Josh Powell, 2013, Manning -360b7 Real-time Web AppsWith HTML5 WebSocket, PHP, and jQuery, J. Lengstorf and P. Legetter, 2013, Apress

Transferrable Skills

D1 Specialist knowledge and application D2 Critical thinking and problem solving D4 Communication skills, written, oral and listening 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
Tutorials (FT) 12.00
Independent Learning (FT) 134.00
Assessment (FT) 18.00
Practicals (FT) 12.00
Lectures (FT) 24.00

Assessment Methods

Component Duration Weighting Threshold Description
Coursework 1 n/a 50.00 35% Practically based web programming assignment
Exam (Exams Office) 2.00 50.00 35% Written Examination