00819 - PROGRAMMAZIONE (CL.B)

Anno Accademico 2020/2021

  • Docente: Pietro Di Lena
  • Crediti formativi: 12
  • Lingua di insegnamento: Italiano
  • Moduli: Pietro Di Lena (Modulo 1) Alessandra Lumini (Modulo 2)
  • Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
  • Campus: Cesena
  • Corso: Laurea in Ingegneria e scienze informatiche (cod. 8615)

Conoscenze e abilità da conseguire

Al termine del corso, lo studente ha una competenza di base sulla programmazione mediante linguaggio C e sull'analisi di alcuni problemi fondamentali e dei relativi algoritmi risolutori.

Contenuti

Il corso di Programmazione è finalizzato a fornire una competenza di base sulla programmazione dei calcolatori elettronici. Non sono richiesti prerequisiti di tipo informatico. Viene inizialmente fornita una prima descrizione dell'approccio algoritmico alla soluzione di problemi mediante computer. Successivamente, facendo uso del linguaggio C, di cui viene fornita una descrizione dettagliata che prescinde da ogni eventuale competenza pregressa degli studenti, vengono analizzati alcuni problemi fondamentali ed alcuni dei principali e più interessanti algoritmi risolutori.

Il linguaggio C

Organizzazione della memoria di un calcolatore, indirizzi, parole, puntatori. Tipi di dato (interi, float, double, char, stringa). Strutture dati (array, matrici, liste). Il linguaggio C: scopi e principali caratteristiche. La struttura di un programma C, l'inclusione degli header, dichiarazione delle variabili; le librerie. Tipi di dato elementari in linguaggio C: interi, floating point, double, small int, long, char. Puntatori; aritmetica sui puntatori. Array e matrici e loro rappresentazione in memoria. Strutture dati complesse: liste, alberi. Funzioni di libreria e funzioni definite dall'utente. Passaggio di parametri per valore e per indirizzo alle funzioni. Funzioni ricorsive. Funzioni di input/output; funzioni sui file; funzioni per la gestione diretta della memoria; funzioni sulle stringhe.

Progetto ed analisi di algoritmi

Tipi di dato; specifica algebrica e implementazione: vettori, liste, pile, code. Algoritmi con strutture dati: costruzione, ricerca e ordinamento in liste lineari; gestione di code e pile.

Testi/Bibliografia

Brian W. Kernighan, Dennis M. Ritchie. Linguaggio C. Jackson libri.

Copia dei lucidi usati a lezione e appunti messi a disposizione dal docente.

Metodi didattici

Didattica frontale, esercitazioni in aula, esercitazioni al computer.

 

ATTENZIONE. A causa dell'emergenza Covid-19 le lezioni verrano svolte unicamente online oppure in modalità mista (parte degli studenti in aula ed il resto online). Verificare nell'orario delle lezioni quali giornate sono unicamente onice e quali in modalità mista. 

  • Le lezioni online potranno essere seguite nell'aula virtuale appositamente predisposta su TEAMS.
  • Per poter partecipare alle lezioni in presenza è necessario effettuare una prenotazione online
  • Lista matricole classe B per l'A.A. 20/21. Attenzione: la lista potrebbe non essere aggiornata con tutti i numeri di matricola del gruppo B. Per capire se appartenete al gruppo B, verificare che il vostro numero di matricola non compaia nella lista matricole classe A.

Modalità di verifica e valutazione dell'apprendimento

L'esame del corso di  Programmazione è composto di tre parti: la realizzazione di diversi elaborati a scadenza settimanale, una prova scritta e una successiva prova orale. Tutti i dettagli sono reperibili alla pagina web del corso.

Strumenti a supporto della didattica

Tutto il materiale utilizzato durante le lezioni frontali e durante le esercitazioni di laboratorio viene reso disponibile anche in forma elettronica sulla pagina web del corso. 

Nello stesso sito vengono periodicamente aggiornati e pubblicati materiali didattici di supporto.

Orario di ricevimento

Consulta il sito web di Pietro Di Lena

Consulta il sito web di Alessandra Lumini