COLLABORATIVE PROJECT USING WEB APPLICATIONS - 2026/7
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.
- 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.
- 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.
- 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 2026/7 academic year.