WEB APPLICATIONS DEVELOPMENT - 2023/4

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 one framework for the server side computing, a range of different technologies will be explored.

Module provider

Computer Science and Electronic Eng

Module Leader

FRYMANN Nick (CS & EE)

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: 90

Lecture Hours: 22

Laboratory Hours: 22

Guided Learning: 10

Captured Content: 6

Module Availability

Semester 1

Prerequisites / Co-requisites

None

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 Coursework 60
Examination Invigilated exam (2hrs) 40

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


  • Weekly lectures with class discussion

  • Weekly 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

Other information

Digital Capabilities

This module builds on the digital skills taught in COM1025 (Web and Database). Students will learn the theory behind web applications and use a development framework to learn how to build  a web application with complex front end and back-end components using a professional development approach. The knowledge gained in this module feeds through to COM2027 (Software Development Project) where students work in groups to build large scale web applications.

Employability

This module follows through a software development approach that follows industry standard best practice in the development process. It builds on first year modules such as COM1025 to teach skills web development skills and software development best practice that are widely used in industry.

Global and Cultural Skills

Computer Science is a global language and the tools and languages used on this module can be used internationally. This teaches students practical skills that will allow them to develop web applications with global reach and collaborate with their peers around the world.

Resourcefulness and Resilience

This module involves practical problem-solving skills that teach a student how to start with a problem scenario and design and architect a solution. The practical lab sessions provide a range of tools and techniques that can be applied to wider problems and students are encouraged to explore a range of techniques or technologies to solve to a problem.

Programmes this module appears in

Programme Semester Classification Qualifying conditions
Computing and Information Technology BSc (Hons) 1 Compulsory A weighted aggregate mark of 40% is required to pass the module
Computer Science 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
Computer Science MEng 1 Compulsory 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 2023/4 academic year.