Benvenuti nelle pagine del corso di Fondamenti di Informatica per Ingegneria Clinica.
Seguite i collegamenti sulla destra dello schermo per accedere alle varie sezioni del sito.

Avvisi

logo Sapienza

Ogni cambiamento di rilievo sul corso, come la pubblicazione delle date di esame, la sospensione di una lezione e altro verrà messa in evidenza in questa sezione.

  • La lezione di lunedì 22 Settembre non si svolgerà. La prima lezione del corso sarà mercoledì 24 Settembre alle ore 12.00 in Aula 2.
    (Inserito il 18 Settembre 2008)
  • Le lezioni avranno inizio il 23 Settembre 2008.
    (Inserito il 10 Settembre 2008)
Torna su

Informazioni generali

Obiettivi

Il corso illustra i principi fondamentali della programmazione imperativa, con riferimento al linguaggio C.
Viene posta attenzione sia agli aspetti metodologici di progettazione del software sia alle tecniche di rappresentazione e manipolazione delle informazioni.
Si intende, inoltre, fornire allo studente la padronanza degli strumenti tecnologici di ausilio alla programmazione (compilatori, librerie di funzioni, debugger). A tal fine il corso prevede numerose esercitazioni guidate da svolgersi al calcolatore.
Al termine del corso lo studente dovrÓ essere in grado di progettare, implementare e collaudare programmi in linguaggio C di media complessitÓ.

Prerequisiti

Non si richiedono prerequisiti specifici. Si utilizzano nozioni di base di matematica e di teoria degli insiemi.

Crediti

La promozione comporta l'acquisizione di 10 crediti formativi

Torna su

Orario

Lezioni

Giorno Ora Luogo
Lunedì
12:00 - 13:30 Aula 2, Via del Castro Laurenziano, 4
Mercoledì
12:00 - 13:30 Aula 2, Via del Castro Laurenziano, 4
Venerdì
08:30 - 10:00 Aula 2, Via del Castro Laurenziano, 4

Esercitazioni

Giorno Ora Luogo
Mercoledì
14:30 - 17.30 Aula 15, Laboratorio "Paolo Ercoli", Via Tiburtina, 205

Ricevimento studenti

Per maggiori informazioni scrivere al docente.

Torna su

Programma

Di seguito potete trovare l'elenco degli argomenti trattati a lezione. Potete anche accedere alla pagina del Diario delle lezioni per consultare l'ordine seguito durante il corso.

Argomenti

  • Introduzione
    • Modelli di calcolo: struttura generale di un elaboratore
    • Problemi, algoritmi di soluzione, programmi
    • Strutturazione delle operazioni: sequenza, scelta e iterazione
    • Ricorsione
  • Linguaggi di programmazione
  • Linguaggio C
    • Struttura generale di un programma C
    • Compilazione, linking, caricamento ed esecuzione
    • Elementi lessicali: commenti, parole chiave, identificatori, costanti, operatori
      • Priorità e associatività degli operatori
    • Parte dichiarativa
      • Tipi di dati semplici
      • Variabili e loro dichiarazione
      • Puntatori
    • Istruzione semplici: assegnazione e lettura/scrittura
    • Espressioni aritmetiche, relazionali, di uguaglianza e logiche
    • Istruzioni strutturate:
      • sequenza, if then else, switch, do, while, for, operatore condizionale
      • istruzioni di break e continue
    • Nidificazione delle istruzioni strutturate
    • Procedure e funzioni:
      • Definizione e prototipi
      • Parametri formali e attuali
      • Ambiente locale di una funzione
      • Passaggio per valore e per indirizzo
      • Funzioni e procedure ricorsive
      • Pila di attivazione di una procedura e di una funzione
      • Regole di visibilità
    • Tipi di dati strutturati
      • Array, stringa
        • Passaggio di un array come parametro di funzioni
        • Funzione di mapping di un array
        • Geometria degli array multidimensionali e passaggio dei parametri
        • Array locali automatici a dimensione variabile
        • Parametri array a dimensione variabile
      • Strutture
        • Definizione, dichiarazione typedef
        • Allocazione in memoria
        • Operatore di accesso ai campi
        • Passaggio di strutture alle funzioni
        • Operatore di accesso ai campi di strutture indirizzate da puntatori
      • File
        • Funzioni di accesso ai file: apertura, chiusura, interrogazione, lettura e scrittura
        • Apertura in lettura, scrittura, append e update
        • File di testo file binari
        • IO/formattato e non
        • File standard
    • Procedure e funzioni predefinite
    • Allocazione dinamica della memoria e funzioni relative
      • Problema del rilascio delle risorse
    • Preprocessore
  • Metodologie di progetto
    • Programmazione strutturata
    • Analisi top-down e bottom-up
    • Modularizzazione di un programma
    • Correttezza di un algoritmo
  • Cenni sulla complessità
  • Algoritmi di ordinamento
    • Bubblesort, insertion sort, selection sort, quicksort
  • Algoritmi di ricerca
    • Ricerca sequenziale, ricerca binaria e tempi di esecuzione
  • Cenni di elaborazione digitale delle immagini
    • Rappresentazione RGB dei colori
    • Formato BMP di memorizzazione delle immagini
    • Lettura e scrittura di un file BMP e relativi problemi
    • Rappresentazione di un'immagine a 24 bit e in scala di grigio
    • Funzioni di elaborazione varie

