Tipo titolo non definito in Academic Certificate In Computer Science

Insegnamenti matricole

Nel corso di laurea potrai seguire questi insegnamenti a seconda del piano di studi che sceglierai. Cliccando su ciascuno, si aprirà una breve scheda descrittiva.

×
Stampa
Insegnamento
Fondamenti di programmazione
Codice
MF0571
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
Academic Certificate in Computer Science
Curriculum
GENERICO
Responsabile didattico
TESTA Alberto
Docenti
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
Italiano
Italian
Contenuti/Content Summary
Il corso ha la finalità di introdurre i fondamenti della programmazione degli elaboratori elettronici, partendo dal concetto di algoritmo e dalla descrizione dei concetti di base di un programma, per arrivare a concetti avanzati di strutture controllo dei linguaggi di programmazione. Il corso si propone, inoltre, di presentare i concetti di base del linguaggio di programmazione Python impiegato a supporto dell’insegnamento della programmazione, nonché per lo svolgimento di esercitazioni pratiche in laboratorio.
The course aims at introducing the fundamentals of computer programming, starting from the concept of algorithm and the description of the basic concepts of a program, to arrive at advanced concepts of control structures of programming languages. The course also presents the basic concepts of the Python programming language used to support the teaching of programming, as well as for carrying out practical exercises in the laboratory.
Testi di riferimento/Textbooks
Think Python 2nd Edition by Allen B. Downey. Materiale integrativo fornito dai docenti su DIR
Think Python 2nd Edition by Allen B. Downey. Supplementary material provided by the teachers on DIR
Obiettivi formativi/Mission
Al termine del corso, lo studente deve essere in grado di 1) dato un semplice problema di programmazione, individuarne un algoritmo risolutivo, implementarlo in linguaggio Python eseguirlo al calcolatore; 2) dato un un algoritmo o un programma implementato in linguaggio Python, individuare il problema che l’algoritmo/programma mira a risolvere. Conoscenza e capacità di comprensione: concetto di algoritmo, concetto di programma, tipi dati fondamentali (interi, floating point, booleani, stringhe, liste), costrutti di base della programmazione (if-then-else, while, for, funzioni e parametri) Capacità di applicare conoscenza e comprensione: dato un problema, - individuare i dati di input da raccogliere dall'utente e i dati di output da produrre; - individuare le strutture dati necessarie per gestire tali dati; - definire un algoritmo che trasforma i dati di input nei dati di output, seguendo i costrutti della programmazione; - scrivere al calcolatore il programma sorgente che implementa l'algoritmo, utilizzando un linguaggio di programmazione (Python); - eseguire il programma - fare test per dimostrare che il programma è corretto Autonomia di giudizio: in modo autonomo lo studente deve riuscire ad identificare gli elementi necessari alla soluzione di un problema, definire ed implementare l'algoritmo nel linguaggio di programmazione Python ed infine eseguire il programma. Abilità comunicative: padronanza della terminologia specifica della programmazione e abilità di comunicare a altri la propria soluzione ad un problema. Capacità di apprendere: lo studente deve poter analizzare soluzioni di problemi implementate in Python essendo in grado di capirne il funzionamento e la logica.
At the end of the course, the student must be able to 1) given a simple programming problem, identify an algorithm for its solution, implement it in Python language execute and test it on the computer; 2) given an algorithm or a program implemented in Python language, identify the problem that the algorithm / program aims to solve. Knowledge and understanding: the concept of algorith, program, fundamental data types (integers, floating points, Booleans, strings, lists), basic programming constructs (if-then-else, while, for, functions and parameters) Ability to apply knowledge and understanding: given a problem, - identify the input data to be collected by the user and the output data to be produced; - identify the data structures necessary to process such data; - define an algorithm that transforms the input data into the output data, following the programming constructs; - write on the computer the source program that implements the algorithm, using a programming language (Python); - run the program - do tests to prove that the program is correct Autonomy of judgment: the student must be able to identify the elements necessary to solve a problem independently, define and implement the algorithm in the Python programming language and finally execute the program. Communication skills: mastery of specific programming terminology and the ability to communicate his/her solution of the problem to others. Ability to learn: the student must be able to analyze solutions to problems implemented in Python being able to understand their operation and logic.
Prerequisiti/Required background knowledge
Nessuno.
None
Metodi didattici/Teaching methods
Lezioni tradizionali e esercitazioni nel laboratorio informatico.
Traditional lessons and exercises in the computer lab.
Altre informazioni/Further information
Controllo dell'apprendimento in itinere: durante il corso verranno svolti molti esercizi in laboratorio volti a consolidare gli argomenti presentati durante le lezioni. Inoltre verranno somministrati quiz settimanali sugli argomenti introdotti.
Ongoing learning control: during the course many laboratory exercises will be carried out aimed at consolidating the topics presented during the lessons. In addition, weekly quizzes will be given on the topics introduced.
Modalità di verifica dell'apprendimento/Assessment methods
L'esame consisterà di una batteria di quiz volti a verificare le conoscenze teoriche presentare durante le lezioni e un esame orale nel quale si chiederà la scrittura di un semplice esercizio in Python. questa seconda parte è volta a testare la capacità dello studente di risolvere in maniera autonoma un semplice problema e di scrivere un programma Python.
The exam will consist of a battery of quizzes aimed at verifying the theoretical knowledge presented during the lessons and an oral exam in whichthe student will be asked to write of a simple program in Python. This second part is aimed at testing the student's ability to solve a simple problem in an independent way and to autonomously write a Python program.
Programma esteso/Content
- Introduzione alla programmazione - Individuare Input e output del problema - Variabili e assegnamento - Istruzioni condizionali e condizioni booleane - Tipi elementari, Stringhe, Liste - Dizionari, Tuple e loro realizzazione in Python - Cicli e accenno alla complessità di un programma - Funzioni - Documentazione e uso di librerie - Lettura di programmi in altri linguaggi di programmazione
- Introduction to programming - Identify Input and output of a problem - Variables and assignment - Conditional statements and Boolean conditions - Elementary types, Strings, Lists - Dictionaries, Tuples and their implementation in Python - Loops and hints to the complexity of a program -Functions and parameters - Documentation and use of libraries - Reading programs written in other programming languages
Risultati di apprendimento attesi/Intended learning objectives
Conoscenza delle strutture elementari della programmazione. Capacità di scrivere ed eseguire semplici programmi Python. Capacità di leggere codice Python e fare ricerche in librerie Python.
Knowledge of the elementary structures of programming. Ability to write and run simple Python programs. Ability to read Python code and search Python libraries.
×
Stampa
Insegnamento
Fondamenti di algoritmi e strutture dati
Codice
MF0572
Anno Accademico
2024/2025
Anno regolamento
2024/2025
Corso di studio
Academic Certificate in Computer Science
Curriculum
GENERICO
Responsabile didattico
BOTTRIGHI Alessio
CFU
6.0
Ore di lezione
48.0
Ore di studio individuale
102.0
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ
Anno
1
Periodo
Secondo Semestre
Sede
ALESSANDRIA
Tipo di valutazione
V
Lingua insegnamento/Teaching language
ITALIANO
Italian
Contenuti/Content Summary
Introduzione ai concetti di algoritmo, complessità algoritmica; Panoramica delle strutture dati più diffuse e analisi della complessità dei relativi Abstract Data Types (ADT); Esempi di utilizzo di tali strutture; Analisi dell’implementazione dei vari ADT in Python.
Introduction to the concepts of algorithm, algorithmic complexity; Overview of the most popular data structures and analysis of the complexity of related Abstract Data Types (ADT); Examples of using such ADT; Analysis of the implementation of the various ADTs in Python.
Testi di riferimento/Textbooks
Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser. Data Structures and Algorithms in Python. Wiley
Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser. Data Structures and Algorithms in Python. Wiley
Obiettivi formativi/Mission
Fornire agli studenti i concetti di base relativi alle strutture dati focalizzandosi sulle principali e sul loro utilizzo in pratica con particolare attenzione agli aspetti di complessità
Provide students with the basic concepts related to data structures focusing on the main ones and their usein pratice with specific attention to the coplexity aspects
Prerequisiti/Required background knowledge
Concetti basi di programmazione e del linguaggio phyton
Basic methodologies of programming and of Phyton language
Metodi didattici/Teaching methods
Lezioni frontali e esercitazioni pratiche
Lectures and practical exercises
Modalità di verifica dell'apprendimento/Assessment methods
Esame scritto
Written test
Programma esteso/Content
• Concetto di struttura dati e analisi degli algortimi • Array-based sequences (con richiami a liste, tuple e matrici in Python) • Stacks e Queues • Linked Lists • funzioni ricorsive • Alberi e algoritimi di visita • Dizionari e Hash Maps • Algoritmi di ordinamento • Grafi
• Data structure concept and Algorithm Analysis • Array-based sequences (refering to list, tuples and matrix in in Python) • Stacks and Queues • Linked Lists • Recursive functions • Trees and Tree Traversal Algorithms • Dictionaries and Hash Maps • Sorting Algorithms • Graphs
Risultati di apprendimento attesi/Intended learning objectives
Lo studente deve acquisire famigliarità con le principali struttura dati, saperne capire l'utilizzo e valutare la loro complessità computazionale.
The student must become familiar with the main data structures, understand how to use them and evaluate their computational complexity.
Anno Codice Insegnamento Docenti Settore Scientifico Disciplinare (SSD) Curriculum Sede CFU
1 MF0572 Fondamenti di algoritmi e strutture dati Bottrighi Alessio INF/01 Tutti ALESSANDRIA 6.0
1 MF0571 Fondamenti di programmazione Testa Alberto INF/01 Tutti ALESSANDRIA 6.0
Dati aggiornati al: 16/07/2026, 04:25