COLLABORATIVE PROJECT USING WEB APPLICATIONS - 2025/6

Module code: COM2042

Module Overview

Software engineering projects are run in teams that must fulfill a variety of roles including project management, background research, design, implementation, quality control and training, whilst also providing sufficient evidence of robust processes to demonstrate compliance with the relevant government and industry standards. This module introduces students to best practices in software engineering and development, as well as technologies for building modern web applications. Students will gain first-hand experience of teamwork through the application of software development and engineering practices by collaboratively designing and delivering a software system using web technologies.In Semester 1, students will develop interactive web applications and learn about the best practices in their design and development. This provides students with an understanding of the core concepts underpinning web applications and provides students with the necessary skills to improve their broader development and problem-solving skills. A practical project-based lab work assessment allows students to demonstrate their proficiency in using and applying frameworks to client- and server-side development as well as use of hosted version control platforms.In Semester 2, teams take ownership of a pre-defined high-level specification and must refine it into a software system which they then implement and test, whilst demonstrating adherence to best software engineering practices. Through this group project, students gain an understanding of how to successfully design a software system that meets the specification, independently research and choose technologies, and implement and evaluate their system before delivering it to clients. Throughout the project, the team is expected to plan and document their activities, hold regular project meetings, and will be evaluated on how they approach the different tasks and adhere to industry standards.

Module provider

Computer Science and Electronic Eng

Module Leader

KAZAMIA Stella (CS & EE)

Number of Credits: 30

ECTS Credits: 15

Framework: FHEQ Level 5

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

Overall student workload

Workshop Hours: 10

Independent Learning Hours: 206

Lecture Hours: 16

Seminar Hours: 12

Laboratory Hours: 33

Guided Learning: 11

Captured Content: 12

Module Availability

Year long

Prerequisites / Co-requisites

None

Module content

In Semester 1, students will learn about web applications development. Indicative content for this semester includes:

  •  an introduction to web frameworks and their role in developing and deploying web applications;
  •  protocols underpinning web application infrastructure, including the HTTP request- response cycle and real-time two-way communication through WebSockets; 
  • employing DBMS and ORM to model and handle data in a scalable and extensible way; 
  • server-side processing, rendering, and managing data from backend databases systems, including CRUD, migrations, validations, and associations; 
  • user authorisation and authentication to secure web applications;
  • API design, such as REST, gRPC, and GraphQL, single-page web applications (SPAs), progressive web apps (PWAs), and modern W3C APIs;
  • an overview of prevalent and modern web technologies and libraries for frontend development;
  • best practices to the web application development lifecycle, including agile, continuous integration, continuous deliver/deployment, and test-driven approaches;
  • considerations for responsive design, usability, and accessibility; and,
  • challenges in deploying large-scale web applications and consideration of techniques for native deployment.
In Semester 2, students will work on a software engineering project in groups, using web technologies to meet stakeholder requirements. Following an overview lecture during which project specifications are given, groups will start independent work towards the project, with supervised group meetings with a member of the teaching team acting as project sponsor.Seminars and workshops will cover teamwork and project management to further guide the student groups in their independent work. Seminars and workshops will also be used to teach specialist knowledge about relevant regulations, standards, and processes. Student groups are expected to quickly take ownership of their project and proactively seek the information necessary to the success of their project, leveraging knowledge and practice gained from previous and parallel modules to progress independently.The module team will actively support students, through group meetings, seminars, and workshops, to develop of the following skills:
  • Project management
    • identification of risk and development of mitigation strategies;
    • delineation of project scope and effective handling of scope creep;
    • effective tracking and monitoring of progress, risk and change; and,
    • effective team working with clear responsibility and accountability.
  • Software requirements capture, usability, and design thinking
    • user experience (UX) and interaction design, their importance in web application design;
    • UX models and user-centred approaches to UX;
    • information Architecture (IA) and context of use; and,
    • types and methods of user research and measuring usability.
  • Intellectual Property Rights
    • Intellectual Property Rights and their recognition within software contracts;
    • Intellectual Property Rights as sources of revenue, and associated risks; and,
    • issues related to Intellectual Property in the use of third-party software and services.
  • Data privacy and security
    • IT Law and compliance with respect to data privacy risk, computer misuse, freedom of information, and mandate to retain data; and,
    • principles and practices of information security in terms of integrity, authenticity, availability, and privacy in software design.
Working on the group project leads students to reflect and improve upon their practice in the following areas:
  • Software design and specification
    • design and delivery of software components; and,
    • documentation of the software design process.
  • Software implementation
    • independent work to identify and effectively use appropriate technologies, including third-party software, libraries and services;
    • adherence to agreed procedures and standards in coding, including use of version control, style and documentation;
    • development of low-level software interfaces with hardware components;
    • experience using collaborative development platforms, including version control systems, and project management workflows, including Kanban project boards and issue trackers; and,
    • application and development of continuous integration and continuous delivery/deployment pipelines to realise agile workflows.
  • Quality assurance
    • adherence to agreed procedures and standards for quality assurance of code and text deliverables, including pair coding, peer-reviewing and peer evaluation;
    • understanding of self-documenting code, test-driven development, including functional, unit, user acceptance, and end-to-end testing;
    • verification and validation of requirements; and,
    • issues related to quality assurance in the use of third-party software, libraries and services.

Assessment pattern

Assessment type Unit of assessment Weighting
School-timetabled exam/test IN-SEMESTER TEST ON WEB APPLICATIONS AND SOFTWARE ENGINEERING PRACTICE (90 MINUTES) 20
Practical based assessment INDIVIDUAL LAB ASSIGNMENTS ON WEB APPLICATIONS DEVELOPMENT 20
Project (Group/Individual/Dissertation) COLLABORATIVE GROUP SOFTWARE ENGINEERING PROJECT USING WEB TECHNOLOGIES 60

