INTRODUZIONE AL CORSO Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin
UNA VISIONE GIORNALISTICA Informatica e Programmazione Università di Brescia 2
COSA SI STUDIA IN QUESTO CORSO PERCHE GLI INGEGNERI DEVONO STUDIARLO COME DEVONO STUDIARE QUESTO CORSO INFORMAZIONI PRATICHE (MODALITA ESAME, LIBRI, SITO WEB, ) 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 Informatica e Programmazione Università di Brescia 4
INFORMAZIONE Rappresentata mediante una sequenza di simboli INFORMAZIONE SIMBOLI Informatica e Programmazione Università di Brescia 5
ALGORITMO INFORMAZIONE ALGORITMO Specifica come produrre la soluzione ad un problema con una sequenza di istruzioni Informatica e Programmazione Università di Brescia 6
ALGORITMO, PROGRAMMA E CALCOLATORE INFORMAZIONE SIMBOLI ALGORITMO Specifica come produrre la soluzione ad un problema con una sequenza di istruzioni PROGRAMMA (SIMBOLI) 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 uomo problema risoluzione algoritmo programmazione spazio della soluzione programma esecuzione calcolatore dati risultati Informatica e Programmazione Università di Brescia 8
LA RISOLUZIONE DI PROBLEMI CON IL CALCOLATORE esigenza identificazione spazio del problema uomo problema risoluzione MODELLAZIONE algoritmo programmazione spazio della soluzione programma esecuzione calcolatore dati 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 - Titolo - Autori - Stanza, scaffale - Mondo reale 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 Informatica e Programmazione Università di Brescia 11
NASA SOCCER https://www.grc.nasa.gov/www/k-12/airplane/soccercode.html Informatica e Programmazione Università di Brescia 12
PROGETTAZIONE AREODINAMICA http://www.hanleyinnovations.com/stallion3d.html
SIMULATORE DI VOLO (1)
SIMULATORE DI VOLO (2)
CAD (Computer Aided Design) Informatica e Programmazione Università di Brescia 16
CAD (Computer Aided Design) Informatica e Programmazione Università di Brescia 17
Un simulatore di processi logistico-produttivi (DVD assembly) Informatica e Programmazione Università di Brescia 18
PROGRAMMA DEL CORSO I contenuti si possono suddividere in 1. ARCHITETTURA DEL CALCOLATORE (in senso lato) 2. PROGRAMMAZIONE IN LINGUAGGIO C (in senso lato) Nonostante questa suddivisione concettuale, è molto più proficuo considerare il programma del corso come un tutt uno Informatica e Programmazione Università di Brescia 19
PARTE SU PROGRAMMAZIONE IN LINGUAGGIO C esigenza identificazione spazio del problema #include<stdio.h> #include <stdlib.h> uomo problema risoluzione algoritmo programmazione programma spazio della soluzione int main(int argc, char *argv[]){ int num; int successivo; printf("inserisci un numero\n"); scanf("%d",&num); successivo=num+1; printf( %d+1=%d\n,num,successivo); calcolatore esecuzione } system("pause"); return 0; dati risultati Informatica e Programmazione Università di Brescia 20
PARTE SU ARCHITETTURA DEL CALCOLATORE esigenza Interfaccia grafica Applicazioni software SOFTWARE identificazione spazio del problema Linguaggio ad alto livello (es: il C) Compilatore o interprete SOFTWARE uomo problema risoluzione Linguaggio assembly Programma Assemblatore SOFTWARE algoritmo programmazione programma esecuzione spazio della soluzione API: interfaccia di programmazione per le applicazioni Sistema operativo ISA: linguaggio macchina del calcolatore Organizzazione: componenti (CPU, memoria, ) e interconnessione livello dei circuiti SOFTWARE HARDWARE calcolatore dati risultati Focus su: - principi funzionamento - influenze sulla programmazione (es: problemi di calcolo per l ingegneria) Informatica e Programmazione Università di Brescia 21
NOTA SULLA DEFINIZIONE DI 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 (= IN QUESTO CORSO!): - la risoluzione di problemi mediante lo sviluppo di un algoritmo e la sua espressione in un linguaggio di programmazione - NON basta conoscere le istruzioni Informatica e Programmazione Università di Brescia 22
ARTICOLAZIONE LEZIONI 1. LEZIONI DI TEORIA ED ESERCIZI SU ARCHITETTURA CALCOLATORE 2. LEZIONI SU (PROGRAMMAZIONE IN) LINGUAGGIO C 3. ESERCITAZIONI SULLA PROGRAMMAZIONE IN C: - SOPRATTUTTO individuali (vedere lucidi sul sito) - alcune guidate in aula con gli esercitatori 4. ESPERIENZE DI LABORATORIO: LA PROGRAMMAZIONE SU DOMINI APPLICATIVI COMPLESSI - molto utili per avere una visione più ampia del corso - e per vedere sul campo l applicazione dei concetti appresi Informatica e Programmazione Università di Brescia 23
COSA SI STUDIA IN QUESTO CORSO PERCHE GLI INGEGNERI DEVONO STUDIARLO COME DEVONO STUDIARE QUESTO CORSO INFORMAZIONI PRATICHE SU QUESTO CORSO (MODALITA ESAME, LIBRI, SITO WEB, ) Informatica e Programmazione Università di Brescia 24
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 Informatica e Programmazione Università di Brescia 25
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 SISTEMA MECCANICO µprocessore MODELLO ALGORITMO ATTUATORE D/A
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. Informatica e Programmazione Università di Brescia 29
2) Software di simulazione (es. emissione e dispersione di inquinanti) [immagini tratte dal sito www.prode.com] Informatica e Programmazione Università di Brescia 30
SECONDA MOTIVAZIONE (LA PIU IMPORTANTE) Quali competenze per l ingegnere? - Capacità di seguire procedure standardizzate o di risolvere (e studiare) nuovi problemi? - 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 Informatica e Programmazione Università di Brescia 32
IL TREND ATTUALE (REALE) 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 Informatica e Programmazione Università di Brescia 33
Capacità sviluppate studiando l Informatica 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 Informatica e Programmazione Università di Brescia 35
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, ) Informatica e Programmazione Università di Brescia 36
LEGO E LEGO TECHNIC Informatica e Programmazione Università di Brescia 37
SCOPO DI QUESTO CORSO Informatica e Programmazione Università di Brescia 38
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 Informatica e Programmazione Università di Brescia 39
Una visione distorta dell informatica La matematica NON è applicare formule, l informatica NON è USARE il computer o conoscere tecnicismi Informatica e Programmazione Università di Brescia 40
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! 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, ) Informatica e Programmazione Università di Brescia 4 2
Contattarmi Studio n. 27 del Dipartimento di Ingegneria dell Informazione E-mail: massimiliano.giacomin@unibs.it (no per chiedere quando escono i risultati!) Orario di ricevimento: vedi bacheca - meglio preavvisare via mail Informatica e Programmazione Università di Brescia 43
Sito web del corso http://fimec.altervista.org Diapositive delle lezioni e delle esercitazioni (in pdf) Software gratuito per sviluppo e sperimentazione di programmi C [avete tutti un calcolatore?] News, appelli d esame precedente, risultati esami 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: P. Deitel, H. Deitel, Il linguaggio C fondamenti e tecniche di programmazione, PEARSON o, in alternativa: K.M. King, Programmazione in C, APOGEO o, in alternativa: qualunque altro libro sul C! Informatica e Programmazione Università di Brescia 45
Modalità d esame L esame è costituito da due prove 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 / 1h.15) - pausa 5 / 10 min - poi la programmazione (circa 1h.15 / 1h.30) 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!) - però ci si può ritirare entro 10 minuti dall inizio della prova di programmazione, senza che questa porti ad un fallimento 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 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 (teoria e programmazione) arrotondata per eccesso 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 Informatica e Programmazione Università di Brescia 50
Modalità d esame con compitini Per chi segue proficuamente il corso: DUE compitini (prove intermedie) 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 Informatica e Programmazione Università di Brescia 51
ISCRIZIONE ALLE PROVE SCRITTE Le prove scritte sono indicate in ESSE3 come prove intermedie di teoria e programmazione, NON COME APPELLI (!!!) 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) REGISTRAZIONE VOTI La registrazione è online: è sufficiente iscriversi ad un APPELLO e, dopo aver ricevuto un avviso via mail, confermare il voto (vale il silenzio/assenso) La procedura da seguire ed ulteriori dettagli sono indicati nel REGOLAMENTO D ESAME: LEGGETELO!!! Informatica e Programmazione Università di Brescia 52