Introduzione al corso

Documenti analoghi
Introduzione al corso

Programmazione (imperativa)

Programmazione e Laboratorio 2004/05

Corso di Fisica Generale 1 A.A / 19 Inizio delle lezioni 25 febbraio 2019

Informazioni sul corso

Linguaggi di Programmazione + Lab. A.A Docente: Marco de Gemmis. Presentazione dell insegnamento

Informatica triennale (L31) sede di Bari Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

Modelli e complessità di calcolo

Introduzione al corso di Fondamenti di informatica. ingegneria elettronica Anno Accademico Donatella Firmani ottobre 2016

FONDAMENTI DI INFORMATICA II

Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

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

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

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

Fondamenti di Informatica (lettere A-I) A

Algoritmi e Strutture Dati

Fondamenti di Informatica

Fondamenti di Informatica

Algoritmi e Strutture Dati

Fondamenti di Informatica

CORSO DI PROGRAMMAZIONE. Cosimo Laneve/Ivan Lanese/Elena Giachino

Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio ]

Corso di: Economia e Gestione delle Imprese Turistiche a.a. 2011/12

Laboratorio di calcolo per l ottica a.a. 2018_19. Docenti: Luciana Di Gaspare Rino Conte

Introduzione al Corso

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

Fondamenti di Informatica A.A Studenti

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011. Benvenuti al Corso!

Laboratorio di Calcolo A

Informatica. a.a. 2010/2011. Prof. Fulvio Corno. Dip. Automatica e Informatica. Corso n 4 (DELS-FEQ)

Corso di Fondamenti di Informatica II introduzione al corso (canale L-Z, prof. d Amore)

Informatica. a.a. 2010/2011. Prof. Fulvio Corno. Dip. Automatica e Informatica. Corso n 7 (DELS-FEQ)

Reti Logiche e Architettura dei Calcolatori

Programmazione Procedurale

Laboratorio di Automatica. Introduzione al corso

Fondamenti di Informatica

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

Programmazione Orientata agli Oggetti I

Fondamenti di Informatica

Corso di Informatica - 6 CFU

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

Algoritmi e Sperimentazioni

Programmazione I - corso B a.a prof. Viviana Bono

INFORMATICA NOVITÀ IL LINGUAGGIO JAVA. Massimiliano Bigatti. Guida alla programmazione di base IN ALLEGATO AL VOLUME

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

Università degli Studi di Parma ECONOMIA AZIENDALE (6 CFU) Corso di Laurea in. Scienze Politiche e delle Relazioni Internazionali

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

PROGRAMMAZIONE ANNUALE

SISTEMI DI PROGRAMMAZIONE E CONTROLLO

PROGRAMMAZIONE ANNUALE A.S / 2017 FIOCCO ELIO MANNELLI MARIA GRAZIA OCCHINO SEBASTIANO-PASELLO DIANA

Algoritmi e Strutture Dati

Università degli Studi di Enna Kore Facoltà di Ingegneria e Architettura

Informazioni sul corso e sull esame

Introduzione al corso di Programmazione e Laboratorio

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

AMBIENTI COMPUTAZIONALI PER

Il corso di Sistemi Operativi Introduzione al corso di Sistemi Operativi

Corso di TEORIA E POLITICHE DELLO STATO SOCIALE (TePSS)

Corso di Fondamenti di Informatica T-1 Parte 2 - Modulo di Laboratorio

Introduzione al corso

Fondamenti di Informatica T-1

Il calcolatore. Architettura di un calcolatore (Hardware)

Fondamenti di Informatica. Proff. B.Buttarazzi & A.D Ambrogio A.A. 2011/2012

Programmazione Orientata agli Oggetti in Linguaggio Java

Laboratorio di Tecnologie dell'informazione. Ing. Marco Bertini

Obiettivi del corso. Programmazione Corso di laurea in Informatica

Università Porte Aperte

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

Fondamenti di Informatica

Corso Programmazione

Corso di Meccanica Applicata alle Macchine e Macchine

Sistemi con vincoli. Docente: Francesca Rossi.

Fondamenti di Informatica T-1

Università degli Studi di Enna Kore Facoltà di Scienze dell Uomo e della Società Anno Accademico

Architettura. Nome Modulo Tipologia lezioni Ore Docente SSD Ruolo Interno Affidamento. Vincenzo Conti

Fondamenti di Informatica

Metodologia della ricerca educativa Prof.ssa Antonella Poce 4 crediti anno accademico

Laboratorio di Tecnologie dell'informazione

Algoritmi e Strutture Dati

Come fare ricerca empirica

Fondamenti di Informatica

RISOLVERE I TEMI D ESAME

CORSO DI LAUREA IN MATEMATICA CORSO DI LAUREA TRIENNALE, LAUREA MAGISTRALE E SPECIALISTICA ORARIO DEFINITIVO

Cosa è cambiato - la parte facile

Università degli Studi di Enna Kore

Istituto Tecnico Economico Polo di Cutro Indirizzo: Amministrazione Finanza e Marketing. Classe: 1^A Quadriennale. Disciplina: MATEMATICA

Programmazione. Prof. Marco Bertini

Fondamenti di Informatica

Transcript:

Introduzione al corso Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Stefano Ferrari stefano.ferrari@unimi.it tel. 0373 898 062 02 503 30062 http://www.di.unimi.it/ferrari Ricevimento: lunedì 16:00 Stefano Ferrari Programmazione a.a. 2016/17 1

