INTRODUZIONE AL CORSO

Documenti analoghi
Informatica e Programmazione

Informatica e Programmazione

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione

Introduzione al corso

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro

Docente: Prof. Marco Patella Tutor: Lorenzo Rosa

FONDAMENTI DI INFORMATICA

Fondamenti di Informatica. Introduzione al Corso

Introduzione all Informatica

Università degli Studi di Bologna Facoltà di Ingegneria. Corso di Applicazioni di Intelligenza Artificiale LS

Corso di SISTEMI INTELLIGENTI M. Prof. Michela Milano" Anno accademico 2011/2012

Fondamenti di Informatica

Architettura degli elaboratori

FONDAMENTI DI INFORMATICA

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Corso di Fondamenti di Informatica L-B

Introduzione al corso

FONDAMENTI DI INFORMATICA II

Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale

Architettura degli elaboratori

Fondamenti di Informatica II Corso (HA-ZZ) Introduzione al corso

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Fondamenti di Informatica

Corso di. Corsi di Laurea in Ingegneria Elettronica e Ingegneria dell Automazione

Calcolatori Elettronici B a.a. 2004/2005

informatica di base per le discipline umanistiche

Introduzione al corso

Fondamenti di Informatica e Programmazione

A.A. 2018/2019. Introduzione al Corso FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Corso di. Fondamenti di Informatica T

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Fondamenti di Informatica T1"

Reti Logiche e Architettura dei Calcolatori

Corso di Fondamenti di Informatica L-A

Corso di Laurea Ingegneria Informatica

Corso di Fondamenti di Informatica e Laboratorio ato o T-AB

I.I.S. N. PELLATI Nizza Monferrato - Canelli

Corso di Fondamenti di Informatica e Laboratorio T-AB

Fondamenti di Informatica e Laboratorio T-AB

Modelli e complessità di calcolo

Fondamenti di informatica. Introduzione al corso di Fondamenti di informatica I e II (informatici) Anno Accademico

Corso di Applicazioni di Intelligenza Artificiale LS. Prof. Paola Mello Anno accademico 2008/2009

Informatica (C.I. Metodologia Scientifica e Linguistica)

Presentazione del Corso Informazioni utili

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Il corso di Fondamenti di Informatica

Corso di. Fondamenti di Informatica 2 e Architettura degli Elaboratori

Corso di Fondamenti di Informatica L-B

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Fondamenti di Informatica e Laboratorio T-AB!

Corso di Laurea Ingegneria Civile

Obiettivi del corso. Programmazione Corso di laurea in Informatica

Università degli Studi della Calabria

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Introduzione. Stefano Ferrari

Informatica industriale L-31. Corso di Programmazione e Laboratorio di Programmazione

Fondamenti di Informatica T1

Fondamenti di Informatica A.A Obiettivo del corso. Programma del corso. Orario delle lezioni

Il Software programmabili programma algoritmo

Linguaggio C: Variabili e assegnamento e semplici comandi di I/O

IL SISTEMA OPERATIVO

Fondamenti di Informatica e Laboratorio T-AB

Introduzione. Fondamenti di Informatica 1. Dispensa 1 Gennaio Contenuti. Alfonso Miola. K Corso di Fondamenti di Informatica 1

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio

Informazioni sul corso

Introduzione al Corso

OBIETTIVI. Conoscere i concetti di base dell Informatica. Conoscere i principi e gli strumenti di base della programmazione

Informatica industriale L-31. Corso di Programmazione e Laboratorio di Programmazione

Fondamenti di Informatica e Laboratorio T-AB

Fondamenti di Informatica T1

Introduzione al corso

Corso di Fondamenti di Informatica Anno accademico 2018/19

Organizzazione del corso

Fondamenti di Informatica T-1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Calcolatori Elettronici B a.a. 2006/2007

Programmazione C Massimo Callisto De Donato

Fondamenti di Informatica T-1

Laboratorio di Informatica. Introduzione

Fondamenti di Informatica e Laboratorio T-AB

Programmazione per BioInformatica Introduzione. Docente. Programma del corso. Nicola Drago

Fondamenti di Informatica

Problemi, algoritmi, calcolatore

Corso di Laurea Ingegneria Civile

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Programmazione (imperativa)

Introduzione al corso

Come fare ricerca empirica

Transcript:

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