Course Unit Page

Academic Year 2019/2020

Learning outcomes

At the end of the course, the student has a basic understanding of computational tools and terminology. He is able to: - use programming languages to write small scale programs; - understand programs written by others; - map simple physical problems into computational solutions.

Course contents

Module 1:

Computational tools and problem solving. Declarative and Imperative knowledge. High level programming languages and tools. Interpreters and Compilers. The role of debugging.
Scripting Languages. The Python interpreter. Computer programming in Python.
Variables expressions, and statements; signed number representation and the approach of Python. Functions, conditionals and recursion; Iteration; Data types; Tables; Exporting data in csv files; spreadsheet creation; Python built-in data types and basic
Object Oriented Programming concepts and notation.

Module 2:

Python modules focusing on graphical and scientific/numerical ones; Analysis and browsing of data catalogs using different formats (ascii, fits); Sample selection and correlation analysis; Statistical methods for data modelling; solving astronomical problems.


How to Think Like a Computer Scientist: Learning with Python, di Allen Downey, Jeff Elkner e Chris Meyers. Gree Tea Press (disponibile in rete: https://media.readthedocs.org/pdf/howtothink/latest/howtothink.pdf).

Teaching methods

lectures and class exercises

Assessment methods

Written test (three programming exercises in Python), and discussion of a project.

Teaching tools

whiteboard + video projector + laptop

Links to further information


Office hours

See the website of Mauro Gaspari

See the website of Michele Ennio Maria Moresco