Alternative Assessment

Individual assessments have no alternative assessment. Due to the problem-orientated and group-based nature of the collaborative project assignment and its duration, the group project will be reassessed using an individual assignment in improving the original project submission based on feedback given for failed aspects and documenting the undertaken improvements in a written report.

Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate the learning outcomes of this module.The summative assessment of this module comprises:

  • an individual lab-based project in which students will need to demonstrate technical understanding and good engineering practice in developing web applications to meet user requirements, addressing LO 6;
  • an in-semester test in which students will be required to demonstrate understanding of web applications infrastructure, frameworks and their challenges, addressing LOs 4 and 5; and,
  • a final group project consisting of a video presentation, report, and software artefact addressing LOs 1, 2 and 3.
The formative assessment and feedback of this module comprises:
  • an initial project plan identifying the methodology and processes to be followed by the group in executing the project, demonstrating understanding and adherence with external constraints such as legal and ethical aspects, as well as identifying high-level project objectives and requirements;
  • continuous monitoring and feedback on the progress and practices within the group project, taking the form of project sponsorship by the teaching team, with opportunities to provide more directed guidance as needed;
  • student engagement in peer evaluation throughout, both within and outside of project groups, for example, code reviews, pair coding, requirements refinement, beta testing and feedback on demonstrations;
  • quizzes to assess the understanding of key concepts and provide immediate feedback;
  • PollEverywhere offering formative feedback opportunities during lectures;
  • general feedback provided to support student learning;
  • verbal feedback given in lab sessions as students attempt the lab exercises; and,
  • an online discussion forum for providing feedback to students, to support the module material and coursework project.

Module aims

  • Introduce students to concepts and practice of project management in general, and as it applies to software whilst allowing students to appreciate the need to follow and critically reflect on best practices, regulations, standards and procedures in the context of software projects.
  • Expose students to the limits of their own knowledge and foster their growth towards independence through self-learning within a controlled environment.
  • Provide an overview of the technologies that support the development of client-server systems and interactive web applications and equip students with the knowledge and skills to be able to develop interactive web applications.
  • Develop students' understanding of best practices in the design and development of web applications and familiarise students with the challenges of building scalable standards-based web applications.

Learning outcomes

Attributes Developed
001 Apply knowledge in systems development life cycles and agile development practices into the research, design, implementation, documentation, and testing of software implementations using web technologies CKPT
002 Demonstrate and undertake the development of a collaborative project utilising web technologies and collaborative software development platforms, employing industry-standard best practices CPT
003 Demonstrate an understanding of legal standing and requirements of an organisation, including those related to intellectual property, information security, data privacy, and compliance processes in practice CPT
004 Describe the core concepts underpinning web applications, version control systems, and agile development practices, including the challenges of building scalable, responsive, and accessible web applications CKT
005 Describe the applications and implementation of continuous integration, continuous delivery/deployment systems for quality assurance, testing, and collaborative software development KPT
006 Demonstrate proficiency in using and applying frameworks to implement client- and server-side functionality to realise web applications, using best practices for test-driven development KPT

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 students' understanding of best practice in developing web applications through directed learning and facilitated self-directed learning, as well as developing teamworking skills through a semi-structured collaborative project. The skills learned in this module will be transferable to other software-engineering modules in the programme and the wider software engineering profession.Learning and teaching methods include:

  • lectures on web application technologies, with class discussions;
  • taught lab classes with structured and independent exercises on web applications development;
  • use of an online forum for facilitated discussion;
  • practical experience of the collaborative project, including:
    • whole cohort sessions providing general support and feedback;
    • student-led sessions presenting progress to the cohort and, potentially, external stakeholders;
    • supervised group meetings for progress monitoring;
    • unsupervised group meetings;
    • self-directed work towards delivery of the project and associated self-learning; and,
    • evaluation of peer projects against objective evaluation criteria.
  • lectures and workshops covering basics of project management, with industry partners;
  • general support sessions developing transferable skills; and,
  • lectures and workshops on team work and technical writing Workshop on design thinking Lectures and workshops on legal and ethical aspects of software engineering.

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

Other information

Digital Capabilities

The software development skills taught in this module provide students with digital skills, including digital communication, collaboration, and participation, that are highly valued in industry. Students work independently in Semester 1 and then in a group to develop a technical solution addressing real-world problems.

Employability

This module follows through a software development approach that follows industry standard best practice in the development process. It teaches web development skills and software development best practice that are widely used in industry. Students therefore develop technical software development skills alongside project management and teamworking skills, which allow them to work together to solve complex real-world problems. Students are equipped with practical problem-solving, project management, software design, development, and teamworking skills, which are highly valuable to employers.

Global and Cultural Skills

Computer Science is a global language and the tools and languages used on this module can be used internationally. This module teaches students practical skills that will allow them to develop web applications with global reach and collaborate with their peers around the world. Additionally, students learn about the BCS code of conduct and the importance of respect in teamwork. They also learn how to work together in groups with other students from different backgrounds to solve a problem.

Resourcefulness and Resilience

This module involves practical problem-solving skills that teach students 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 a problem. Students are taught how to reason about and solve new unseen problems starting with a complex problem scenario and working within a group to develop a practical solution to the problem. Additionally, students learn to work with others' ideas and code and learn to integrate their own solutions into a larger project.

Sustainability

This module asks students to work in groups to develop a project that will be of benefit to society. One category of project that is explored regularly is sustainability, with groups looking to develop web applications to encourage sustainable living.

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 2025/6 academic year.