The University of Sheffield
Department of Computer Science

COM21002 AI Group Project

Summary

This module gives students an opportunity to experience the processes of engineering a real software system for a real client in a competitive environment. The taught element covers the tools and technologies needed to manage software development projects successfully and to deliver AI products that meet both client expectations and quality standards. Topics that are put into practice include: the requirements engineering process; software modelling and testing; using specific software development framework(s); group project management etc.

Session Spring 2023/24
Credits 20
Assessment
  • Group project
  • Individual assignment
Lecturer(s) Dr Emma Norling & Ms Varvara Papazoglou
Resources
Aims

The module aims to:

  • gain experience in dealing with clients and in understanding and managing clients expectations
  • enhance team working skills
  • experience, in a competitive environment, the practical problems of constructing, managing and deploying a medium-sized AI project, producing the associated user documentation and providing training and online support
  • examine selectively and use some of the tools and techniques available to solve practical problems in software engineering
  • understand the processes involved in the quality assurance of software and accompanying documentation
  • examine professional issues in a realistic context
Learning Outcomes

By the end of the module the student will be able to...

  • Analyse a client's business needs to agree on a software requirements specification.
  • Apply an agile methodology, working in a team to develop a solution to their client's requirements.
  • Manage a team AI project, including appropriate documentation of meetings, design process, software standards and testing strategies.
  • Critically reflect upon individual and team activity in the software project, highlighting personal growth.
Content

This new module is similar to COM3420 Software Hut and will share the initial lectures. However, this course will be supported by IBM, and students are expected to have privileged access to IBM Watson and specialist IBM staff.

Teamworking:

  • group project vs individual project
  • roles in a team
  • documents used by the team
  • team meetings and communication

Requirements Engineering (classic OO vs XP):

  • Requirements Capture and Analysis
  • Functional versus non-functional requirements
  • Managing changing requirements

Managing Software Development Projects:

  • Project management strategies
  • Risk analysis and management
  • Quality management strategies
  • Reviews and inspections
  • Testing strategies and test plans

Use of Prototypes:

  • Reasons for prototyping
  • Characteristics of prototypes
  • Use of prototypes for requirements elicitation and validation

Software Documentation:

  • Usable Requirements Specification documents
  • User manuals and on-line user support

The AI-based projects in this course will be supported by IBM, and it is expected that students will be given privileged access to IBM Watson and specialist IBM staff.

Restrictions This is core for AI & CS students and is restricted to students on that programme (COMU117, 119, 38 & 39).
Teaching Method The course is centred around the project, which involves the students working as teams to develop an application for a specified client.
There will be lectures in weeks 1-5.
The lectures are primarily to provide training in the tools and technologies used to support the projects, and emphasis is placed on the application of their content to practical software development.
There will be technology training labs in the first seven weeks. These labs introduce specific technologies that the teams will be expected to use in the development of their client's solution.
There will be a monitoring meeting each week.
Feedback Students are expected to interact with their client on an ongoing basis throughout the semester, receiving feedback on a regular basis (this is a core component of the agile software development process that should be used in this module).
In addition, teams will meet with a facilitator on a weekly basis, who will be monitoring and providing feedback on teamwork and progress.