Skip to Main Content (Press Enter)

Logo UNIPV
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations

UNIFIND
Logo UNIPV

|

UNIFIND

unipv.it
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  1. Courses

509477 - COMPUTER PROGRAMMING, ALGORITHMS AND DATA STRUCTURES

courses
ID:
509477
Duration (hours):
110
CFU:
12
SSD:
INFORMATICA
Year:
2025
  • Overview
  • Syllabus
  • Degrees
  • People

Overview

Date/time interval

Annualità Singola (29/09/2025 - 12/06/2026)

Syllabus

Course Objectives

The course introduces the student to programming in Python and solving computational problems using algorithms. The main notions of imperative programming (variables, expressions, loops, functions, recursion, input / output) and the fundamental elements of object-oriented programming are provided during the first module. The second module illustrates the most important data structures (linear, trees and graphs) and the main algorithms that work on them. The students will also learn how to analyze algorithms and how to use them to solve problems of medium complexity.

Course Prerequisites

None

Teaching Methods

For both modules:
Frontal lessons (theory) and laboratories (programming in Python)

Assessment Methods

Module 1:

In-class computer-based test with multiple choices and open questions, and programming exercises.

Module 2:

Written test (open questions and exercises about theory)
Programming (solve a problem applying the concepts learned during the theoretical and laboratory lectures).

Texts

For Module 1:

Think Python: How to Think Like a Computer Scientist by Allen B. Downey
Beijing: O'reilly Media

For Module 2:

Problem Solving With Algorithims and Data Structures Using Python, 2nd edition, By Brad Miller and David Ranum
Franklin Beedle & Assoc

(Optional) Data Structures & Algorithms in Python (1st Edition) by John Canning, Alan Broder, Robert Lafore
Pearson Education

(Optional) Introduction to Algorithms, 3rd edition By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
The MIT Press

Contents

Module 1: Computer Programming

Imperative programming
- top-down / bottom-up programming
- values, variables, expressions
- I/O instructions
- constructs, selection, loop
- functions, recursion
- I/O file
- libraries

Object-oriented programming
- fields and methods
- encapsulation, abstraction, inheritance, and polymorphism
- data types (arrays, lists)

++++++++++++++++++++++++

Module 2: Algorithms and Data Structures

Introduction
- Definitions of algorithm and structured data
- Methods for algorithms analysis (Big-O Notation, worst case, average, best case)

Main data Structures
- Linear (stack, queues, linked lists)
- Trees
- Graphs

Search and Sort
- Search (binary search, binary search trees, hash table)
- Sort (SelectionSort, InsertionSort, BubbleSort, HeapSort, MergeSort, QuickSort)

Algorithms on trees and graphs
- visit/traversal
- connected components
- topological sorting
- minimum spanning tree
- shortest path

Main algorithm approaches:
- Divide and Conquer
- Greedy algorithm
- Dynamic Programming

Course Language


English

Degrees

Degrees

ARTIFICIAL INTELLIGENCE 
Bachelor’s Degree
3 years
No Results Found

People

People (2)

DONDI PIERCARLO
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore IINF-05/A - Sistemi di elaborazione delle informazioni
Gruppo 09/IINF-05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Ricercatore
FERRARI STEFANO
Teaching staff
No Results Found
  • Use of cookies

Powered by VIVO | Designed by Cineca | 26.4.5.0