1. demonstrate their mastery of a solid body of knowledge and skills in computer science allowing them to solve problems associated with their field of study
- Confronted with a computer science problem, diploma holders can identify concepts, algorithms, and applicable data structures to find a solution and can break the problem down into its component parts in order to formulate computer-based problem solving methods.
- Confronted with a problem in their field of study, diploma holders can choose the proper problem solving tools (for example, development environment, programming language, software and software packages) that will allow them to find the correct software solution to the problem in question.
- Confronted with the results obtained through reasoning as well as the use of tools and concepts, diploma holders are able to step back and ascertain the relevance and the quality of their results. To do so, diploma holders develop tests and relevant checks to ensure they have developed quality solutions.
2. organise and develop a computer system that meets the complex needs of a client
- Before working on a solution, graduates explore and analyse all aspects of a problem using the documentation at their disposal and consult with future system users. Graduates then will produce a specifications note that describes not only the system requirements but also its time constraints and ease of use for future users.
- In the design phase, graduates will imagine and model the computer system under development in terms of functional components (subsystems) in such a way as to facilitate and optimise development. They will capitalise on the available technology and programme verification methods to ensure the quality of the software system from the very beginning of the design stage.
- In the analysis phase, graduates will itemise, evaluate and compare different technologies (material, languages, algorithms, routing) with the goal of prioritising those that best correspond to different performance and quality criteria specified in the specifications note.
- In the implementation stage, graduates will demonstrate their mastery of the principles, techniques and development tools at their disposal. They will create a software prototype in order to verify that the software corresponds to the clients’ needs and will run a battery of tests to ensure that the proposed solution corresponds to the specifications note. By applying validation techniques and programme verifications, graduates can identify and locate bugs as well as their fixes.
- On the basis of a prototype, graduates design and ensure follow up through a quality control plan: monitoring, optimisation, maintenance, detection of break downs, communication protocols and intervention in the case of failure. They can use metrics and tools to evaluate and validate the structural quality of a software system in terms of its security and maintainability.
3. organise and carry out a research project to understand a new problem in their area of study
- confronted with a new computer problem, graduates will explore the area in question and obtain the necessary information to complete a situational analysis using the various resources at their disposal (library, Internet, researchers, industry experts)
- In the graduation project (possibly paired with a company internship) on a new problem, graduates construct a model of the underlying phenomenon from a computer science perspective
- On the basis of this model, graduates formulate and test different computer devices capable of solving the problem in question (for example, computerised processing of an image by a scanner to facilitate medical diagnosis)
- Once in possession of the experimental results, graduates summarise their conclusions in a report, where they also discuss how key variables influenced the behaviour of the phenomenon being studied. Based on their results, graduates will make recommendations about how to develop and implement innovative technical solutions for the problems in question.
4. Participate in a group project
- As a member of a team project, graduates will collaborate to study a problem and its context with the goal or itemising its different parts, issues and constraints. They will then collaborate to draft a specifications note reiterating the key elements of the project framework: problem and solution, objectives and performance indicators, risks, deadlines, resource limits, etc.
- Once the project framework is defined, graduates collaborate on a plan of action. The team agrees to work collectively on a work schedule, the intermediary steps, the division of labour and project deadlines.
- Team members share their knowledge and skills to solve problems collectively that are raised over the course of the project whether they are technical or not. Graduates are able to step back when necessary to overcome team difficulties or conflicts:
- Mindful of the commitments made during the course of the project, graduates alert their teammates about decisions that need to be made in the event of a problem. Through steering committee meetings, graduates make the necessary decisions to organise or reorganise project objectives.
5. Communicate effectively orally and in writing with the goal of carrying out projects (in particular in English)
- Faced with a computer development project, graduates are able to identify and question the relevant actors. Through their exchanges with those involved in the project, graduates assess the project environment and relevant issues, which requires them to specify their needs, expectations and limits in a specifications note while keeping in mind system functionalities as well as the conditions for use (interfaces with other applications, maintenance, progress, etc.)
- By communicating, graduates take into account the fact that their interlocutors have not necessarily mastered the language of computers and do not have the same idea of the issues and solutions envisaged by computer science.
- In certain critical phases of a project, there are collective choices to be made. To facilitate decision making, the graduate must be capable of providing his/her interlocutors with a summary of the situation and its issues. To this end, he/she is capable of communicating necessary information by using schemas or graphs of the computer system.
- Graduates know how to use reference materials or computer language or software manuals in both English and French. They understand technical reports written in English.
- During the development of a computer application, graduates can ensure the tracking and documentation in a concise and precise language: specifications note, software structures and their related data, operating modes. Graduates are also capable of drafting summary reports that describe their design and technology choices.
6. Demonstrate autonomy, rigor, openness, critical thinking as well as a sense of ethics when doing your job
- In their fields of study, students master the technical vocabulary and usage standards that allow them to easily understand a scientific article or technical document or to communicate with specialists in their field.
- Graduates will take into account the socio-economic aspects of a project in the specifications note, in particular the compatibility between technological progress and ethical standards
- Regarding the development of an application that meets an industrial challenge or provides an important service (for example ambulance management), graduates will ensure the robustness and feasibility of the application for its users.
- Confronted with a new problem, graduates autonomously acquire and use information and computer tools that they need to solve the problem even if they have not explicitly learned about them during their coursework.