Teacher(s)
Language
French
Prerequisites
These projects assume the parallel acquisition of basic notions in programming as targeted by the course LSINC1101.
Main themes
This teaching unit revolves around programming projects.
The objectives are:
The objectives are:
- to model simple situations using computer systems;
- to design a simple interactive service accessible via a web interface and using a relational database;
- understand the basic principles of how interactive websites work;
- to confront professional constraints: group work, meeting deadlines, sense of responsibility;
- to acquire transversal skills taking notes, writing reports.
Learning outcomes
At the end of this learning unit, the student is able to : | |
With regard to the AA reference system of the "Bachelor in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
|
|
Content
The course assumes basic knowledge of the Python programming language, as covered in LINFO1101. The course also assumes the student is learning databases and SQL in parallel, as covered in LINFO1006. Students work in groups to solve more complex problems than those covered in the programming course and apply their database knowledge at the end of the year. Each group will work on a unique project, but with several deadlines and intermediate developments.
Generally speaking, students should learn to:
Generally speaking, students should learn to:
- work effectively in a group
- write correct programs
- document their codes
- write tests that validate the proper functioning of their programs
- document their programs and associated testing
- take a critical look at the work of other groups of students to help them improve (constructive peer-review)
- evaluate the performance of their programs
- find python libraries and modules that solve similar problems
- compare the features and performance of different solutions to the same problem
- document and analyze these differences in functionality and performance
- build simple SQL queries
- quantitative analysis of the energetic impact of selecting a particular web technology
Teaching methods
Project learning in groups of multiple students. Each group will be followed by a member of the teaching staff.
4 or 5 lectures are organized (depending on progress) to give the basics of web technologies, the python Flask framework, SQL, unit tests or Graph.js.
Students are encouraged to ask questions during the lecture, and of course the follow-up sessions.
This teaching unit addresses issues related to sustainable development and transition through a module dedicated to exploring the performance and power consumption of web servers according to the technological choice among various web technologies.
4 or 5 lectures are organized (depending on progress) to give the basics of web technologies, the python Flask framework, SQL, unit tests or Graph.js.
Students are encouraged to ask questions during the lecture, and of course the follow-up sessions.
This teaching unit addresses issues related to sustainable development and transition through a module dedicated to exploring the performance and power consumption of web servers according to the technological choice among various web technologies.
Evaluation methods
- Evaluation of individual and group participation during the year, based on the follow-up by the person from the teaching staff delegated to follow up the group (15%).
- Evaluation of the different phases of the project on the basis of written reports and documentation (70%).
- Evaluation of the final phase of the project based on the oral presentation (10%).
- Peer review assessment (5%).
Participation in all teaching activities is compulsory. The non-submission of a project will result in an absence rating. There is no exam.
Students who fail in June will be able to redo an individual project during the summer which will replace the 70% of the evaluation of the phases of the project. An oral presentation of the project will also be organized (10%). The other activities are not organized during the summer, so the marks of participation (15%) and peer review (5%) will be kept for the second session.
Although AI is one of modern digital tools, it is essential to understand the basics of programming yourself in order to use it effectively. This course aims to teach the fundamentals of computer science through a relatively simple project for an expert. Therefore, the use of generative AI (such as ChatGPT, Consensus, Perplexity, etc.), other than for writing assistance (i.e., rephrasing a sentence you wrote yourself, correcting it, or translating it), is strictly prohibited. The instructor reserves the right to give a 0 to some or all projects containing AI-generated code. The use of AI may also be considered a case of cheating, which will be addressed by the student's judging panel. The instructor also reserves the right to summon a student in case of doubt about the authenticity of the code in order to verify that they are capable of explaining the code they have submitted.
Students taking the Human-Machine Interface course in parallel will have to apply their knowledge in the framework of Project 2. The evaluation of the interface will be done through a joint final report between the two courses, but this part does not count in the evaluation of the Project 2 course. Students are invited to refer to the HMI course sheet concerning the evaluation of the interface itself.
Other information
The course presupposes knowledge of Python. If the student has missed the Computer Science 1 course, it is his/her duty to participate in the remedial sessions.
The course presupposes knowledge of SQL language for selection queries, projections and joins and database concepts from the 8th week, as organized in the LINFO1006 course. A student who does not have LINFO1006 in parallel will have to follow online course modules, without however being able to claim additional credits or a difference in treatment.
Project-based learning means that a significant part of the skills must be acquired by the students themselves via the resources listed in the syllabus, such as online tutorials.
The course presupposes knowledge of SQL language for selection queries, projections and joins and database concepts from the 8th week, as organized in the LINFO1006 course. A student who does not have LINFO1006 in parallel will have to follow online course modules, without however being able to claim additional credits or a difference in treatment.
Project-based learning means that a significant part of the skills must be acquired by the students themselves via the resources listed in the syllabus, such as online tutorials.
Online resources
Faculty or entity