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
© Copyright 2025 Paperzz