07276 - Computer Science

Academic Year 2023/2024

  • Moduli: Stefano Pio Zingaro (Modulo 1) Stefano Pio Zingaro (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Statistical Sciences (cod. 8873)

Learning outcomes

The student will learn a programming language and will be able to design programs using simple algorithms and data structures.


Course contents

Computer science and problem solving. Abstract machines. Programming: names and their visibility, functions, modifiable and non-modifiable objects, basic types (numbers, strings, ennuples, lists, dictionaries) and their use in solving medium difficulty problems. Abstract data types: binary tree. Sorting algorithms. Notes on computational complexity. Limitations of actual procedures: existence of problems that cannot be solved algorithmically.

The course has an intensive laboratory activity, in which the lecturer is supported by tutors.

Readings/Bibliography

The recommended texts for the programming part in Python are the following.
John V. Guttag, Introduction to Programming with Python, Egea, 2021 (reduced Italian translation of: Introduction to Computation and Programming Using Python Third Edition: With Application to Computational Modeling and Understanding Data MIT Press, 2021).

For the programming part in R, the following texts are recommended.

W. John Braun and Duncan J. Murdoch, A First Course in Statistical Programming with R (3rd edition), Cambridge University Press. Digital ISBN: 9781108993456.

Other recommended reading:

Allen B. Downey, Think Python 2e. O'Reilly Media, 2012. ISBN 879-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 97814822544143.

Teaching methods

Classroom lectures.

Laboratory exercises, in the same room as the lecture, with the students' laptops: one computer per pair, in pair programming mode. During the laboratory, the lecturer is supported by tutors.

In view of the type of activity and teaching methods adopted, attendance at this training activity requires the prior participation of all students in modules 1 and 2 of training on safety in the workplace, in e-learning mode.

Assessment methods

The course has both traditional lectures and laboratory lessons, with a single examination. Each week, a number of self-assessment tests will be offered in the lab: these are not required for the exam, but are an important tool for its preparation. Handing in all assignments during the year entitles you to a bonus of 1 point.

The examination consists of two parts: (i) a planning test (duration: 2.5 hours); (ii) a paper-based written test (1 hour, consulting notes or texts is not permitted). The two tests must be taken in the same roll call, without exception.

Programming test: The test takes place on the online platform on which the laboratory also takes place, in a classroom equipped with a PC. Therefore, the student must use the classroom PC and not his or her own laptop. With a total duration of 2.5 hours, it consists of two parts:

  1. a first part consists of the writing of some programmes, with automatic correction on test data; this part is immediately assigned a grade between 0 and 10, with sufficiency at 5. If this part is insufficient, the examination is terminated and the overall grade is insufficient. If the mark is between 5 and 10, the student has access to the second part and the written test on the following day.
  2. the second part consists of writing some programmes, which will be corrected and assessed manually by the teacher together with the written test. This part is also delivered via the laboratory platform and offers automated tests, but these tests are not definitive for the final assessment.

The total time of 2.5 hours is administered independently by the student; once the first part has been handed in, it is final.

Written examination: Lasting 1 hour, this is a traditional written examination, without notes, on paper. It is assessed by the teacher together with the second part of the programming test. The two together are awarded a grade between 0 and 24, with a pass mark at 13. If the test fails (less than 13), the programming test must also be taken again at a later appeal.

The final grade is determined by adding the grade (sufficient) from the first part of the programming test (5-10), the written paper (sufficient: 13-24), and any bonus (0-1). If the result is greater than or equal to 32, the grade is 30L.

 

Teaching tools

All information and material on the course can be found on the page: cs.unibo.it/~stefanopio.zingaro/teaching/07276 and, during the course, on the virtual.unibo.it platform. This platform must also be used to submit the exercises assigned during the workshop.

The workshop takes place in the same room as the lecture, with personal computers. A version of the Python and R programming languages must be installed on the laptop: we suggest the use of Thonny, a self-contained programming environment for Python 3, which will be used during the lectures.

Links to further information

https://cs.unibo.it/~stefanopio.zingaro/teaching/07276

Office hours

See the website of Stefano Pio Zingaro

SDGs

Quality education

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.