Laboratorio

  • Sistema Operativo Windows (Windows XP/2000)
  • Ambiente di sviluppo C (lcc-win32 o Dev-C++)
  • Sviluppo di programmi in C a completamento degli argomenti trattati nelle lezioni
  • Lavoro in gruppi di sviluppo di un progetto

Torna su

Materiale

In questa sezione vengono proposti i testi adottati e consigliati insieme con alcune dispense di approfondimento.
Lo studente è libero di integrare il materiale con informazioni prese dalla rete.
Nel Diario delle lezioni sono proposte alcune delle slide usate in aula.

Testi

Adottato

  • H. M. Deitel, P. J. Deitel, "C - Corso completo di programmazione", Apogeo
    • Capitolo 1: tutti i paragrafi
    • Capitolo 2: tutti i paragrafi
    • Capitolo 3: tutti i paragrafi
    • Capitolo 4: tutti i paragrafi
    • Capitolo 5: tutti i paragrafi escluso il 5.11
    • Capitolo 6: tutti i paragrafi
    • Capitolo 7: tutti i paragrafi
    • Capitolo 8: par. 8.1, 8.2, 8.5, 8.6, 8.7, 8.10 [funzione strlen() ]; per le parti non citate è richiesta la capacità di consultazione
    • Capitolo 9: tutti i paragrafi
    • Capitolo 10: tutti i paragrafi escluso il par. 10.8
    • Capitolo 11: tutti i paragrafi
    • Capitolo 12: par. 12.3
    • Appendici A,B: capacità di consultazione
    • Appendice C,D,E

Consigliati per approfondimenti

  • D. P. Curtin, K. Foley, K. Sen, C. Morin, "Informatica di base", McGraw-Hill
  • C. Batini, L. Carlucci Aiello, M. Lenzerini, A. Marchetti Spaccamela, A. Miola "Fondamenti di Programmazione dei Calcolatori Elettronici", Franco Angeli
  • A. Kelley, I. Pohl, "C - Didattica e Programmazione", Addison-Wesley

Dispense

  • R. Nicolussi, Appunti sul corso di Fondamenti di Informatica, Facoltà di Ingegneria, Università degli Studi di Roma "La Sapienza"
    (Diario delle lezioni)
  • D. D'Aloisi, "Architettura del calcolatore e rappresentazione dell'informazione", Facoltà di Ingegneria, Università degli Studi di Roma "La Sapienza"
    (versione pdf)
  • P. Terrevoli, "Elaborazione dell'immagine", Facoltà di Ingegneria, Università degli Studi di Roma "La Sapienza"
    (zip con versione pdf)
  • S. Fratini, "Guida all'uso dell'ambiente di sviluppo DEV-C++4 per la programmazione in C", Facoltà di Ingegneria, Università degli Studi di Roma "La Sapienza"
    (versione pdf)
  • P. Terrevoli, vari appunti, lucidi e dispense su diverse parti del corso, Facoltà di Ingegneria, Università degli Studi di Roma "La Sapienza"
    (zip con versione pdf)

Esercizi

Gli esercizi svolti in classe possono essere scaricati dalla sezione diario delle lezioni.
Nella sezione Esami sono raccolti alcuni testi d'esame tipo.
Una collezione di esercizi svolti è scaricabile da qui.
Una collezione di vecchi esami è scaricabile da qui.

Software

