Context
Mathematics is one of the most fundamental disciplines for our daily lives, and one of its most important branches is the field of algorithms. Algorithms can be understood as a finite sequence of well-defined and unambiguous instructions, each of which can be executed in a finite amount of time. They are the foundation of everything we do in the digital world, from calculating the fastest route from home to school on our GPS to predicting the weather for the weekend.
In addition to their application in computing, algorithms have various other practical applications. They are used in operations research to solve optimization problems, in data science to analyze large data sets, and in artificial intelligence to teach machines to 'learn'. Therefore, understanding the logic behind them is extremely relevant and useful not only in the academic context but also for life.
Within this perspective, this project aims to work with algorithm concepts in medium-level problems. In this way, we will seek to understand how they can be developed and applied to solve problems, as well as learn how to translate an algorithm into a programming language.
The project will also involve the discipline of Statistics, where students will learn to construct and interpret frequency tables and graphs based on data obtained from statistical samples.
To aid in the understanding and development of the project, I recommend the following study sources:
- Khan Academy, which offers material on Algorithm in a didactic and accessible way.
- Portal da Matemática, a website from IMPA that contains various Mathematics Olympiads, where you can find several challenging problems.
- The online study platform Geekie, which has material on Statistics and its applications.
Practical Activity
Activity Title: "Solving Complex Problems with Algorithms and Statistical Analysis"
Project Objective
The objective of this project is to develop an algorithm to solve a complex problem and use statistical techniques to analyze the results. Putting this knowledge into practice will deepen students' understanding of how algorithms work and how statistics can be used to interpret data.
Detailed Project Description
Students will be divided into groups of 3 to 5 members, and each group will be tasked with developing an algorithm to solve a complex problem. The specific problem will be assigned by the teacher and may vary among groups. Examples of problems may include: vehicle routing (e.g., finding the most efficient route for a delivery), scheduling (e.g., creating the best schedule for a class of students), among others.
After developing the algorithm, the groups must collect data to apply it to their algorithm and analyze the results. The group should use statistics to make meaningful comments about the results, for example, mean, median, mode, range, standard deviation, and others. Students should use at least two of these statistical features in their analyses.
Required Materials
- Paper and pen for notes and drafts
- Computers with internet access for research and report writing
- Software for algorithm development, we suggest using languages like Python, JavaScript, or any other, depending on students' familiarity and access to these resources.
- Software for statistical analysis of collected data, we suggest using Excel, Google Sheets, or online statistical software.
Detailed Step-by-Step for Activity Execution
-
Research and Algorithm Development: Each group must research and develop an algorithm to solve the proposed problem. The research should be documented in the final report.
-
Data Collection: After developing the algorithm, the groups must collect data to test it. This data can be collected from sources available on the internet, through a real survey conducted by the students, or fictitious data created for the purpose of this project.
-
Data Analysis: The groups must then apply their data to the algorithm and use statistics to interpret the results.
-
Final Report: After collecting and analyzing the data, the group must compose a final report detailing the entire process, from the conception of the algorithm to the analysis of the results.
Project Delivery and Connection with Activities
Upon completion of the project, which should last a minimum of 12 hours of work per student, the group must deliver a detailed report, which includes the following topics:
-
Introduction: In this section, the group should write a summary of the problem they are trying to solve, the algorithm they developed to solve the problem, and the importance of algorithms in everyday life.
-
Development: Here, the group should describe in detail the algorithm they developed, how it works, and how they arrived at the solution. Including diagrams and flowcharts to show how the algorithm works is highly recommended.
-
Data Analysis: This section should include a description of how the group collected their data and a detailed discussion of the results obtained after applying the algorithm to the data. The group should use statistical techniques to assist in interpreting the results.
-
Conclusion: Students should conclude the work by summarizing their main points, stating the learnings obtained, and drawing conclusions about the project.
-
Bibliography: Citing all sources of information used for the project.
This project will be a great opportunity for students to work on their problem-solving skills, critical thinking, research, and writing.