Principles of Computer Science II

Course objectives

The course aim to introduce the algorithmic approach to solving problems correctly and efficiently. Algorithms are ubiquitous in bioinformatics and are often at the interface of computer science and biology. Well established algorithmic techniques will be studied as well as ways to encode them in a computer programme using python.

Channel 1
MARCO ZECCHINI Lecturers' profile

Program - Frequency - Exams

Course program
The course aim to introduce computational thinking and the algorithmic approach to solving problems correctly and efficiently. Algorithms are ubiquitous in bioinformatics and are often at the interface of computer science and biology. We will introduce the algorithmic approach and the theory of algorithms for studying correctness and efficiency, understanding what makes a good algorithm and how to classify them. We will study characteristic algorithmic techniques and the related computational ideas that are relevant to the field of biology and how to select the most suitable to solve a given task. Topics covered include - Searching algorithms - Dynamic programming algorithms - Graph-based algorithms - Divide-and-Conquer algorithms - Clustering and Tree-based algorithms - Randomized Algorithms We will work with Python and how to write a computer program encoding a given algorithm. We will work with Amazon's AWS and how to use cloud resources to efficiently execute our python programs on large datasets. The detailed program of the course and the corresponding material is available on the Google Classroom system and also through the web page of the instructor.
Prerequisites
PRINCIPLES OF COMPUTER SCIENCE I Principles of Mathematics
Books
NEIL C. JONES AND PAVEL A. PEVZNER: An Introduction to Bioinformatics Algorithms, The MIT Press, Cambridge, Massachusetts, London, England, 2004.
Frequency
Classes are carried out twice a week: Monday 16:00 - 19:00 Thursday 14:00 - 16:00
Exam mode
A total of four assignments will be handed over during the semester. These assignments are done by each student individually. The course will be evaluated based on the performance of (a) the individual assignments, (b) the active participation of the student during the semester and (c) an oral interview. You can find detailed information on what you are expected to submit, how and when for each of the individual assignment, by following the links "Instructions" under the web page of the course. Additional information about exam products are given during the class and communicated through the Google Classroom system. We strongly suggest students to attend the class and to participate to these activities in order to complete the assignments within the dates of the course.
  • Lesson code1049261
  • Academic year2024/2025
  • CourseBioinformatics
  • CurriculumSingle curriculum
  • Year2nd year
  • Semester1st semester
  • SSDING-INF/05
  • CFU6
  • Subject areaAttività formative affini o integrative