Module code: COM2025

Module provider

Computer Science

Module Leader

GILLAM L Dr (Computer Sci)

Number of Credits


ECT Credits



FHEQ Level 5

JACs code


Module cap (Maximum number of students)


Module Availability

Semester 1

Overall student workload

Independent Study Hours: 106

Lecture Hours: 24

Laboratory Hours: 22

Assessment pattern

Assessment type Unit of assessment Weighting
School-timetabled exam/test LAB-BASED TEST 10%
Examination WRITTEN EXAM 50%

Alternative Assessment


Prerequisites / Co-requisites

COM1028 Programming Fundamentals COM1029 Software Engineering

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 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.

Learning outcomes

Attributes Developed
Understand the concepts of client and server, and how a 3-tier architecture supports the development of client-server based applications KPT
Understand the Module View Controller (MVC) design pattern in the context of developing web applications, and how it differs from 3-tier architecture. CPT
Be proficient in the basics of JavaScript and other “Ajax” techniques KCP
Be proficient in the use of Ruby on Rails for server-side development KCP
Be aware of the main MVC-based frameworks: Spring, Rails and Django PT
Have a good knowledge of how to architect a web application KCPT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Module content

Indicative content includes:

Week 1:

Lecture: Introduction to the Ruby programming language and the Rails framework (2h)
Lab Class: Ruby tutorial exercises (2h)

Week 2:

Lecture: Introducing Ruby on Rails (2h)
Lab Class: Getting started with Ruby on Rails (2h)

Week 3:

Lecture: Ruby on Rails views, HTML5 and best practice (2h)
Lab Class: Defining Ruby on Rails templates and views (2h)

Week 4:

Lecture: JavaScript and jQuery (2h)
Lab Class: JavaScript and jQuery tutorial exercises (2h)

Week 5:

Lecture: Ruby on Rails controllers and routing (2h)
Lab Class: Ruby on Rails controllers and defining a mailer (2h)

Week 6:

Lecture: Ruby on Rails and databases (2h)
Lab Class: Adding migrations and models to a Ruby on Rails application (2h)

Week 7:

Lecture: Ruby on Rails models, validations and associations (2h)
Lab class: Adding validations and associating models (2h)

Week 8:

Lecture: AJAX the Ruby on Rails way (2h)
Lab Class: AJAX processing with JavaScript views (2h)

Week 9:

Lecture: Dependency management (2h)
Lab Test

Week 10:

Lecture: Real time web applications and frameworks (2h)
Lab Class: Real-time features in Ruby on Rails (2h)

Week 11:

Lecture: Revision (2h)

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

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 JavaScript and its jQuery library

·         Ability to use, and in depth technical understanding, of 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 LO6

·         An open book lab test in which each student will need to demonstrate good understanding of their code base by enhancing one of its features in a specified way (30 minutes) (in week 09). This addresses LO2, LO3 and LO4.

·         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.

Reading list

Reading list for WEB APPLICATIONS DEVELOPMENT : http://aspire.surrey.ac.uk/modules/com2025

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 2017/8 academic year.