Digital technologies are dominating the world. They are all around us, like in the computer you have in front of you right now, or in the devices we use to communicate, take photos, or play games, in household appliances or in cars.
A key element that unites all these technologies is the use of microprocessors. These small devices are capable of performing a myriad of operations incredibly quickly, opening the doors to extremely broad possibilities that we experience every day.
But how do these microprocessors know what to do?
There are several approaches to instruct a computer on the actions we want it to perform. An increasingly relevant methodology is machine learning: a digital system is exposed to a vast number of examples of how we expect it to behave, and through specific tools and methodologies, it is trained to imitate us.
In this course, however, we will not focus on this mode, but we will use another tool, a bit more classic, which is that of programming languages.
What are programming languages?
These invented languages allow us to communicate to the computer the actions we want it to perform. Through programming languages, it is possible to create a wide range of applications and solve a multitude of problems.
In this course, we will use programming languages to solve mathematical problems using methodologies that would otherwise be difficult to apply without the aid of computers. For example, we will calculate the probability that in a class of 30 people at least two individuals share the same birthday. With the use of the programming language, we can create different scenarios and determine how many of them two individuals share the same birthday.
In this course, we will use the Python language: a language that makes the approach to programming extremely enjoyable. Not only will we learn about Python, but we will also create virtual worlds to interact with, not only to answer mathematical questions but also to have fun.