Orario delle lezioni Giorno orario aula Lunedì 14:00 16:00 3Sud Martedì 14:00 18:00 3Sud Mercoledì 14:00 18:00 Lab. Ovest Obiettivi del modulo acquisire uno strumento per risolvere problemi pratici in modo meccanico, e quindi 1. con una garanzia di correttezza 2. in un tempo inferiore 3. anche se di grandi dimensioni dopo averli ricondotti a problemi matematici acquisire una forma mentis adeguata a risolvere problemi acquisire uno stile nella creazione di oggetti funzionali Stefano Ferrari Programmazione a.a. 2016/17 2

Perché uno stile? Per fare un favore a se stessi... http://www.explainxkcd.com/wiki/index.php/1421:_future_self Perché risolvere problemi e creare oggetti? Per riconoscere sfide... Stefano Ferrari Programmazione a.a. 2016/17 3

Perché risolvere problemi e creare oggetti?... superare ostacoli... Perché risolvere problemi e creare oggetti?... e cogliere occasioni...... come la campagna virale di Google del 2 004 Stefano Ferrari Programmazione a.a. 2016/17 4

1. Programma = Macchina Un programma è una macchina che trasforma dati in risultati attraverso una sequenza di operazioni 1. determinate meccanicamente dai dati 2. elementari (perfettamente definite e di durata limitata) 2. Programma Codice Un programma non è il codice che lo rappresenta In passato, realizzare un programma era collegare opportunamente ingranaggi, alberi a camme,... collegare opportunamente cavi, relais,... perforare opportunamente schede Oggi, realizzare un programma è scrivere codice in linguaggi di programmazione (es., C) collegare opportunamente registri e porte logiche In futuro? La tecnologia cambia, il programma rimane lo stesso Stefano Ferrari Programmazione a.a. 2016/17 5

. 2. Programma 6= Codice 2. Programma 6= Codice Programmare non significa imparare un linguaggio di programmazione I i linguaggi si estinguono: meglio non estinguersi con loro I le abilita rare valgono: conoscere piu linguaggi e un abilita rara Stefano Ferrari Programmazione a.a. 2016/17 6

3. Algoritmo = Programma utile Algoritmo risolvente: trasforma un istanza di un problema nella soluzione attraverso una sequenza di operazioni 1. determinate meccanicamente dall istanza 2. elementari (perfettamente definite e di durata limitata) 3. di durata complessiva limitata 4. P M A Sol Str Modellazione e interpretazione sono le fasi più delicate e creative Stefano Ferrari Programmazione a.a. 2016/17 7

Esempi di problema (1) Alcuni esempi tipici di problemi affrontati con la programmazione 1. Crittografia/decifrazione Istanza: testo in chiaro / testo cifrato Soluzione: testo cifrato / testo in chiaro 2. Correzione automatica di testi Istanza: testo corrotto Soluzione: testo ricostruito 3. Interpretazione di immagini Istanza: immagine in formato bitmap Soluzione: elenco di oggetti riconosciuti Esempi di problema (2) Alcuni esempi tipici di problemi affrontati con la programmazione 4. Navigazione su strada Istanza: rete stradale, origine e destinazione, preferenze Soluzione: percorso ottimo 5. Pianificazione della produzione Istanza: sistema di (dis)equazioni che descrivono un impianto e la relazione fra produzione e profitto Soluzione: livelli di produzione ottimali 6. Battaglia navale Istanza: griglia, posizioni colpite, navi mancanti, navi colpite, navi affondate Soluzione: prossimo bersaglio Stefano Ferrari Programmazione a.a. 2016/17 8

Teoria e laboratorio Il modulo di Programmazione imperativa si compone di 18 lezioni di teoria da 2 ore 6 laboratori da 4 ore i primi 4 applicano i concetti descritti in teoria gli ultimi 2 sono di preparazione all esame Nelle lezioni teoriche vedrete girare esempi di codice (se avete un portatile e li scaricate, potete lanciarli durante la lezione) Ambiente di sviluppo Qualsiasi ambiente standard va bene per macchine Linux gcc è installato in ogni distribuzione (ne esistono molte trascrizioni per macchine Windows) in laboratorio useremo Dev-C++ (versione 4?), che include compilatore gcc ambiente grafico (sconsigliato se volete imparare) debugger (forse a fine corso) (http://www.bloodshed.net/devcpp.html) esiste anche la versione portable Per imparare, sono meglio gli ambienti semplici Gli ambienti avanzati spesso non sono standard Stefano Ferrari Programmazione a.a. 2016/17 9

Modalità d esame L esame ha un voto solo, ma si compone di due moduli indipendenti dovete superare entrambi i moduli potete ripeterli illimitatamente, anche se avete già un voto il voto complessivo è la media dei voti dei due moduli ciascun singolo voto scade dopo un anno (es.: il voto di giugno 2016 vale fino a giugno 2017 compreso) per registrare il voto dovete 1. iscrivervi a un appello 2. contattare i due docenti 3. ricordare loro le date in cui avete sostenuto le due parti Consigli 1. venire a lezione (i lucidi sono superficiali) 2. prendere appunti completi, non glossare i lucidi (chi non sa scrivere quel che ha sentito, non lo ha capito) 3. interrompere per chiedere chiarimenti o conferme e segnalare incomprensioni 4. fare esercizi a casa (36 + 24 ore non sono sufficienti) 5. studiare sugli appunti o su un libro (il lucido induce a credere di aver capito, ma si sta solo ripetendo) 6. studiare un po per volta, ritornando sugli argomenti più vecchi (si scopriranno cose che erano sfuggite la prima volta e nuove relazioni fra concetti) Stefano Ferrari Programmazione a.a. 2016/17 10