FOUNDATION OF COMPUTER SCIENCE

Teaching in italian
FONDAMENTI DI INFORMATICA
Teaching
FOUNDATION OF COMPUTER SCIENCE
Subject area
ING-INF/05
Reference degree course
MEDICINE AND SURGERY
Course type
Unique Cycle Master's Degree
Credits
4.0
Teaching hours
Frontal Hours: 49.5
Academic year
2023/2024
Year taught
2024/2025
Course year
2
Curriculum
COMUNE/GENERICO

Teaching description

Teaching program is provisional and may be subject to changes

Non vi è alcuna propedeuticità per il corso.

In sintesi il corso affronta i seguenti temi: struttura dei sistemi di calcolo, concetto di algoritmo e elementi della programmazione strutturata, introduzione ai linguaggi di programmazione, introduzione alla strutturazione dei dati, elementi di base del linguaggio Python.

Il corpus principale del corso intende fornire conoscenze di programmazione strutturata e orientata agli oggetti e sviluppare le competenze necessarie per progettare e sviluppare semplici programmi Python. Ogni concetto esposto è sperimentato in modo pratico insieme agli studenti, utilizzando il personal computer e strumenti di sviluppo moderni e ampiamente diffusi nel mondo industriale.

Conoscenze e comprensione. Al termine del corso gli studenti: (a) conosceranno i principi della programmazione orientata agli oggetti, in relazione alle caratteristiche del software; (b) conosceranno gli aspetti generali del linguaggio Python cioè oggetti, classi, tipi di dati fondamentali, strutture di controllo, ereditarietà; (c) comprenderanno le tecniche di codifica in Python di algoritmi; (d) comprenderanno come utilizzare i principali ambienti di sviluppo Python anche in relazione delle singole necessità rappresentate nei requisiti del software e nella strutturazione dei dati.

Capacità di applicare conoscenze e comprensione. Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti applicativi e, in generale, per la codifica al computer in linguaggio Python di logica di business.

Autonomia di giudizio. Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi di modellazione del software da requisiti funzionali e non funzionali, per i quali trovare le soluzioni adeguate a risolverli in linguaggio Python. Diverse soluzioni proposte interattivamente dagli studenti saranno poste a confronto e valutate criticamente dagli studenti stessi.

Abilità comunicative. Gli studenti apprenderanno come comunicare adeguatamente e con il corretto livello di formalismo le scelte di design adottate e le strategie di implementazione scelte. Il metodo di insegnamento interattivo e teorico/pratico favorirà momenti di confronto in cui mettere in pratica tali abilità comunicative.

Capacità di apprendimento. La materia in costante evoluzione (sia le tecniche di sviluppo orientate agli oggetti, sia i linguaggi che le implementano) richiederà agli studenti la capacità di aggiornarsi e di ricercare materiale on-line, valutandone anche la qualità. Il metodo didattico favorirà l’approfondimento autonomo da parte degli studenti, incuriosendoli su tecniche di sviluppo evolute (vedi i design pattern).

Lezioni frontali, esercitazioni pratiche svolte preferibilmente con l’uso del personal computer, elaborazione individuale di semplici programmi Python.

L'esame prevede una prova orale per la verifica dell'apprendimento dei concetti teorici (verifica delle conoscenze) e della capacità di applicazione dei medesimi, in particolare per la codifica autonoma di semplici programmi Python (verifica delle competenze). Durante l’esame lo studente dovrà usare preferibilmente il proprio personal computer, configurato con gli ambienti di sviluppo illustrati e utilizzati durante il corso.

Si veda www.disteba.unisalento.it.

www.unisalento.it/people/luca.mainetti

Presentazione dettagliata del corso e delle modalità d’esame (1,5 ore). Struttura dei sistemi di calcolo (2 ore). Raccogliere e rappresentare i requisiti, determinare l'architettura dei dati (2 ore). Introduzione al linguaggio Python (2 ore). Programmare con numeri e stringhe (2 ore). Decisioni (4 ore). Cicli (4 ore). Funzioni (4 ore). Liste (4 ore).  Eccezioni e file (4 ore). Insiemi e dizionari (4 ore). Oggetti e classi (4 ore). Ereditarietà (4 ore). Ricorsione (4 ore). Ordinamento e ricerca (4 ore).

Cay Horstmann, Rance D. Necaise, “Concetti di Informatica e Fondamenti di Python”, Seconda Edizione, Apogeo Education, Maggioli Editore, 2019.

Semester
First Semester (dal 04/10/2024 al 21/01/2025)

Exam type

Type of assessment

Course timetable
https://easyroom.unisalento.it/Orario

Parent teaching
STATISTICS AND INFORMATICS (LM73)

Download teaching card (Apre una nuova finestra)(Apre una nuova finestra)