- Docente: Simone Martini
- Credits: 8
- SSD: INF/01
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: First cycle degree programme (L) in Mathematics (cod. 6061)
Learning outcomes
Upon completion of the course, the student knows a high-level programming language and some fundamental concepts of computer science, such as algorithm, computational complexity, abstract machine, data type, and some notable algorithms. The student is able to analyze and design algorithms, which he/she can implement in the programming language studied.
Course contents
Computer science and problem solving. Abstract machines. Python machine. Programming in Python: names and visibility, functions, immutable and mutable objects, basic data types and their use in the solution of problems. Classes and objects. Abstract data types as classes. Sorting algorithms. Introduction to computational complexity. Limitations of effective procedures: non decidable problems.
The course involves an important lab activity, where the instructors is joined by teaching assistants.
Readings/Bibliography
John V. Guttag
Introduction to Computation and Programming Using Python
Third Edition: With Application to Computational Modeling and Understanding Data
MIT Press, 2021
Other textbooks:
Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
On-line manuscript: see greenteapress.com/wp/think-python-2e/
Jessen Havill
Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming
Chapman and Hall/CRC. ISBN 9781482254143
Teaching methods
Lectures.
Guided programming experimentations using the students' PCs, in selected hours, in pair programming. if the pandemic will make it possible.
During the lab hours the instructor is joined by several teaching assistants.
The course is given in the second semester (from mid February to May).
For the students of LM in Scienze Filosofiche: the course is taken from that of L in Mathematics, hence it will be given from mid February to May.
As concerns the teaching methods of this course unit, all students must attend Modules 1 and 2 on Health and Safety online
Assessment methods
There is a single exam covering both the lectures and the lab. Lab homework is assigned every week---this homework is not graded, but if handed in regularly, it will result in one point bonus in the final grade.
Final exam consists of a programming test (0 to 10 points; 5 points needed to pass) and a written test (0 to 24 points; 13 points needed to pass). Final grade is the sum of the two sufficient grades, plus the bonus (if any).
Lab test is waived for the students in Philosophy.
Students with disabilities and Specific Learning Disorders (SLD) Students with disabilities or Specific Learning Disorders have the right to special accommodations according to their condition, following an assessment by the Service for Students with Disabilities and SLD. Please do not contact the teacher but get in touch with the Service directly to schedule an appointment. It will be the responsibility of the Service to determine the appropriate adaptations. For more information, visit the page:https://site.unibo.it/studenti-con-disabilita-e-dsa/en/for-students
Teaching tools
Info and material available at www.cs.unibo.it/~martini/MATH . During the term of the lectures, material will be available on virtuale.unibo.it
Students are encouraged to install on their PCs Thonny, an environment for the programming language Python 3, which will be used during the lectures.
Office hours
See the website of Simone Martini