The aim of this course is to teach the principles of structured programming using Python as a programming language. It is not the aim of the course to teach object-oriented programming, which will instead be one of the main topics of the course "Programmazione e Algoritmi 2".
EXPECTED LEARNING RESULTS
KNOWLEDGE AND UNDERSTANDING:
At the end of the course, the student must be able to:
* illustrate the basic inner working of a computer and the meaning of algorithm;
* illustrate the concept of asymptotic computational complexity of an algorithm;
* illustrate the principles of structured programming;
* illustrate the basic methods that Java provides for input/output from/to the console;
* illustrate the most important functions of the Python standard library for string manipulation, math calculations, input and output;
* illustrate the characteristics and use of the main predefined data structures in Python: lists, sets and dictionaries;
* illustrate the algorithms for linear and binary search and the the most common sorting algorithms.
KNOWLEDGE AND UNDERSTANDING APPLIED:
At the end of the course, the student must be able to:
* manually generate the execution trace of a program written in the Python language;
* write simple structured programs in Python;
* calculate the asymptotic computational complexity of simple algorithms.
COMMUNICATION SKILLS:
At the end of the course, the student must be able to explain the inner workings of programs and algorithms using correct and precise language.
LEARNING SKILLS:
At the end of the course the student must be able to:
* learn to use programming languages other than Python, as long as they are based on the same paradigm (structured imperative programming with dynamic typing), such as JavaScript, PHP, Ruby, etc..