FONDAMENTI DI INFORMATICA A
cod. 18582

Anno accademico 2007/08
1° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Matematica, informatica e statistica
Tipologia attività formativa
Base
63 ore
di attività frontali
7 crediti
sede:
insegnamento
in - - -

Obiettivi formativi

Il modulo intende fornire i concetti di base dell'informatica e gli strumenti fondamentali per l'utilizzo e la programmazione dei calcolatori elettronici, con particolare attenzione agli algoritmi, ai linguaggi e alle metodologie di programmazione. Come linguaggio di programmazione viene usato il C++.

Prerequisiti

Il prerequisito ideale sarebbe che lo studente fosse in possesso del patentino <a target="_parent" href="http://www.ecdl.it/ecdl_core/frameset.htm">ECDL</a>, o avesse le conoscenze necessarie per conseguirlo. Dei sette moduli che costituiscono il <a target="_parent" href="http://www.ecdl.it/ecdl_core/pages/syllabus.htm">Syllabus</a> di ECDL, sono considerati prerequisiti indispensabili i seguenti:
<ul>
<li>Modulo 1 - Concetti di base della Tecnologia dell'Informazione</li>
<li>Modulo 2 - Uso del computer e gestione dei file</li>
<li>Modulo 3 - Elaborazione testi</li>
<li>Modulo 7 - Reti informatiche</li>
</ul>

Contenuti dell'insegnamento

<p>  Parte A (in aula) </p>
<ul>
<li> Rappresentazione posizionale dei numeri. Sistemi di numerazione. Conversione di base. Aritmetica binaria.</li>
<li> La rappresentazione dei dati in memoria. Rappresentazione in complemento a 2. Il codice ASCII.  Rappresentazione delle stringhe C.</li>
<li> L'organizzazione dei file su disco. Cenni ai sistemi operativi Dos e Windows.</li>
<li> Definizione di problema, dati, risultati. Concetto di algoritmo, metodo computazionale, esecutore.</li>
<li> Algoritmi di ricerca e di ordinamento.</li>
<li> Strutture dati: liste, alberi, tabelle.</li>
<li> Alberi binari e loro attraversamento.</li>
<li> Progettazione di un programma: programmazione top-down . Metodologie di programmazione strutturata e modulare.</li>
</ul>
Parte B (aula e laboratorio)
<ul>
<li> Il linguaggio C++
<ul>
<li> Struttura di un programma.</li>
<li> Tipi di dati elementari.</li>
<li> Costanti, variabili, operatori, espressioni.</li>
<li> Assegnamento. Istruzioni di controllo.</li>
<li> Array e stringhe.</li>
<li> Funzioni e prototipi.  Ambito degli identificatori.  Modalità di passaggio dei parametri.</li>
<li> Stack e record di attivazione.</li>
<li> Sovrapposizione di funzioni.</li>
<li> Ricorsione.</li>
<li> Tipi enumerati.  Strutture.</li>
<li> Il sistema di input/output del C++.</li>
<li> Gestione di file.</li>
<li> Uso dell'Editor e il debugging di un programma. Progetti multifile.</li>
<li> Puntatori.  Allocazione dinamica della memoria.</li>
<li> Manipolazione di liste e alberi binari.</li>
<li> Librerie.</li>
</ul>
</li>
</ul>

Programma esteso

- - -

Bibliografia

<ul>
<li>M. Bertozzi, E. Calabrese: <em>Lezioni di Fondamenti di Informatica A</em>.  Santa Croce (2004)</li>
<li> E. Calabrese: <em><a href=""http://www.pitagoragroup.it/pited/INFORMATICA.html#calabrese"" target=""_TOP""> Temi d'esame di Fondamenti di Informatica con esempi di soluzione in C++</a></em>.  Pitagora Editrice Bologna (Nuova edizione 2005)</li>
<li> Un testo sul C++, come ad esempio uno dei seguenti (il numero degli asterischi è proporzionale al mio giudizio positivo):</li>
<br />
 
<ul>
<li> S. Prata: <em>C++ Primer Plus</em>. QUE (2001) (**** per principianti e non)</li>
<li> J. Hubbard: <em>Programmare in C++ 2a ed.</em>. McGraw Hill (2001) (per principianti e non ***)</li>
<li> H. M. Deitel, P. J. Deitel: <em>C++ - Fondamenti di programmazione</em>. Apogeo (2001) (*** per non principianti, solo cap.1-5 e 11. Per vecchio ordinamento anche cap.6-8)</li>
<!-- <li> <a href="http://WWW.CE.UniPR.IT/people/educal/fi/yaroshenko.jpg"><img SRC="yaroshenko.gif" alt="Ingrandisci" HSPACE=4 VSPACE=4 height=80 width=60 align=ABSBOTTOM></a>O. Yaroshenko: <i>The Beginner's Guide to C++</i>  Wrox Press Ltd (1994) (*** per principianti)</li> -->
<li> H. Schildt: <em>Guida al C++ 2a ed.  </em>McGraw Hill (2000) (***)</li>
<li> S. Oualline: <em>C++ Corso di programmazione</em>. O'Reilly - Jackson libri (1998) (***)</li>
</ul>
</ul>
<h3> </h3>

Metodi didattici

L'insegnamento è tenuto sia in aula che in laboratorio.<br />
<br />
L'esame consiste di una <a href=""http://www.ce.unipr.it/people/educal/fi/istruzio-scritta.html""> prova scritta</a>, o quiz (domande a risposte chiuse, <1 ora), di una <a href=""http://www.ce.unipr.it/people/educal/fi/istruzioni.pdf"">prova pratica</a> (tema di programmazione da svolgere in C++, 2 ore) e di una eventuale prova orale. Le date per le prime due prove sono indicate sul calendario degli esami rispettivamente con le sigle <strong>S</strong> e <strong>P</strong>.  Le date dell'orale vengono di norma indicate quando si espongono i risultati della prova pratica.

Modalità verifica apprendimento

- - -

Altre informazioni

- - -