WEB APPLICATIONS DEVELOPMENT - 2020/1

Module code: COM2025

Module Overview

This module will demonstrate some of the latest technologies for building interactive web applications. The students will learn how to choose the appropriate tools and the foundations of how to develop such applications. Although there is a focus on Ruby on Rails for the server side computing, a range of different technologies will be explored.

Module provider

Computer Science

Module Leader

CROSSAN Andrew (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 5

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 106

Lecture Hours: 24

Laboratory Hours: 22

Module Availability

Semester 1

Prerequisites / Co-requisites

COM1028 Programming Fundamentals COM1029 Software Engineering

Module content

Indicative content includes:

Week 1 - 2: RESTful Architectures

  * Introduction to web frameworks providing an overview of the main web frameworks and their role in developing and executing web applications

  * The request-response cycle

  * Distributed architectures for web applications focusing on 3-Tier architectures and the MVC design pattern

 

Week 3 - 9: Web Application Development

  * Illustrate how web frameworks respond to a client request by dynamically constructing a web page incorporating data from a DBMS

  * The specific components of a web application and how they relate to architectural design patterns such as MVC and 3-Tier

  *  RESTful Routing

  * An overview of prevalent web technologies drawn from a selection of HTML5, CSS (including SASS or LESS), JavaScript (including jQuery), PHP, Bootstrap, boilerplate.

  * Server side processing and managing data from backend databases systems including CRUD operations, ORM, migrations, validations, associations and scopes

  * Moving beyond request/response to applications that employ real time two-way communication between client and server

 

Week 10 - 11: Scalable Distributed Architectures

  * Considerations for and technologies that allow Responsive Design of a web application

  * Challenges when deploying a large scale system (such as Load Balancing)

Week 12: Revision 

Assessment pattern

Assessment type Unit of assessment Weighting
Coursework INDIVIDUAL PROJECT WORK 40
School-timetabled exam/test LAB-BASED TEST (1 HOUR 30) 10
Examination 2 HOUR WRITTEN EXAM 50

Alternative Assessment

N/A

Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate

·         Ability to design and develop a client-server based interactive web application

·         Ability to use the MVC design pattern for developing an interactive web application

·         Ability to use, and in depth technical understanding of client side technologies such as JavaScript and its jQuery library

·         Ability to use, and in depth technical understanding, of a framework for web development such as the Ruby on Rails development framework

·         Understanding of the best practice incorporated into modern web application frameworks

·         Ability to develop web applications using best software engineering practice.

Thus, the summative assessment for this module consists of:

·         An individual project in which the students will need to demonstrate both technical understanding and good engineering practice – submission deadline: beginning of week 11. This addresses LO1 through to LO5 and LO7

·         A multiple choice lab-based test late in the semester which will assess practical and theoretical concepts introduced in the module.   (1hr) (in week 09). This addresses LO1,through to LO7

·         A formal examination in which students will be required to demonstrate strong technical understanding of all the technical elements of the course. This addresses all LOs.

 

Formative assessment and feedback

Self-assessment exercises will be provided in SurreyLearn.

Module aims

  • Provide an overview of the technologies that support the development of client-server systems and interactive web applications
  • Bring students up to a sufficient level of development skill to be able to develop a basic interactive web application
  • Familiarise students with standards-based design of web applications.
  • To familiarise students with the challenges of building scalable web applications

Learning outcomes

Attributes Developed
002 Be able to explain the concepts of client and server, and how a 3-tier architecture supports the development of client-server based applications and apply this knowledge to build web applications KPT
003 Be able to explain the Model View Controller (MVC) design pattern in the context of developing web applications, compare and contrast it with the 3-tier architecture, and apply knowledge of MVC to build web applications KCPT
004 Demonstrate proficiency in the basics of some chosen client side web technologies KCP
005 Demonstrate proficiency in the use of a web framework for server-side technologies KCP
006 Be able to identify main MVC-based frameworks (Spring, Rails and Django) and outline their underlying technologies KT
007 Be able to describe and demonstrate best practice for web application development KCPT
001 Recognise and describe challenges of building a scalable and responsive web application KCT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Methods of Teaching / Learning

The learning and teaching strategy is designed to:

Develop a critical understanding of best practice in developing state of the art web applications through directed learning and facilitated self-directed learning. The skills learned in this module will be transferable to other software-engineering modules in the programme and the wider software engineering profession.

 

The learning and teaching methods include:


  • Twenty-two hours of lectures with class discussion

  • Twenty hours of lab classes

  • Use of an online forum for facilitated discussion
     


Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: COM2025

Programmes this module appears in

Programme Semester Classification Qualifying conditions
Computer Science BSc (Hons) 1 Compulsory A weighted aggregate mark of 40% is required to pass the module
Computing and Information Technology BSc (Hons) 1 Compulsory A weighted aggregate mark of 40% is required to pass the module
Computer and Internet Engineering MEng 1 Optional A weighted aggregate mark of 40% is required to pass the module
Computer and Internet Engineering BEng (Hons) 1 Optional A weighted aggregate mark of 40% is required to pass the module

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2020/1 academic year.