Introduzione al corso - Università degli Studi di Brescia

INTRODUZIONE AL CORSO
Informatica e Programmazione
Ingegneria Meccanica e dei Materiali
Università degli Studi di Brescia
Prof. Massimiliano Giacomin
•  COSA SI STUDIA IN QUESTO CORSO
•  GLI INGEGNERI DEVONO STUDIARE QUESTO CORSO
•  COME DEVONO STUDIARE QUESTO CORSO
•  INFORMAZIONI PRATICHE SU QUESTO CORSO
(MODALITA’ ESAME, LIBRI, SITO WEB, …)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
2
INFORMATICA
studio degli algoritmi che descrivono e
trasformano l informazione
[ACM]
PROGRAMMAZIONE
rappresentazione di un algoritmo in un linguaggio
comprensibile ed eseguibile da un calcolatore
(linguaggio di programmazione)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
3
INFORMATICA
studio degli algoritmi che descrivono e
trasformano l informazione
[ACM]
PROGRAMMAZIONE
rappresentazione di un algoritmo in un linguaggio
comprensibile ed eseguibile da un calcolatore
(linguaggio di programmazione)
INFORMAZIONE, ALGORITMO, CALCOLATORE
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
4
INFORMAZIONE
Rappresentata mediante una sequenza di simboli
INFORMAZIONE
Docente: M. Giacomin
SIMBOLI
Informatica e Programmazione – Università di Brescia
5
ALGORITMO
INFORMAZIONE
ALGORITMO
Specifica come produrre la
soluzione ad un problema con
una sequenza di istruzioni
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
6
ALGORITMO, PROGRAMMA E CALCOLATORE
INFORMAZIONE
SIMBOLI
ALGORITMO
PROGRAMMA
(SIMBOLI)
Specifica come produrre la
soluzione ad un problema con
una sequenza di istruzioni
Docente: M. Giacomin
Istruzioni espresse in un
linguaggio comprensibile
ed eseguibile da un calcolatore
Informatica e Programmazione – Università di Brescia
7
LA RISOLUZIONE DI PROBLEMI CON IL CALCOLATORE
esigenza
identificazione
spazio del
problema
problema
uomo
risoluzione
algoritmo
programmazione
spazio della
soluzione
programma
esecuzione
calcolatore
dati
Docente: M. Giacomin
risultati
Informatica e Programmazione – Università di Brescia
8
LA RISOLUZIONE DI PROBLEMI CON IL CALCOLATORE
esigenza
identificazione
problema
uomo
risoluzione
spazio del
problema
MODELLAZIONE
algoritmo
programmazione
spazio della
soluzione
programma
esecuzione
calcolatore
dati
Docente: M. Giacomin
risultati
Informatica e Programmazione – Università di Brescia
9
MODELLO
Rappresentazione semplificata della realtà:
selezionati gli aspetti utili per il problema di interesse
Esempio: l’archivio di una biblioteca
-
Mondo reale
Docente: M. Giacomin
Titolo
Autori
Stanza, scaffale
…
Modello
Informatica e Programmazione – Università di Brescia
10
CALCOLATORE E PROBLEMI
•  Il calcolatore elabora simboli
(secondo le regole del linguaggio di programmazione adottato)
•  Questi simboli rappresentano la realtà secondo il modello identificato
•  Non ci sono vincoli sui modelli utilizzati
L’informatica è pervasiva, coinvolge pressoché
tutti i campi della conoscenza (scientifica e umanistica)
FACCIAMO ALCUNI ESEMPI…
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
11
CAD (Computer Aided Design)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
12
CAD (Computer Aided Design)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
13
CAD (Computer Aided Design)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
14
Un simulatore di processi logistico-produttivi (DVD assembly)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
15
UN ESEMPIO GIOCATTOLO: CROBOTS
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
16
PROGRAMMA DEL CORSO (1)
esigenza
identificazione
spazio del
problema
problema
uomo
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int num;
int successivo;
risoluzione
algoritmo
programmazione
spazio della
soluzione
printf("Inserisci un numero\n");
scanf("%d",&num);
successivo=num+1;
printf(”%d+1=%d\n”,num,successivo);
system("pause");
return 0;
programma
esecuzione
calcolatore
dati
}
risultati
Programmazione
(in linguaggio C)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
17
Cos’è la programmazione?
•  IN SENSO RISTRETTO:
- dato un algoritmo, la sua rappresentazione in un linguaggio
di programmazione (linguaggio “formale” comprensibile da
un calcolatore, necessario per la descrizione di algoritmi)
- es: linguaggio macchina MIPS, Fortran, Cobol, Basic, C,
Pascal, Ada, C++, Java, Prolog, Lisp
•  IN SENSO PIU’ AMPIO:
- la risoluzione di problemi mediante lo sviluppo di un algoritmo
e la sua espressione in un linguaggio di programmazione
- NON basta conoscere le istruzioni …
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
18
PROGRAMMA DEL CORSO (2)
Interfaccia grafica
esigenza
identificazione
spazio del
problema
Linguaggio ad alto livello (es: il C)
SOFTWARE
Compilatore o interprete
problema
uomo
SOFTWARE
Applicazioni software
Linguaggio assembly
Programma Assemblatore
risoluzione
SOFTWARE
API: interfaccia di programmazione per le applicazioni
algoritmo
programmazione
spazio della
soluzione
SOFTWARE
Sistema operativo
ISA: linguaggio macchina del calcolatore
programma
Organizzazione:
componenti (CPU, memoria, …) e interconnessione
esecuzione
calcolatore
dati
Docente: M. Giacomin
risultati
HARDWARE
livello dei circuiti
Il calcolatore, focus su:
- principi funzionamento
- influenze sulla programmazione
(es: problemi di “calcolo”
per l’ingegneria)
Informatica e Programmazione – Università di Brescia
19
OBIEZIONE COMUNE*
A che servono all’ingegnere
(meccanico e dei materiali)
i principi di funzionamento
del calcolatore e la
programmazione? Meglio
imparare qualche software
specifico che userò
nel futuro.
*parte delle considerazioni espresse in questi lucidi sono liberamente ispirate alle “Considerazioni sulla
didattica” del Prof. Dino Mandrioli, vedi http://home.deib.polimi.it/mandriol/SitoItaliano/consdidattica.html”
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
2
0
•  COSA SI STUDIA IN QUESTO CORSO
•  GLI INGEGNERI DEVONO STUDIARE QUESTO CORSO
•  COME DEVONO STUDIARE QUESTO CORSO
•  INFORMAZIONI PRATICHE SU QUESTO CORSO
(MODALITA’ ESAME, LIBRI, SITO WEB, …)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
2
1
PRIMA MOTIVAZIONE (LA MENO IMPORTANTE)
APPLICAZIONI DELL’INFORMATICA DI SIGNIFICATIVO
INTERESSE PER L’INGEGNERIA MECCANICA E DEI MATERIALI
•  Controllo di sistemi meccanici
•  Software di simulazione
•  …
1) E’ sempre più difficile trovare sistemi meccanici “puri”
SENSORE E
TRASDUTTORE
A/D
MODELLO
SISTEMA
MECCANICO
µPROCESSORE
ATTUATORE
D/A
ALGORITMO
ESEMPIO
•  Electronic Stability Program
- input: angolo sterzo, pressione sul freno, velocità singole ruote,
rotazione auto sul proprio asse, accelerazione laterale, …
- output: freni singole ruote / potenza motore
•  Controllo elettronico del motore
- input: posizione pedale acceleratore, quantità carburante
iniettato sui cilindri, corsa e fase valvole aspirazione e scarico…
- output: parametri iniezione, ecc.
………
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
25
2) Software di simulazione (es. emissione e dispersione di inquinanti)
[immagini
tratte dal sito
www.prode.com]
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
26
SECONDA MOTIVAZIONE (LA PIU’ IMPORTANTE)
Quali competenze per l’ingegnere?
-  Capacità di risolvere (e studiare) nuovi
problemi o di seguire ricette pronte?
-  iperspecializzazione o
multidisciplinarietà?
INGEGNERE: da
INGENIUM
Capacità mentale
Congegno
IL TREND ATTUALE (PERCEPITO)
L’importante non è
sapere ma SAPER FARE
Di tutto ciò che ho
imparato ad ingegneria,
poco o nulla
ho usato nella pratica
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
28
IL TREND ATTUALE
•  Dinamicità e obsolescenza tecnologie
!
Non è possibile sapere oggi ciò che servirà domani
•  Complessità crescente e necessità di integrare molte competenze
(es: esiste ancora un sistema puramente meccanico?)
!
Imparare a “studiare” e apprendere competenze di settori
diversi, o perlomeno a dialogare
•  Valore dell’INNOVAZIONE
Che cos’è l’innovazione?
Esempio: una delle prime innovazioni
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
29
Competenze e capacità
•  CAPACITÀ DI AFFRONTARE PROBLEMI NUOVI
- analizzare un problema specifico in un contesto
- definire un modello per risolvere un problema
(influenza rappresentazione ! soluzione: alternative)
- lavorare a diversi livelli di astrazione
- decomporre il problema in sottoproblemi (per passi successivi)
- analizzare diverse possibili soluzioni
- attenzione all’eleganza concettuale, semplicità
•  RIGORE METODOLOGICO, PRECISIONE
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
3
1
TERZA MOTIVAZIONE
OXFORD VS CAMBRIDGE
Gli ingegneri informatici studiano chimica e fisica… VOI?
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
32
•  COSA SI STUDIA IN QUESTO CORSO
•  GLI INGEGNERI DEVONO STUDIARE QUESTO CORSO
•  COME DEVONO STUDIARE QUESTO CORSO
•  INFORMAZIONI PRATICHE SU QUESTO CORSO
(MODALITA’ ESAME, LIBRI, SITO WEB, …)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
3
3
COSA NON SI FARA’ NEL CORSO
- Non si tratterà l’uso di
specifiche applicazioni
(es: word, excel, ecc.)
- Non tecnicismi ed elenchi
di tecnologie, ma abitudine
a risolvere i problemi
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
36
Una visione distorta dell’informatica
La matematica NON è “applicare formule”,
l’informatica NON è USARE il computer o conoscere tecnicismi…
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
37
I MODELLI DELL’INFORMATICA
•  GENERALI
•  FLESSIBILI
(non esiste un modello pronto, bisogna inventarselo o
adattarne uno conosciuto al problema da risolvere)
•  PRECISI
- attenzione: i concetti sono/sembrano SEMPLICI
- ma vanno compresi bene
- l’insieme di due concetti “individualmente semplici”
diventa complicatissimo, se non li si è compresi!
NON DARE RETTA AL “VOSTRO AMICO DELL’ITIS”
E POI NON DITEMI CHE NON VE L’AVEVO DETTO!
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
38
LINGUAGGI FORMALI (CENNI)
•  SINTASSI:
- un insieme di regole per stabilire quali frasi sono “corrette”,
ovvero appartengono al linguaggio
- vari modi di definirla, il più comune utilizza una grammatica
•  SEMANTICA:
- stabilisce il significato delle frasi corrette sintaticamente
ESEMPIO (in italiano)
> Se io studierei passo l’esame: NON CORRETTA (sintassi)
> Se io studiassi passerei l’esame: CORRETTA (sintassi)
> Il gatto mangia il cane: corretta, cfr. semantica…
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
39
UN ESEMPIO DI GRAMMATICA (CENNI)
Grammatica BNF (Backus-Naur Form)
- un insieme di simboli terminali (alfabeto)
- un insieme di simboli non terminali (indicati tra parentesi <…>)
- un simbolo iniziale (non terminale)
- un insieme di regole di produzione della forma
<non_terminale> ! <non_term1>…<t1>…
NB: nelle regole si può usare | per indicare “oppure” (vedi esempio)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
40
Esempio: i numeri razionali
T = {. , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
N = {<num_razionale>, <num_intero>, <cifra>}
S = <num_razionale>
R= {
<num_razionale> ! <num_intero>.<num_intero>
<num_intero> ! <cifra> | <cifra><num_intero>
<cifra> ! 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
}
NB: in questo corso sintassi e semantica introdotte informalmente,
ma si utilizzerà comunque la distinzione tra simboli
“terminali” e “non terminali”
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
41
•  COSA SI STUDIA IN QUESTO CORSO
•  GLI INGEGNERI DEVONO STUDIARE QUESTO CORSO
•  COME DEVONO STUDIARE QUESTO CORSO
•  INFORMAZIONI PRATICHE SU QUESTO CORSO
(MODALITA’ ESAME, LIBRI, SITO WEB, …)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
4
2
Contattarmi
Ufficio n. 27 del Dipartimento di Ingegneria dell’Informazione
E-mail: [email protected]
(no per chiedere quando escono i risultati!)
Orario di ricevimento: vedi bacheca
- meglio preavvisare via mail
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
43
Sito web del corso
http://zeus.ing.unibs.it/FI-MEC/
•  Possibile scaricare le diapositive delle lezioni e delle
esercitazioni
•  I documenti sono in formato pdf [per aprirli occorre avere
il programma Acrobat Reader, scaricabile dal sito web
http://www.adobe.com/it/products/acrobat/readstep2.html]
•  E disponibile un compilatore C
[avete tutti un calcolatore?]
•  Sono disponibili link alle pagine di altri corsi di cui sono
docente o esercitatore
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
44
Libri di testo
Libro di testo sulla parte teorica :
• 
G. Guida, M. Giacomin,
Fondamenti di Informatica , Franco Angeli, 2006
Libro di testo sul linguaggio C:
• 
H.M. Deitel, P.J. Deitel,
C-corso completo di programmazione ,
terza edizione, APOGEO
o, in alternativa:
• 
K.M. King,
Programmazione in C ,
APOGEO
o, in alternativa: qualunque altro libro sul C!
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
45
•  Una prova scritta di teoria consistente in:!
–  Esercizi sui numeri binari e sui codici!
–  Domande ed esercizi di teoria (di varia tipologia)!
–  Domande sul linguaggio C (NO sviluppo di programmi!)
•  Una prova scritta di programmazione
•  Per entrambe le prove: voto max 30
•  Le prove verranno tenute lo STESSO GIORNO nella STESSA
AULA, in orari successivi:
- prima la teoria (circa 1h e 15 min)
- pausa 10 min
- poi la programmazione (circa 1h e 15 min)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
46
Per superare l’esame occorre:
•  Prendere un voto sufficiente nella teoria (>=18), poi
•  Sostenere la prova di programmazione
(quando si vuole, anche dopo anni! Ma solo DOPO la teoria!)
- per gli studenti che affrontano la prova di teoria e
programmazione lo stesso giorno, la prova di programmazione
viene corretta solo se la teoria è sufficiente
IMPORTANTE:
- UN TENTATIVO PER LA PROGRAMMAZIONE
(se si fallisce bisogna ripartire dalla teoria!)
- ci si può ritirare entro 10 minuti dall’inizio della prova senza
che questa sia considerata un “fallimento”
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
47
NOTE SULLA PROVA DI TEORIA
•  Consentito uso del testo ufficiale del corso + un manuale sul C, NO:
- libri fotocopiati o fotocopie di qualsiasi tipo
- appunti, lucidi del corso, calcolatrice
NOTE SULLA PROVA DI PROGRAMMAZIONE
•  Consentito l’uso del testo di teoria e di un manuale sul C, ma non:
- libri fotocopiati o fotocopie di qualsiasi tipo
- appunti, lucidi del corso
NOTE SU ENTRAMBE LE PROVE
PER CHI VIENE SORPRESO A COPIARE, FAR COPIARE, USARE
APPARECCHI RICETRASMITTENTI O CONSULTARE
MATERIALE NON CONSENTITO: ORALE (DIS)INTEGRATIVO
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
48
VALIDITA DEI VOTI
•  Come visto, il voto della teoria rimane valido
(a meno di un fallimento nella prova di programmazione)
•  Si può ripetere una prova superata (teoria o programmazione) per migliorare
il voto, ma il voto nuovo annulla in ogni caso il voto precedente!
•  Ritirarsi nella teoria o dopo 10 minuti nella prova di programmazione
comporta un fallimento
•  VOTO FINALE: media dei voti delle due prove arrotondata per eccesso
ISCRIZIONE ALL’APPELLO
•  Le prove sono indicate in ESSE3 come “prove intermedie” di teoria e
programmazione
•  Iscriversi e non venire all’esame NON ha conseguenze (= non essersi iscritti)
•  Non iscriversi all’esame comporta l’esclusione
(SE NON RIUSCITE A ISCRIVERVI NON E’ UN PROBLEMA MIO:
- CHIEDETE/PROTESTATE CON L’AMMINISTRAZIONE)
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
49
Quanti esami/quando
•  Due appelli nella sessione invernale
(subito dopo la fine delle lezioni)
•  Un appello nella sessione pasquale
•  Un appello nella sessione estiva (giugno-luglio)
•  Un appello nella sessione di recupero (agosto-settembre)
Appello = PROVA TEORIA + PROVA DI PROGRAMMAZIONE
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
50
Modalità d’esame con compitini
•  Per chi segue proficuamente il corso: DUE compitini che
comprendono sia teoria sia programmazione
•  Voto max di ogni compitino:
- primo compitino 12 punti
- secondo compitino 18 punti (min 6 punti nel primo)
•  Chi li supera può registrare direttamente il voto finale
NOTE
-  RISERVATI AGLI STUDENTI DEL PRIMO ANNO
-  NON ESISTONO “RECUPERI”: CHI NON LI SUPERA
AFFRONTA L’ESAME STANDARD
Docente: M. Giacomin
Informatica e Programmazione – Università di Brescia
51