COMPUTER SCIENCE I - MOD. 1

Academic year
2020/2021 Syllabus of previous years
Official course title
INFORMATICA I - MOD. 1
Course code
CT0569 (AF:335263 AR:175640)
Modality
On campus classes
ECTS credits
6 out of 12 of COMPUTER SCIENCE I
Degree level
Bachelor's Degree Programme
Educational sector code
ING-INF/05
Period
Annual
Course year
1
Moodle
Go to Moodle page
The course aims at introducing the basic elements of imperative programming to devise algorithmic solutions.
The student will learn and understand the foundations of computer science for what concerns imperative languages and basic algorithms. Moreover, the student will understand problem solvability and the ability to select suitable methods for problem analysis and modeling.
At the end of the course the student must be able to use programming tools (such as IDEs, integrated development environment, or code editors) to develop and debug programs. In particular, he/she must know how to:
1. formalize a problem with a precise specification;
2. designing one or more algorithmic solutions;
3. implement these solutions using imperative programming languages;
4. verify the execution of the proposed programs with appropriate test cases.

The programming language adopted throughout this course will be the Python Language.
Basic elements of logic.
Foundations of computers: numerical representation, Boolean algebra, von Neumann Architecture, computational thinking.
Variables and elementary types in Python. Assignment and expressions.
Conditional branching and loops.
Single and multi-dimensional lists.
Functions and variable scoping.
Problem solving: decomposition of problems, top-down and bottom-up solution methodologies.
Recursion.
Abstract data types: lists, dictionaries, and strings, sets.
Classes and modules.
Development and debug in IDE
Plotting
Hans Petter Langtangen: "A Primer on Scientific Programming with Python", 3rd edition, Springer.
The exam consists of a written test and in bi-weekly assignments.
The written test aims to evaluate the student's problem solving skills, the knowledge of Python and the ability to code the algorithm devised as solution. The written exams is split into an initial test with multiple choice questions to assess the student's theoretical knowledge, and a second part focused on the evaluation of the applied knowledge of the student through the development of some algorithmic solutions and their Python implementation.
Lectures and hands-on sessions. Lectures will be used to introduce the theoretical aspects of the Python language, and will use on-line editors to show code samples. Hands-on lessons will be carried on using students' laptops and developing tools (local or on-line).
Italian
The structure and contents of the course could be modified due to the contingencies related to COVID-19 pandemic.
written
Definitive programme.
Last update of the programme: 14/09/2020