INTRODUZIONE AL CORSO Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin
COSA PERCHÈ COME Informatica e Programmazione Università di Brescia 2
COSA COSA SONO L INFORMATICA E LA PROGRAMMAZIONE (e cosa si studia in questo corso) PERCHÈ COME Informatica e Programmazione Università di Brescia 3
UNA VISIONE GIORNALISTICA Informatica e Programmazione Università di Brescia 4
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 5
INFORMAZIONE Rappresentata mediante una sequenza di simboli INFORMAZIONE SIMBOLI Informatica e Programmazione Università di Brescia 6
ALGORITMO INFORMAZIONE ALGORITMO Specifica come produrre la soluzione ad un problema con una sequenza di istruzioni Informatica e Programmazione Università di Brescia 7
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 8
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 9
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 10
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 11
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 12
NASA SOCCER https://www.grc.nasa.gov/www/k-12/airplane/soccercode.html Informatica e Programmazione Università di Brescia 13
PROGETTAZIONE AREODINAMICA http://www.hanleyinnovations.com/stallion3d.html
SIMULATORE DI VOLO (1)
SIMULATORE DI VOLO (2)
Software di simulazione (es. emissione e dispersione di inquinanti) [immagini tratte dal sito www.prode.com] Informatica e Programmazione Università di Brescia 17
CAD (Computer Aided Design) Informatica e Programmazione Università di Brescia 18
CAD (Computer Aided Design) Informatica e Programmazione Università di Brescia 19
Un simulatore di processi logistico-produttivi (DVD assembly) Informatica e Programmazione Università di Brescia 20
Simulazione comportamento di formiche [realizzato con NetLogo, per gentile concessione di M. Cadei] Informatica e Programmazione Università di Brescia 21
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 22
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; calcolatore dati esecuzione risultati printf( %d+1=%d\n,num,successivo); system("pause"); } return 0; Informatica e Programmazione Università di Brescia 23
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 24
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 25
COSA PERCHÈ PERCHE' QUESTO CORSO A INGEGNERIA COME Informatica e Programmazione Università di Brescia 26
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 27
PRIMA MOTIVAZIONE Nota: immagine da www.goal.com
PRIMA MOTIVAZIONE (LA MENO IMPORTANTE) SIAMO NEL 2019! APPLICAZIONI DELL INFORMATICA DI SIGNIFICATIVO INTERESSE PER OGNI CAMPO DI INDAGINE E APPLICAZIONE, COMPRESA L INGEGNERIA MECCANICA E DEI MATERIALI ESEMPIO: Controllo di sistemi meccanici
31 maggio 2018 MotoGP Tech, l'analisi tecnica della Yamaha M1: ecco perché non va https://sport.sky.it/motogp/2018/05/31/motogp-2018-yamaha-analisi-problemi.html http://www.corsedimoto.com/in-pista/motomondiale/ motogp-perche-alcune-squadre-sono-piu-avanti-con-lelettronica/ (Foto: Getty Images)
In generale: è 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 33
SECONDA MOTIVAZIONE (LA PIU IMPORTANTE) Quali competenze per l ingegnere?
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 35
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 (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 37
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 39
COSA PERCHÈ COME - Come svolgo il corso - Come si deve studiare - Informazioni pratiche (es. modalità di esame) Informatica e Programmazione Università di Brescia 40
LEGO E LEGO TECHNIC Informatica e Programmazione Università di Brescia 41
SCOPO DI QUESTO CORSO Informatica e Programmazione Università di Brescia 42
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 43
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 44
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 ALL AMICO CHE SA PROGRAMMARE E POI NON DITEMI CHE NON VE L AVEVO DETTO! Informatica e Programmazione Università di Brescia 45
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 46
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 47
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 48
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 49
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 50
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 51
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 52
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 53
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 54
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 55
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 56