Le esercitazioni pratiche all'elaboratore prevedono l'uso dell'ambiente di sviluppo IDE DEV C++ per Windows, installato sulle postazioni del Laboratorio "Paolo Ercoli".
Tale ambiente sarÓ adoperato anche in sede d'esame.
Dal momento che una prova d'esame consistere nello sviluppo di un programma in laboratorio in forma strettamente individuale, gli studenti sono caldamente invitati ad acquisire la migliore competenza possible su quell'ambiente, frequentando il laboratorio negli orari consentiti (anche al di fuori delle esercitazioni).
Per gli studenti che vogliano esercitarsi a casa avendo a disposizione un elaboratore con ambiente Windows, segnaliamo il sito del sotware adottato:

Torna su

Esami

Strutturazione dell'esame

L'esame é diviso in almeno due parti:

  • orale: si tratta di 10 domande a risposta chiusa (ovvero la risposta va scelta tra quelle proposte). Ogni risposta data correttamente vale 1 punto, risposte non date valgono 0 punti mentre risposte errate valgono -0,25. Le domande possono riguardare la teoria o la soluzione di piccoli esercizi in C.
  • scritto: si tratta di una prova da svolgere direttamente al calcolatore usando il linguaggio C. Il problema è (in genere) diviso in 3 punti. Qualora il primo punto non venga risolto correttamente l'esame è considerato insufficiente.
  • colloquio: in casi particolari decisi a discrezione del docente (prova quasi sufficiente, prova quasi da 30 e lode, sospetto di copiatura, ecc ...) lo studente potrebbe essere chiamato a sostenere un breve colloquio orale e/o discussione del compito.

Iscrizioni e regolamento

  • Lo studente deve prenotarsi all'esame attraverso il sistema di prenotazione esami, facendo attenzione a prenotarsi nel proprio gruppo di appartenenza.
    Le prenotazioni si accettano fino a pochi giorni prima della data fissata per l'esame. Tale data è indicata dal sistema stesso.
    Chi dovesse rinunciare a sostenere la prova è pregato di cancellare la prenotazione, o, se questo non fosse possibile, avvisare il docente tramite e-mail
  • Ripresentarsi a sostenere l'esame significa rinunciare al voto eventualmente acquisito in una prova precedente
  • La data di verbalizzazione viene indicata, attraverso il sito web o la mailinglist, dopo la prova d'esame
  • Lo studente deve presentarsi alle prove d'esame munito di documento di riconoscimento con foto e penne
  • Non è possibile consultare testi durante la prova orale. E' possibile consultare testi (libri e dispense) durante la prova al calcolatore.
  • Se uno studente sostiene una prova che viene valutata gravemente insufficiente non potrà sostenere la prova successiva della stessa sessione di esami.
  • E' sempre possibile ritirarsi.
  • Gli studenti che abbiano già svolto un esame di programmazione in un altro corso e/o Università in genere possono affrontare solo la seconda parte (scritto) dell'esame. Il voto finale sarà dato da una media pesata dei due voti. E' necessario discutere della cosa con il docente prima di procedere.

Date d'esame (da CONFERMARE)

Le date sono da intendersi indicative fino a quando non saranno indicate da un giorno ben preciso.
  • Appello 1
    Gennaio 2009 ore 10.00 (Aula 15 e 16, Laboratorio "Paolo Ercoli", Via Tiburtina, 205)
  • Appello 2
    Febbraio 2009 ore 10.00 (Aula 15, Laboratorio "Paolo Ercoli", Via Tiburtina, 205)
  • Appello 3
    Giugno 2009 ore 10.00 (Aula 15, Laboratorio "Paolo Ercoli", Via Tiburtina, 205)
  • Appello 4
    Luglio 2009 ore 10.00 (Aula 15, Laboratorio "Paolo Ercoli", Via Tiburtina, 205)
  • Appello 5
    Settembre 2009 ore 10.00 (Aula 15, Laboratorio "Paolo Ercoli", Via Tiburtina, 205)

Risultati degli esami

Cliccando su una data d'esame sarà possibile consultare i risultati. I voti vengono indicati facendo riferimento alla matricola per assicurare la privacy.

Esami passati

In questa sezione è possibile scaricare gli esami proposti nelle sessioni e negli anni precedenti.

Torna su

Contatti

Il corso prevede l'iscrizione ad una mailinglist attraverso la quale sarÓ possibile ricevere informazioni inerenti il corso (orario delle lezioni, esami, sospensione o spostamento di lezioni, avvisi, ecc.)
Si consiglia ad ogni studente di iscriversi alla mailing list.
L'iscrizione deve essere confermata dall'amministratore prima di diventare attiva.

Istruzioni per l'uso


Se avete problemi ad iscrivervi contattate il docente (rnicolussi@fub.it) segnalando la mail con la quale volete essere iscritti.


Torna su