20h Th, 280h Proj.
Nombre de crédits
Langue(s) de l'unité d'enseignement
Organisation et évaluation
Enseignement durant l'année complète
Unités d'enseignement prérequises et corequises
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement
(ce cours est exclusivement en Anglais)
In this course, teams of 4-6 students will carry out a substantial integrated software project, which builds on the knowledge, know-how and skills acquired during their bachelor studies (i.e. programming, software engineering, data bases, operating systems and networks).
Yet, this is not a "coding project", but one that can only succeed through an efficient collaboration between all team members. The quality of final code is only a part of the grading criteria.
Students will be confronted to various collaboration tools to help organising and sharing knowledge, code, and workloads, and automate deployments. The method is as close as possible to best practices in the software industry.
The project is structured in 5 'sprints' during which a usable and potentially releasable product increment will be created.
Seminars are organized to provide fundamental guidance in project design, management, tooling, as well as team coordination, and communication. Students must acquire by themselves much of the additional knowledge required by this project given the enormous diversity of modern SW tools, platforms, technologies, methodologies and practices.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement
The project aims at developing the students' ability to carry out a realistic, complex and collaborative software project from an initial and incompletely defined idea throughout to the operational deployment of a working application.
The students will learn and actively practice new disciplines like requirements engineering, architecture, modelling, source control, test driven development, continuous integration and deployment, project management, team leadership, reporting, oral presentation, and knowledge sharing, thereby improving their autonomy and ability to work efficiently in a team, and their communication and writing skills.
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, III.3, III.4, IV.1, IV.2, IV.3, IV.4, V.1, V.2, VI.1, VI.2, VI.3, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5, VII.6 of the MSc in computer science and engineering.
Savoirs et compétences prérequis
A bachelor degree in computer science or engineering with a major implication in computer science. Incomplete achievement of IT-related courses from the bachelor degree may prevent entry into the present course.
Activités d'apprentissage prévues et méthodes d'enseignement
- Seminar on modern software architecture and landscape;
- Seminars on fundamentals in project management with a focus on Agile methodologies, SCRUM in particular;
- Seminars on software engineering (modelling, testing, source code management, CI/CD);
- Seminar on knowledge management and project presentation;
- Sessions on team dynamics;
- 5 project reviews closing each of the 5 sprints with a formal oral presentation of the project status and demo as applicable;
- Feedback on technical progress and project management;
- Creation of a project's wiki, with the whole project documentation, meeting minutes, intermediate reports, presentations, and procedures;
- Use of gitlab for source code control, integration, and deployment;
- Use of JIRA for work backlog management and reporting; use of containerized platforms for deployment;
- Weekly project meetings are organized project per project to help structuring initial activities, directions, and collaboration. These project meetings form an integral part of the project execution.
Mode d'enseignement (présentiel, à distance, hybride)
Cours donné exclusivement en présentiel
- 5 review meetings spread from October to early May;
- The project itself is mainly carried out remotely by students but for short weekly SCRUM meetings (part of the project execution)
Lectures recommandées ou obligatoires et notes de cours
Slides used during the seminars and a wiki do provide guidelines and tips yet are far too short to support all activities of the project neither sufficient knowledge required for an efficient execution. Every project is different, every team is different; henceforth, students are expected to extensively search, collect, and equip themselves with all necessary knowledge and resources for their specific project. This self-learning workload is typically 10 to 30% of the project execution.
In most efficient teams, members do specialize on learning topics and teach each other members in collaboration.
Modalités d'évaluation et critères
Travail à rendre - rapport
No exam in June.
Content in the project's wiki, JIRA, and gitlab in addition to review presentations and working demonstrations form the project's deliverables and base for gradings. The last review is the final demonstration of the project with handover to the client and weights more. The final mark is calculated as follows:
- First 4 review meetings (progress achieved, quality of deliverables and management, efficiency) = 10% per review meeting == 40% overall
- Final project wiki and source code documentation (coverage, structure, quality) = 10%,
- The delivered software at project completion (code quality, requirements coverage, test and build automation, deployment) = 35%
- Final project defence and demonstration = 15%
The project defence consists of an oral presentation and a live demonstration of the system, followed by a question/answer session. All deliverable products of the project (doc, code, procedures, scripts, data, etc.) shall be in a state suitable for a formal handover to the client.
The final grade takes into account the amount and quality of the achievements, the team's efficiency (velocity, organisation, management), the quality of the code, docs, reports, and oral presentations, as well as the pertinence of answers to questions during milestone reviews.
Grades are assigned to the whole group given that a project is first and foremost a collective endeavour. However, evidences of a significant difference in the personal involvement of some members of a group may drive the educational team to assign a maximum of 2 points (on 20) up from the collective grade, else down by an unlimited amount (to floor 0).
In case of issue in June, a resit is possible. Students will have to improve their software based on a requirements sheet. Students will have to submit the updated code and a written report describing the improvements and individual contributions. A review (with software demo) will be organized in August/September.
The grade obtained at the resit session only replaces those of the final review session and project deliverables. The first 4 review sessions irrevocably weight on the final outcome.
- Teams comprise +/- 5 students, formed as much as possible on formulated project preferences, while ensuring a diversity of student profiles in each group (i.e. computer scientists and engineers).
- Presence at the seminars and review meetings is compulsory.
- The project starts early during the 1st quarter.
- The final report must be submitted by mid-May.
- Final defence and demonstration also take place mid-May.
Additional resources and facilities notably relating to the execution of software projects are available at the course's dedicated wiki.
(please, favor MS-Teams group chat and channels that will be created per project to communicate with the educational team)
- Benoit Donnet (Benoit.Donnet@uliege.be)
- Bernard Hauzeur (B.Hauzeur@uliege.be)
- Guy Leduc (Guy.Leduc@uliege.be)
- Laurent Mathy (firstname.lastname@example.org)
- Amina Benzerga (email@example.com)
Association d'un ou plusieurs MOOCs
Aucun MOOC n'est associé à ce cours.
Notes en ligne
The course web page contains PDF of the seminar slides, projects subjects, Sprints/Reviews details, the Course agenda. In addition, students can interact with the Pedagogical Team through the Discusson Forum.