Study-Unit Description

Study-Unit Description


CODE LAS3009

 
TITLE Single Page Applications: A Pragmatic Approach

 
UM LEVEL H - Higher Level

 
MQF LEVEL 6

 
ECTS CREDITS 4

 
DEPARTMENT Centre for the Liberal Arts and Sciences

 
DESCRIPTION The web has become deeply integrated in our everyday life. The advent of mobile technology has pushed users to demand fluid user experiences with a native-like feel. JavaScript once relegated to minor visual changes on web pages has been promoted to the language of choice in providing rich responsive interactive applications.

This Unit provides a pragmatic approach to building Single Page Applications using JavaScript for both client and server side development. We will de-construct the components that make up a Single Page Application in order to understand the underlying concepts and learn how to apply the latest frameworks in order to implement real world applications. Emphasis will be made on differentiating which technologies and architectures to use in various scenarios.

The Unit will aim to cover these subjects:
- Core principles that drive a Build First approach and the different processes and flows that can be setup.
- Build systems such as Grunt and Gulp and how to use these systems to compose build flows.
- Modularization of JavaScript in large-scale applications.
- REST API Design.
- MVC/MVVM architectures and frameworks in a web context.
- Building web applications using BackboneJs (MVC), Knockout (MVVM) and AngularJs (MVVM), learning the fundament differences between each of these frameworks.
- Testing code in order to ensure code quality and learn about continuous integration.

Learning Outcomes:

1. Knowledge & Understanding:

By the end of the Unit the student will be able to:
- List the benefits of a build first approach.
- Describe underlying concepts governing Single Page Applications.
- Identify the main difference between the various frameworks and learn how to pick a framework to address a particular problem.
- Explain the importance of a continuous integration system.

2. Skills:

By the end of the Unit the student will be able to:
- Create solid restful APIs.
- Create a build system and learn how to compose the relevant build flows.
- Properly modularize code.
- Create Single Page applications using BackboneJs.
- Create Single Page applications using Knockout.
- Create Single Page applications using AngularJs.
- Create tests to ensure code quality.

Main Text/s and any supplementary readings:

The course pedagogy involves practical study units and most of the background required to understand the module will be provided during the lectures. We recommend that these publications supplement the material taught during lectures.

Learning JavaScript Design Patterns - Addy Osmani;
http://addyosmani.com/resources/essentialjsdesignpatterns/book/

JavaScript: The Good Parts – Douglas Crockford;
http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

JavaScript Patterns – Stoyan Stefanov;
http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752/

JavaScript Application Design: A Build First Approach – Nicolas Bevacqua;
http://www.manning.com/bevacqua/

 
ADDITIONAL NOTES Pre-requisite knowledge, skills and competences:
- Basic knowledge of JavaScript
- Basic understanding of HTML

 
STUDY-UNIT TYPE Lecture and Practical

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Project Yes 100%

 
LECTURER/S David Calleja
Mark Galea

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit