Principles of Computer Science - 2019/2020

This course is part of the Bioinformatics program at Sapienza University of Rome. The topics covered in this course include: introduction to programming, Python 2.7, its standard library, and its use in the analysis of data.


Prof. Flavio Chierichetti


  • Tuesday 11:00-14:00 (Psicologia A, CU026)
  • Thursday 9:00-11:00 (Psicologia A, CU026)

Useful Links

  • Please subscribe to our mailing list (using your institutional email address to receive the lecture notes, to ask questions, to read answers, and to get news about the course.
  • Download Canopy 2.1.9, a software package containing Python 2.7 and a number of its libraries.



Two homeworks will be given during the course - these homeworks will consist of several program-writing exercises.

If a student gets a final homework score greater than or equal 15, he or she can decide to only do the oral exam in January or February.

If a student does not get a final homework score greater than or equal 15, or if a student does not pass the oral exam in January or February, he or she will have to do both a written and an oral exam. Please also note that - while any student can choose to do the written exam - if a student decides to do the written exam, he or she loses whichever homework score he or she obtained.


The grades of the first homework have been published.

The grades of the second homework have been published.

The final homework scores have also been published. Recall that students that have got a final homework score greater than or equal 15, can decide to only do the oral exam in January or February.


The next exam will be online, oral, and will take place on September 18th at 15:00. The details will be shared via email with the students registered to the exam (on infostud).

Ethical Code

Copying is forbidden, and each student has to write the homework solutions by himself or herself, and must not show the solutions to other students. On the other hand, students are encouraged to discuss approaches for solving the exercises.

The teacher will analyze all the submitted solutions, and will strongly penalize plagiarism.


  • October 8th: Computers and Programming (1)
  • October 10th: Computers and Programming (2)
  • October 15th: Iterations (1)
  • October 17th: Iterations (2)
  • October 22nd: If, Then (1)
  • October 24th: If, Then (2)
  • October 28th (09:00-11:00): Objects and Methods (1)
  • October 29th: Objects and Methods (2)
  • October 30th (09:00-12:00): Text and Strings (1)
  • October 31st (11:00-13:00): Text and Strings (2)
  • November 5th: Files (1)
  • November 7th: Files (2)
  • November 12th: No Lecture
  • November 14th: No Lecture
  • November 19th: Dictionaries and Sets (1)
  • November 21st: Dictionaries and Sets (2)
  • November 26th: List of Lists, and Pictures (1)
  • November 28th: List of Lists, and Pictures (2)
  • December 3rd: Classes (1)
  • December 5th: Classes (2)
  • December 10th: Trees and Recursion (1)
  • December 12th: Trees and Recursion (2)
  • December 17th: Graphical User Interfaces (1)