Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti...

55
Prof. Chiara Petrioli, Cors Prof. Chiara Petrioli, Cors o di Fondamenti di Programm o di Fondamenti di Programm azione, a.a. 2009/2010 azione, a.a. 2009/2010 1 Corso di Fondamenti di Corso di Fondamenti di Programmazione Programmazione a.a.2009/2010 (A-D) a.a.2009/2010 (A-D) Prof.ssa Chiara Petrioli Prof.ssa Chiara Petrioli Corso di Laurea in Informatica Corso di Laurea in Informatica Università degli Studi “La Sapienza” Università degli Studi “La Sapienza” Pagina del corso: http://twiki.di.uniroma1.it/ Pagina del corso: http://twiki.di.uniroma1.it/ Pagina personale: Pagina personale: http://reti.dsi.uniroma1.it/eng/petrioli/chiara-petrioli.html http://reti.dsi.uniroma1.it/eng/petrioli/chiara-petrioli.html

Transcript of Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti...

Page 1: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

11

Corso di Fondamenti di Corso di Fondamenti di ProgrammazioneProgrammazione

a.a.2009/2010 (A-D)a.a.2009/2010 (A-D)Prof.ssa Chiara PetrioliProf.ssa Chiara Petrioli

Corso di Laurea in InformaticaCorso di Laurea in InformaticaUniversità degli Studi “La Sapienza”Università degli Studi “La Sapienza”

Pagina del corso: http://twiki.di.uniroma1.it/Pagina del corso: http://twiki.di.uniroma1.it/Pagina personale: http://reti.dsi.uniroma1.it/eng/petrioli/chiara-petrioli.htmlPagina personale: http://reti.dsi.uniroma1.it/eng/petrioli/chiara-petrioli.html

Page 2: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

22

Benvenuti !Benvenuti !

Una breve introduzione al corso di laurea Una breve introduzione al corso di laurea ed agli obiettivi di questo corso…ed agli obiettivi di questo corso…

Page 3: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

33

Come è strutturata l’Università Come è strutturata l’Università “La Sapienza” …“La Sapienza” …

ATENEO

RettoreConsiglio di AmministrazioneSenato Accademico

GO

VE

RN

AT

O

DA

Rappresentanti di docentitecnici/amministrativi e studenti

COMPOSTO DI ATENEI FEDERATI

Ateneo delle Scienzee delle Tecnologie (AST)

COMPRENDE:Facoltà di S.M.F.N.

Facoltà di IngegneriaFacoltà di Ingegneria

AereospazialeFacoltà di StatisticaFacoltà di Filosofia

Facoltà di Psicologia 1

NOSTRO ATENEO

-PresidenteProf. Martinelli-Consiglio Accademico-Giunta Tecnico-Amministrativa

GO

VE

RN

AT

O D

A

Page 4: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

44

Facoltà e DipartimentiFacoltà e Dipartimenti

Corsi di laurea in Informatica

Corso di laureaIn Biologia

Corso di laureaIn Matematica

Corso di laureaIn Fisica

Corso di laureaIn Chimica

Corsi di laureaIn Scienze Naturali

e geologicheFac

oltà

di S

cien

zeM

atem

atic

he F

isic

he

E N

atur

ali D

IDA

TT

ICA

Dipartimento di Informatica

Dip. di BiologiaCellulare…

Diaprtimento di Matematica

Dipartimentodi Fisica

Dipartimentodi Chimica …….

Offre iDocenti Per ilCorso diLaurea

RIC

ER

CA

Page 5: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

55

Dipartimento e Corso di Laurea in Dipartimento e Corso di Laurea in InformaticaInformatica

Direttore del Dipartimento di Informatica: Prof.ssa Direttore del Dipartimento di Informatica: Prof.ssa Rossella Petreschi –nuovo direttore tra pochi giorniRossella Petreschi –nuovo direttore tra pochi giorni

(il Dipartimento è responsabile delle strutture –inclusi (il Dipartimento è responsabile delle strutture –inclusi laboratori, biblioteca-, gestisce le risorse del laboratori, biblioteca-, gestisce le risorse del dipartimento, pianifica le assunzioni di nuovi docenti e dipartimento, pianifica le assunzioni di nuovi docenti e nuovo personale)nuovo personale)Presidente del Consiglio di Area Didattica: Prof. Presidente del Consiglio di Area Didattica: Prof. Giancarlo BongiovanniGiancarlo Bongiovanni

(il corso di laurea decide ad esempio il calendario didattico, (il corso di laurea decide ad esempio il calendario didattico, gli appelli di esame, le sedute di laurea, pianifica i corsi, gli appelli di esame, le sedute di laurea, pianifica i corsi, stabilisce le regole per i corsi di laurea,…)stabilisce le regole per i corsi di laurea,…)

AVETE RAPPRESENTANTI IN DIPARTIMENTO E AVETE RAPPRESENTANTI IN DIPARTIMENTO E CADCAD

Page 6: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

66

CommissioniCommissioniDipartimentoDipartimento– Commissione Scientifica Commissione Scientifica – Commissione BibliotecaCommissione Biblioteca– Commissione Mezzi di Calcolo Commissione Mezzi di Calcolo ……

Consiglio di Area DidatticaConsiglio di Area Didattica– Commissione pratiche studenti (Dott.ssa De Commissione pratiche studenti (Dott.ssa De

Marsico, Dott. Ivano Salvo)Marsico, Dott. Ivano Salvo)

… …..

Page 7: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

77

I docentiI docenti

Cosa fa un docente universitarioCosa fa un docente universitario– principalmente ricercaprincipalmente ricerca– didatticadidattica

frontalefrontale

preparazione dei corsi + esamipreparazione dei corsi + esami

segue tesi + partecipa a commissioni di laureasegue tesi + partecipa a commissioni di laurea

segue studenti di dottoratosegue studenti di dottorato

– attività internazionaliattività internazionali– attività di servizioattività di servizio

commissioni, partecipazioni ad organi preposti a controllare il commissioni, partecipazioni ad organi preposti a controllare il funzionamento delle attività dell’universitàfunzionamento delle attività dell’università

Page 8: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

88

Perché “La Sapienza”Perché “La Sapienza”

Elencata come seconda migliore Elencata come seconda migliore università università italianaitaliana nei ranking nei ranking internazionali (che tengono conto della internazionali (che tengono conto della riuscita degli studenti, dell’eccellenza riuscita degli studenti, dell’eccellenza scientifica dei docenti)scientifica dei docenti)– 150.000 studenti 150.000 studenti gestione non facile ma gestione non facile ma

titolo spendibile anche in ambito titolo spendibile anche in ambito internazionaleinternazionale

Page 9: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

99

Perché la Facoltà di ScienzePerché la Facoltà di Scienze

Metodo scientifico di analisi, capacità di Metodo scientifico di analisi, capacità di problem solving vi aiuteranno nelle vostre problem solving vi aiuteranno nelle vostre esperienze lavorativeesperienze lavorative

Tra tutte le Facoltà di S.M.F.N. italiane la Tra tutte le Facoltà di S.M.F.N. italiane la Facoltà della “Sapienza” risulta prima nei Facoltà della “Sapienza” risulta prima nei ranking internazionali. Secondo il Ranking delle ranking internazionali. Secondo il Ranking delle migliori Università del mondo stilato migliori Università del mondo stilato annualmente dal ‘The Times’ è 39° nel mondo!!annualmente dal ‘The Times’ è 39° nel mondo!! Cercate di sfruttare la possibilità di interagire con Cercate di sfruttare la possibilità di interagire con

ricercatori di punta a livello internazionale!ricercatori di punta a livello internazionale!

Page 10: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1010

Perché InformaticaPerché InformaticaNon solo programmazione….Non solo programmazione….Alcuni ambiti in cui gli informatici hanno avuto un ruolo Alcuni ambiti in cui gli informatici hanno avuto un ruolo importante negli ultimi 5-10 anni:importante negli ultimi 5-10 anni:– Industria del SW (programmatori, capi progetto, manager,…)Industria del SW (programmatori, capi progetto, manager,…)– Industria cinematografica ed entertainment (grafica, effetti speciali, Industria cinematografica ed entertainment (grafica, effetti speciali,

video giochi,…)video giochi,…)– Reti di calcolatori (progettista di reti di calcolatori, amministratore Reti di calcolatori (progettista di reti di calcolatori, amministratore

di reti, programmatore di rete, progettista di nuove tecnologie nei di reti, programmatore di rete, progettista di nuove tecnologie nei lab di ricerca industriali, progettista di sistemi embedded, …)lab di ricerca industriali, progettista di sistemi embedded, …)

– Sistemi (amministratore di sistema, progettista di nuovi S.O., Sistemi (amministratore di sistema, progettista di nuovi S.O., esperto di sicurezza,…)esperto di sicurezza,…)

– Industria automobilistica (40% dei costi di una macchina oggi sono Industria automobilistica (40% dei costi di una macchina oggi sono dovuti a elettronica/informatica)dovuti a elettronica/informatica)

– Ambiti biologici e medici (informatica medica, biologia Ambiti biologici e medici (informatica medica, biologia computazionale)computazionale)

– Information retrieval e data mining (es. google)Information retrieval e data mining (es. google)……....

e tra l’altro…e tra l’altro…– Secondo la valutazione CIVR il gruppo misto di Information e Secondo la valutazione CIVR il gruppo misto di Information e

Communications Technologies (docenti di Informatica, Ingegneria Communications Technologies (docenti di Informatica, Ingegneria Informatica, Telecomunicazioni) migliore a livello nazionaleInformatica, Telecomunicazioni) migliore a livello nazionale

– Più di un terzo dei docenti con esperienza (dottorato/postdoc) in Più di un terzo dei docenti con esperienza (dottorato/postdoc) in istituzioni estere di eccellenza istituzioni estere di eccellenza

Page 11: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1111

Il panorama per i prossimi anniIl panorama per i prossimi anni

Informatica sempre piu’ centrale nello sviluppo di molte tecnologieInformatica sempre piu’ centrale nello sviluppo di molte tecnologieSempre piu’ conoscenze interdisciplinari importanti Sempre piu’ conoscenze interdisciplinari importanti scegliete in scegliete in modo oculato i crediti fuori settoremodo oculato i crediti fuori settoreESEMPIOESEMPIO– ICT: convergenza tra diversi settori in attoICT: convergenza tra diversi settori in atto

elettronica/HWelettronica/HW informatica/SWinformatica/SW telecomunicazioni e sicurezza informaticatelecomunicazioni e sicurezza informatica middleware/applicazioni/servizimiddleware/applicazioni/servizi ingegneria automaticaingegneria automatica

– Settori industriali: E-Health, Automotive, Transportation, Defense, Settori industriali: E-Health, Automotive, Transportation, Defense, Factory automation,…Factory automation,…

– L’informatico non è un mero esecutore, ma un professionista che è in L’informatico non è un mero esecutore, ma un professionista che è in grado di capire i problemi, conosce bene tecniche matematiche, grado di capire i problemi, conosce bene tecniche matematiche, analitiche, informatiche; sa modellare problemi di un ampio insieme di analitiche, informatiche; sa modellare problemi di un ampio insieme di discipline e propone soluzionidiscipline e propone soluzioni

Page 12: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1212

Organizzazione del Corso di LaureaOrganizzazione del Corso di LaureaPrevede un misto di corsi di Informatica teorica, di Matematica/Fisica, Prevede un misto di corsi di Informatica teorica, di Matematica/Fisica, di Programmazione…. PERCHE’?di Programmazione…. PERCHE’?Un esempio: esperto di reti che lavora in TIMUn esempio: esperto di reti che lavora in TIM– Deve conoscere le reti radiomobili (architettura di Internet, Deve conoscere le reti radiomobili (architettura di Internet,

programmazione di rete, lab. di programmazione di rete, programmazione di rete, lab. di programmazione di rete, reti avanzate, reti avanzate, progettazione di sistemi wireless, progettazione di reteprogettazione di sistemi wireless, progettazione di rete))

– Si occupa di progettare e gestire reti cellulari di prossima generazione: Si occupa di progettare e gestire reti cellulari di prossima generazione: pianificazione di reti cellulari (valutazione delle prestazioni, basata su pianificazione di reti cellulari (valutazione delle prestazioni, basata su calcolo delle probabilità calcolo delle probabilità a sua volta richiede competenze di analisi a sua volta richiede competenze di analisi matematica), deve capire come avvenga la trasmissione sul mezzo radio matematica), deve capire come avvenga la trasmissione sul mezzo radio (fisica), deve poter progettare soluzioni per la comunicazione di (fisica), deve poter progettare soluzioni per la comunicazione di informazioni nella rete (protocolli di rete informazioni nella rete (protocolli di rete serve una conoscenza delle serve una conoscenza delle reti e degli algoritmi distribuiti), deve poter implementare le soluzioni che reti e degli algoritmi distribuiti), deve poter implementare le soluzioni che ha sviluppato (programmazione) e verificare che funzionino correttamente ha sviluppato (programmazione) e verificare che funzionino correttamente (o saper seguire persone che lo facciano).(o saper seguire persone che lo facciano).

… … SERVE QUINDI UNA FIGURA CHE ABBIA TUTTE LE COMPETENZE SERVE QUINDI UNA FIGURA CHE ABBIA TUTTE LE COMPETENZE PREVISTE DAL CORSO DI LAUREA (Un misto di conoscenze PREVISTE DAL CORSO DI LAUREA (Un misto di conoscenze matematiche/fisiche e informatiche servono anche per gli altri profili matematiche/fisiche e informatiche servono anche per gli altri profili lavorativi lavorativi )..ulteriori esempi nel seguito…)..ulteriori esempi nel seguito…

Page 13: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1313

Organizzazione del Corso di LaureaOrganizzazione del Corso di LaureaAlcuni messaggiAlcuni messaggi– Partite con l’obiettivo di conseguire la Partite con l’obiettivo di conseguire la

laurea Specialisticalaurea SpecialisticaPreparazione dopo 3 o 5 anni molto diversa (e Preparazione dopo 3 o 5 anni molto diversa (e le industrie che vi possono offrire i posti più le industrie che vi possono offrire i posti più interessanti lo riconoscono)interessanti lo riconoscono)

Negli ultimi anni richiesti dall’industria anche Negli ultimi anni richiesti dall’industria anche dottori di ricerca con una specializzazione in dottori di ricerca con una specializzazione in ambiti applicativiambiti applicativi

Page 14: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1414

Organizzazione del Corso di LaureaOrganizzazione del Corso di LaureaLavorate su voi stessi e sulle vostre capacitàLavorate su voi stessi e sulle vostre capacità

Sfruttate tutte le occasioni per incrementare le vostre conoscenze su Sfruttate tutte le occasioni per incrementare le vostre conoscenze su argomenti d’avanguardia (interazioni con i docenti, seminari, workshop argomenti d’avanguardia (interazioni con i docenti, seminari, workshop organizzati), mettetevi in competizione con voi stessi (problem solving, organizzati), mettetevi in competizione con voi stessi (problem solving, gare di informatica, gare di informatica, percorso di eccellenzapercorso di eccellenza), entrate in un contesto ), entrate in un contesto internazionale;internazionale;Andate al di là di quanto sentite in classe (il corso è una guida –Andate al di là di quanto sentite in classe (il corso è una guida –fondamentale e da seguire- allo studio, studiare sui libri di testo e sui fondamentale e da seguire- allo studio, studiare sui libri di testo e sui libri di approfondimento è fondamentale per ottenere buoni voti e per libri di approfondimento è fondamentale per ottenere buoni voti e per una preparazione approfondita)una preparazione approfondita)Acquisite un buon metodo di studio, imparate l’inglese Acquisite un buon metodo di studio, imparate l’inglese

L’ingresso nel mondo del lavoro non differenzia moltissimo tra 3 e 3+2, L’ingresso nel mondo del lavoro non differenzia moltissimo tra 3 e 3+2, ma a 3,5,10 anni dalla laurea una buona preparazione universitaria fa la ma a 3,5,10 anni dalla laurea una buona preparazione universitaria fa la differenza in termini di livello di interesse del lavoro, ruolo (manageriale differenza in termini di livello di interesse del lavoro, ruolo (manageriale o meno) e stipendioo meno) e stipendio

Se potete dedicatevi full time allo studio (le materie sono tante, non Se potete dedicatevi full time allo studio (le materie sono tante, non banali, avere la possibilità di acquisire un metodo di raggiungere una banali, avere la possibilità di acquisire un metodo di raggiungere una comprensione approfondita ed una elevata capacità di problem solving comprensione approfondita ed una elevata capacità di problem solving –cosa che richiede tempo e impegno- è cio che farà la differenza per il –cosa che richiede tempo e impegno- è cio che farà la differenza per il vostro successo futuro)vostro successo futuro)

Page 15: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1515

Alcune novitàAlcune novitàMolti gli incentivi per i ‘migliori’Molti gli incentivi per i ‘migliori’– Possibilità di non pagare parte delle tasse universitarie per i 100/100Possibilità di non pagare parte delle tasse universitarie per i 100/100– Possibilità di aver restituito un anno di tasse per chi segue il Possibilità di aver restituito un anno di tasse per chi segue il

percorso di eccellenzapercorso di eccellenza– Borse di supporto alle attività universitarieBorse di supporto alle attività universitarie– Borse per “tesi di laurea” all’esteroBorse per “tesi di laurea” all’estero

Valutazione della didatticaValutazione della didattica– 1/3 della quota del finanziamento all’università “per merito” dipende 1/3 della quota del finanziamento all’università “per merito” dipende

dalla didatticadalla didattica percentuale di studenti che superano i 2/3 dei crediti in pari al primo percentuale di studenti che superano i 2/3 dei crediti in pari al primo annoanno percentuale dei crediti superati dagli studentipercentuale dei crediti superati dagli studenti se viene effettuata una valutazione dei corsise viene effettuata una valutazione dei corsi percentuale di laureati impiegati a tre annipercentuale di laureati impiegati a tre anni

Page 16: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1616

Fondamenti di programmazione: IntroduzioneFondamenti di programmazione: Introduzione

Consideriamo un problema semplice, ovvero la Consideriamo un problema semplice, ovvero la risoluzione di un sistema di equazioni lineari in xrisoluzione di un sistema di equazioni lineari in x11 e e xx22 con a con a1111, a, a1212, a, a2121, a, a2222, b, b11 e b e b22 costanti a cui è stato costanti a cui è stato assegnato un valore.assegnato un valore.

Se il determinante aSe il determinante a1111aa2222-a-a2121aa1212 != 0 le soluzioni != 0 le soluzioni sono date dasono date da

Altrimenti il sistema è malcondizionato o Altrimenti il sistema è malcondizionato o inconsistenteinconsistente

12212211

1122112

12212211

1222211 ,

aaaa

ababx

aaaa

ababx

1212111 bxaxa

2222121 bxaxa -

Page 17: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1717

Fondamenti di programmazione: IntroduzioneFondamenti di programmazione: Introduzione

Consideriamo un problema semplice, ovvero la Consideriamo un problema semplice, ovvero la risoluzione di un sistema di equazioni lineari in xrisoluzione di un sistema di equazioni lineari in x11 e e xx22 con a con a1111, a, a1212, a, a2121, a, a2222, b, b11 e b e b22 costanti a cui è stato costanti a cui è stato assegnato un valore.assegnato un valore.

Se il determinante aSe il determinante a1111aa2222-a-a2121aa1212 != 0 le soluzioni != 0 le soluzioni sono date dasono date da

Altrimenti il sistema è malcondizionato o Altrimenti il sistema è malcondizionato o inconsistenteinconsistente

12212211

1122112

12212211

1222211 ,

aaaa

ababx

aaaa

ababx

Page 18: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1818

11

122

11

11 a

ax

a

bx011 a

2

1

21

11

b

b

a

a

2

1

21

11

b

b

a

a

Risoluzione di un sistema di Risoluzione di un sistema di equazioni lineari (algoritmo)equazioni lineari (algoritmo)

Un algoritmo è una sequenza di passi elementari Un algoritmo è una sequenza di passi elementari che devono essere eseguiti, che devono essere eseguiti, in un determinato in un determinato ordineordine, per risolvere un problema., per risolvere un problema.Nel nostro caso:Nel nostro caso:– Passo 1: Calcolare la quantitàPasso 1: Calcolare la quantità

– Passo 2: Se Passo 2: Se =0 e il sistema è inconsistente. =0 e il sistema è inconsistente.

Se invece e alloraSe invece e allora

Se aSe a1111=0 invece va posto =0 invece va posto

12212211 aaaa

1222212

ababx

(non ammette soluzioni)

Page 19: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

1919

Risoluzione di un sistema di Risoluzione di un sistema di equazioni lineari (algoritmo)equazioni lineari (algoritmo)

Un algoritmo è una sequenza di passi elementari Un algoritmo è una sequenza di passi elementari che devono essere eseguiti, che devono essere eseguiti, in un determinato in un determinato ordineordine, per risolvere un problema., per risolvere un problema.

Nel nostro caso:Nel nostro caso:– ……– Passo 3: Se Passo 3: Se =0 il sistema ammette un’unica soluzione. =0 il sistema ammette un’unica soluzione.

12212211

1122112

12212211

1222211 ,

aaaa

ababx

aaaa

ababx

Page 20: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2020

Risoluzione di un sistema di equazioni Risoluzione di un sistema di equazioni lineari (diagramma di flusso)lineari (diagramma di flusso)

Page 21: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2121

Risoluzione di un sistema di equazioni Risoluzione di un sistema di equazioni lineari (esecutore umano)lineari (esecutore umano)

Attività: -leggere un passo sul foglio della procedura-eseguire il passo, eventualmente facendo

uso della calcolatrice e della carta di minuta

Terminato il lavoro scrivere il risultato su un foglio di carta da consegnare al

richiedente

Possibile automatizzare l’intera procedura. Per capire come vediamoquali sono le componenti di un calcolatore…

Page 22: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2222

ElaboratoreElaboratore Un elaboratore è un dispositivo capace di Un elaboratore è un dispositivo capace di effettuare calcoli e di prendere decisioni effettuare calcoli e di prendere decisioni logiche ad una velocità milioni/miliardi di logiche ad una velocità milioni/miliardi di volte più veloce di quella di un essere umanovolte più veloce di quella di un essere umanoGli elaboratori processano dati sotto il Gli elaboratori processano dati sotto il controllo di insiemi di istruzioni (i programmi) controllo di insiemi di istruzioni (i programmi) che specificano i passi elementari da che specificano i passi elementari da effettuare sui dati per ottenere il risultato effettuare sui dati per ottenere il risultato voluto.voluto.I programmi sono scritti in linguaggi di I programmi sono scritti in linguaggi di programmazione. programmazione.

15.7 milioni di secondi in un anno! La vita di una persona circa 80 anni1.2 miliardi di secondi.

Considerando che per 1/3 del tempo dormiamo un calcolatore è in gradodi calcorare in un secondo più di una persona in una vita

In questo corso affronteremo, dato un problema, 1)come determinare la sequenzadi passi elementari che devono essere eseguiti per risolvere il problema,2)come codificare tale sequenza in C, 3)come verificare che la soluzione trovatae la sua codifica siano corrette.

Page 23: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2323

Componenti di un elaboratoreComponenti di un elaboratore

Un computer consiste di unUn computer consiste di un– processore processore

Controlla le operazioni del computer ed effettua il processing Controlla le operazioni del computer ed effettua il processing dei datidei dati

– memoria memoria Memorizza dati e programmi Memorizza dati e programmi

– dispositivi di I/0 dispositivi di I/0 Consentono la comunicazione tra il calcolatore e l’utente Consentono la comunicazione tra il calcolatore e l’utente (Input: mouse, tastiera,…; Output: schermo, stampante,…)(Input: mouse, tastiera,…; Output: schermo, stampante,…)

– bus di sistemabus di sistemaConsentono la comunicazione tra le varie componenti HW Consentono la comunicazione tra le varie componenti HW dell’elaboratoredell’elaboratore

Page 24: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2424

Componenti di un elaboratoreComponenti di un elaboratore

CPU

Page 25: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2525

Componenti di un elaboratoreComponenti di un elaboratore

Un computer consiste di unUn computer consiste di un– processore processore

Controlla le operazioni del computer ed effettua il processing Controlla le operazioni del computer ed effettua il processing dei datidei dati

– memoria memoria Memorizza dati e programmi Memorizza dati e programmi

– dispositivi di I/0 dispositivi di I/0 Consentono la comunicazione tra il calcolatore e l’utente Consentono la comunicazione tra il calcolatore e l’utente (Input: mouse, tastiera,…; Output: schermo, stampante,…)(Input: mouse, tastiera,…; Output: schermo, stampante,…)

– bus di sistemabus di sistemaConsentono la comunicazione tra le varie componenti HW Consentono la comunicazione tra le varie componenti HW dell’elaboratoredell’elaboratore

Page 26: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2626

Componenti di un elaboratoreComponenti di un elaboratore

CPU

MEMORIA

Page 27: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2727

Componenti di un elaboratoreComponenti di un elaboratore

Un computer consiste di unUn computer consiste di un– processore processore

Controlla le operazioni del computer ed effettua il processing Controlla le operazioni del computer ed effettua il processing dei datidei dati

– memoria memoria Memorizza dati e programmi Memorizza dati e programmi

– dispositivi di I/0 dispositivi di I/0 Consentono la comunicazione tra il calcolatore e l’utente Consentono la comunicazione tra il calcolatore e l’utente (Input: mouse, tastiera,…; Output: schermo, stampante,…)(Input: mouse, tastiera,…; Output: schermo, stampante,…)

– bus di sistemabus di sistemaConsentono la comunicazione tra le varie componenti HW Consentono la comunicazione tra le varie componenti HW dell’elaboratoredell’elaboratore

Page 28: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2828

Componenti di un elaboratoreComponenti di un elaboratore

CPU

MEMORIA

Input Output

Page 29: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

2929

Componenti di un elaboratoreComponenti di un elaboratore

Un computer consiste di unUn computer consiste di un– processore processore

Controlla le operazioni del computer ed effettua il processing Controlla le operazioni del computer ed effettua il processing dei datidei dati

– memoria memoria Memorizza dati e programmi Memorizza dati e programmi

– dispositivi di I/0 dispositivi di I/0 Consentono la comunicazione tra il calcolatore e l’utente Consentono la comunicazione tra il calcolatore e l’utente (Input: mouse, tastiera,…; Output: schermo, stampante,…)(Input: mouse, tastiera,…; Output: schermo, stampante,…)

– bus di sistemabus di sistemaConsentono la comunicazione tra le varie componenti HW Consentono la comunicazione tra le varie componenti HW dell’elaboratoredell’elaboratore

Page 30: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3030

Componenti di un elaboratoreComponenti di un elaboratore

CPU

MEMORIA

Input Output

BUS DI SISTEMA

Page 31: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3131

Componenti di un elaboratoreComponenti di un elaboratore

CO

MP

ON

EN

TI

DI

UN

ELA

BO

RA

TO

RE

Un processore includeUn processore include-ALU (Unità Aritmetico-Logica)-ALU (Unità Aritmetico-Logica)

Sottosistema che effettua le operazioni sui dati (aritmetiche –Sottosistema che effettua le operazioni sui dati (aritmetiche –addizione, sottrazione,…- e logiche –AND, OR,…-). Ha linee addizione, sottrazione,…- e logiche –AND, OR,…-). Ha linee di ingresso (input), di controllo (per specificare il tipo di di ingresso (input), di controllo (per specificare il tipo di operazione da effettuare) e linee dati di uscita.operazione da effettuare) e linee dati di uscita.

-Capacità di controllo-Capacità di controllo-Registri (memoria di dimensioni limitate e rapido accesso)-Registri (memoria di dimensioni limitate e rapido accesso)

Registri:Registri:-Program counter (memorizza l’indirizzo della prossima -Program counter (memorizza l’indirizzo della prossima istruzione del programma da eseguire)istruzione del programma da eseguire)-Instruction Register (memorizza l’ultima istruzione caricata)-Instruction Register (memorizza l’ultima istruzione caricata)-Registri per il trasferimento dati da/verso la memoria-Registri per il trasferimento dati da/verso la memoria

*MAR (memory address register): specifica l’indirizzo *MAR (memory address register): specifica l’indirizzo di memoria da/verso cui avverrà la prossima lettura/scritturadi memoria da/verso cui avverrà la prossima lettura/scrittura*MBR (memory buffer register): contiene i dati che devono *MBR (memory buffer register): contiene i dati che devono essere scritti in memoria/che vengono letti dalla memoriaessere scritti in memoria/che vengono letti dalla memoria

-Registri per lo scambio di informazioni con dispositivi di I/O-Registri per lo scambio di informazioni con dispositivi di I/O*I/OAR specifica un determinato dispositivo di I/O*I/OAR specifica un determinato dispositivo di I/O*I/OBR usato per scambiare dati tra un modulo di I/O e il processore*I/OBR usato per scambiare dati tra un modulo di I/O e il processore

-Data register-Data registerUtilizzati per effettuare più velocemente operazioni sui datiUtilizzati per effettuare più velocemente operazioni sui dati

Page 32: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3232

ProcessoreProcessoreUn processore includeUn processore include– ALU (Unità Aritmetico-Logica)ALU (Unità Aritmetico-Logica)

Sottosistema che effettua le operazioni sui dati (aritmetiche –addizione, Sottosistema che effettua le operazioni sui dati (aritmetiche –addizione, sottrazione,…- e logiche –AND, OR,…-). Ha linee di ingresso (input), di sottrazione,…- e logiche –AND, OR,…-). Ha linee di ingresso (input), di controllo (per specificare il tipo di operazione da effettuare) e linee dati di controllo (per specificare il tipo di operazione da effettuare) e linee dati di uscita.uscita.

– Capacità di controlloCapacità di controllo– Registri (memoria di dimensioni limitate e rapido accesso)Registri (memoria di dimensioni limitate e rapido accesso)

Program counter (memorizza l’indirizzo della prossima istruzione del Program counter (memorizza l’indirizzo della prossima istruzione del programma da eseguire)programma da eseguire)Instruction Register (memorizza l’ultima istruzione caricata)Instruction Register (memorizza l’ultima istruzione caricata)Registri per il trasferimento dati da/verso la memoriaRegistri per il trasferimento dati da/verso la memoria

– MAR (memory address register): specifica l’indirizzo di memoria da/verso cui MAR (memory address register): specifica l’indirizzo di memoria da/verso cui avverrà la prossima lettura/scritturaavverrà la prossima lettura/scrittura

– MBR (memory buffer register): contiene i dati che devono essere scritti in MBR (memory buffer register): contiene i dati che devono essere scritti in memoria/che vengono letti dalla memoriamemoria/che vengono letti dalla memoria

Registri per lo scambio di informazioni con dispositivi di I/ORegistri per lo scambio di informazioni con dispositivi di I/O– I/OAR specifica un determinato dispositivo di I/OI/OAR specifica un determinato dispositivo di I/O– I/OBR usato per scambiare dati tra un modulo di I/O e il processoreI/OBR usato per scambiare dati tra un modulo di I/O e il processore

Data registerData register– Utilizzati per effettuare più velocemente operazioni sui datiUtilizzati per effettuare più velocemente operazioni sui dati

Page 33: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3333

MemoriaMemoriaUn modulo di memoria consiste in un insieme di locazioni di memoria. Le Un modulo di memoria consiste in un insieme di locazioni di memoria. Le locazioni di memoria hanno associati indirizzi crescentilocazioni di memoria hanno associati indirizzi crescenti

Tipicamente la memoria è volatile (il contenuto della memoria viene Tipicamente la memoria è volatile (il contenuto della memoria viene perso quando viene effettuato uno shut down del computer). La memoria perso quando viene effettuato uno shut down del computer). La memoria principale o primaria (es. RAM) e’ volatile. Esiste memoria secondaria principale o primaria (es. RAM) e’ volatile. Esiste memoria secondaria (es: disco rigido) che invece è non volatile.(es: disco rigido) che invece è non volatile. Esistono diversi tipi di memoria con diversi trade-off tra costo, capacità e Esistono diversi tipi di memoria con diversi trade-off tra costo, capacità e tempo di accessotempo di accesso– Tempo di accesso più veloce Tempo di accesso più veloce costo maggiore per bitcosto maggiore per bit– Capacita- maggiore Capacita- maggiore accesso più lento MA costo più bassoaccesso più lento MA costo più basso

Page 34: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3434

MemoriaMemoriaUn modulo di memoria consiste in un insieme di locazioni di memoria. Le Un modulo di memoria consiste in un insieme di locazioni di memoria. Le locazioni di memoria hanno associati indirizzi crescentilocazioni di memoria hanno associati indirizzi crescenti

Tipicamente la memoria è volatile (il contenuto della memoria viene Tipicamente la memoria è volatile (il contenuto della memoria viene perso quando viene effettuato uno shut down del computer). La memoria perso quando viene effettuato uno shut down del computer). La memoria principale o primaria (es. RAM) e’ volatile. Esiste memoria secondaria principale o primaria (es. RAM) e’ volatile. Esiste memoria secondaria (es: disco rigido) che invece è non volatile.(es: disco rigido) che invece è non volatile. Esistono diversi tipi di memoria con diversi trade-off tra costo, capacità e Esistono diversi tipi di memoria con diversi trade-off tra costo, capacità e tempo di accessotempo di accesso– Tempo di accesso più veloce Tempo di accesso più veloce costo maggiore per bitcosto maggiore per bit– Capacita- maggiore Capacita- maggiore accesso più lento MA costo più bassoaccesso più lento MA costo più basso

Memory Memory technologytechnology

Typical Typical access timeaccess time

$per GB(04)$per GB(04)

SRAMSRAM 0,5-5ns0,5-5ns $4000-$4000-$10000$10000

DRAMDRAM 50-70ns50-70ns $100-$200$100-$200

Magnetic diskMagnetic disk 5M-20Mns5M-20Mns $0,5-$2$0,5-$2

Page 35: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3535

Gerarchia di memoriaGerarchia di memoria

Si cerca un dato prima in livelli alti della gerarchia (ad esempio in cache). Si cerca un dato prima in livelli alti della gerarchia (ad esempio in cache). Se il dato si trova nei livelli alti della gerarchia (cosa che avviene una frazione Se il dato si trova nei livelli alti della gerarchia (cosa che avviene una frazione di volte denominata Hit Ratio) allora il tempo di accesso è rapido. Altrimenti di volte denominata Hit Ratio) allora il tempo di accesso è rapido. Altrimenti si paga il tempo di accesso maggiore associato ai livelli bassi si paga il tempo di accesso maggiore associato ai livelli bassi della gerarchia. Segreto: la Hit Ratio deve essere altadella gerarchia. Segreto: la Hit Ratio deve essere alta

-Costo/bit minore-Capacità >-Tempo di accesso >-Frequenza di accessoda parte del processoreminore

Page 36: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3636

Gerarchia di memoriaGerarchia di memoria

Un esempioUn esempio– Supponiamo che ci siano due livelli di memoria. Il Supponiamo che ci siano due livelli di memoria. Il

primo livello è in grado di memorizzare 1000 bytes ed primo livello è in grado di memorizzare 1000 bytes ed ha un tempo di accesso di 0.1ha un tempo di accesso di 0.1ss

– Il secondo livello è in grado di memorizzare 100.000 Il secondo livello è in grado di memorizzare 100.000 bytes ed ha un tempo di accesso di 1bytes ed ha un tempo di accesso di 1ss

– Il processore cerca prima il dato nel livello 1 di Il processore cerca prima il dato nel livello 1 di memoria. Se il dato è nel livello 2 si paga un ulteriore memoria. Se il dato è nel livello 2 si paga un ulteriore ritardo per trasferire dal livello 2 al livello 1. ritardo per trasferire dal livello 2 al livello 1.

– Supponiamo che il 95% delle volte il dato venga Supponiamo che il 95% delle volte il dato venga trovato al livello 1 (Hit Ratio =0.95). Il tempo medio di trovato al livello 1 (Hit Ratio =0.95). Il tempo medio di accesso è dato da:accesso è dato da:

(0.95) (0.1(0.95) (0.1s) + (0.05)(0.1s) + (0.05)(0.1s+ 1s+ 1s)= 0.15s)= 0.15ss

Vicino al tempo di accessoDella memoria più veloce !

Il segreto è nella Hit Ratio !!

T1+T2

T2

T1

Hit Ratio1Tempo di

accesso livello 1

Segreto: principio di località di riferimento Durante l’esecuzionedi un programma le locazioni di memoria accedute dal processore(dati/istruzioni) tendono ad essere correlateÈ possibile proattivamente passare dati tra i vari livelli della gerarchiain modo che siano nei livelli alti della gerarchia i dati e le istruzioniche con alta probabilità verranno acceduti dal processore in questomomento hit ratio elevata

Page 37: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3737

Gerarchia di memoriaGerarchia di memoria

M1:M1: Sarà possibile specificare che alcune variabili devono essere Sarà possibile specificare che alcune variabili devono essere memorizzate nei registri. Tuttavia i compilatori di solito sono in memorizzate nei registri. Tuttavia i compilatori di solito sono in grado anche più del programmatore di ottimizzare quali variabili grado anche più del programmatore di ottimizzare quali variabili dovrebbero essere memorizzate nei registri.dovrebbero essere memorizzate nei registri.

-Costo/bit minore-Capacità >-Tempo di accesso >-Frequenza di accessoda parte del processoreminore

Page 38: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3838

Componenti di un elaboratoreComponenti di un elaboratore

CPU

MEMORIA

Input Output

Scriviamo un programma. Il nostro programma deve essere caricato in memoriaprincipale per poter essere eseguito.Memoria deve poter essere allocata per le variabili usate dal programma (es. x1,x2,e/o variabili temporanee usate per fare conti)I valori di a11,a12,.. devono anche essere memorizzate in memoria e essere inserite da input si comincerà quindi ad eseguire il programma

Page 39: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

3939

Esecuzione di una istruzioneEsecuzione di una istruzioneIl processore legge l’istruzione dalla memoria Il processore legge l’istruzione dalla memoria (fetch) (fetch) /* program counter dice dove trovare la /* program counter dice dove trovare la prossima istruzione; Instruction Register prossima istruzione; Instruction Register conterra’ l’istruzione letta*/conterra’ l’istruzione letta*/

Esegue quindi l’istruzione Esegue quindi l’istruzione consideriamo il caso di un computer consideriamo il caso di un computer semplificatosemplificato in cui ogni in cui ogni istruzione occupa una parola di memoria (16 bit)istruzione occupa una parola di memoria (16 bit)

PC (program counter) ha memorizzato il valore 300PC (program counter) ha memorizzato il valore 300

Processore contiene un unico registro dei dati chiamato Processore contiene un unico registro dei dati chiamato accumulatore, di 16 bit (sia dati che istruzioni lunghi per accumulatore, di 16 bit (sia dati che istruzioni lunghi per ipotesi 16 bit)ipotesi 16 bit)

Formato delle istruzioni: 4 bit per tipo di istruzione (opcode), Formato delle istruzioni: 4 bit per tipo di istruzione (opcode), 12 bit restanti per altre info per poter eseguire l’istruzione12 bit restanti per altre info per poter eseguire l’istruzione

Azioni che possono essere effettuate nell’eseguire una istruzioneProcessore-Memoria: dei dati possono essere trasferiti dal processore alla memoriao dalla memoria al processoreProcessore-IO: dei dati possono essere trasferiti da o verso una perifericaProcessing dei dati: il processore può dover eseguire operazioni aritmetiche o logiche sui datiControllo: ad esempio il flusso di esecuzione puo’ essere modificato

Page 40: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4040

Un esempio…Un esempio…PC=300PC=300Si fa il fetch dell’istruzione Si fa il fetch dell’istruzione memorizzata nella locazione memorizzata nella locazione di memroia 300. Tale di memroia 300. Tale istruzione (1940 in istruzione (1940 in esadecimale) viene caricata esadecimale) viene caricata nell’IR.nell’IR.Per fare queste operazioni si Per fare queste operazioni si usano il MAR e il MBR come usano il MAR e il MBR come registri intermediregistri intermediIstruzione 1940Istruzione 1940– 1 (primi 4 bit) indica che 1 (primi 4 bit) indica che

carichiamo un nuovo valore carichiamo un nuovo valore dalla memoria dalla memoria nell’accumulatorenell’accumulatore

– L’indirizzo di memoria da L’indirizzo di memoria da cui prendere il valore è 940cui prendere il valore è 940

Passo 2 esegue tale Passo 2 esegue tale istruzioneistruzione

Page 41: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4141

Un esempio…Un esempio…PC=301PC=301Si fa il fetch dell’istruzione Si fa il fetch dell’istruzione memorizzata nella locazione memorizzata nella locazione di memoria 301. Tale di memoria 301. Tale istruzione (5941 in istruzione (5941 in esadecimale) viene caricata esadecimale) viene caricata nell’IR.nell’IR.Per fare queste operazioni si Per fare queste operazioni si usano il MAR e il MBR come usano il MAR e il MBR come registri intermediregistri intermediIstruzione 5941Istruzione 5941– 5 (primi 4 bit) indica che il 5 (primi 4 bit) indica che il

vecchio contenuto dell’AC vecchio contenuto dell’AC e la locazione di memoria e la locazione di memoria specificata devono essere specificata devono essere sommate (ed il risultato sommate (ed il risultato memorizzato nell’AC)memorizzato nell’AC)

– L’indirizzo di memoria da L’indirizzo di memoria da cui prendere il valore è 941cui prendere il valore è 941

Passo 2 esegue tale Passo 2 esegue tale istruzioneistruzione

Page 42: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4242

Un esempio…Un esempio…PC=302PC=302Si fa il fetch dell’istruzione Si fa il fetch dell’istruzione memorizzata nella locazione memorizzata nella locazione di memoria 302. Tale di memoria 302. Tale istruzione (2941 in istruzione (2941 in esadecimale) viene caricata esadecimale) viene caricata nell’IR.nell’IR.Per fare queste operazioni si Per fare queste operazioni si usano il MAR e il MBR come usano il MAR e il MBR come registri intermediregistri intermediIstruzione 2941Istruzione 2941– 2 (primi 4 bit) indica che il 2 (primi 4 bit) indica che il

contenuto dell’AC deve contenuto dell’AC deve essere copiato nella essere copiato nella locazione di memoria locazione di memoria specificataspecificata

– L’indirizzo di memoria in cui L’indirizzo di memoria in cui memorizzare il valore memorizzare il valore dell’AC è 941dell’AC è 941

Passo 2 esegue tale Passo 2 esegue tale istruzioneistruzione

Che cosa abbiamo fatto? Siano x e y due variabili memorizzate nelle locazioni940 e 941. Abbiamo semplicemente eseguito y=x+y;Complicato!! Dobbiamo programmare conoscendo cosi’da vicino i dettagli della macchina?No. Si programma in questo modo in linguaggio macchina. Per fortuna il C è un linguaggio ad alto livello…

URRA’

Page 43: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4343

CompilatoreCompilatoreL’elaboratore è in grado di comprendere ed eseguire direttamente L’elaboratore è in grado di comprendere ed eseguire direttamente programmi scritti in linguaggio macchinaprogrammi scritti in linguaggio macchinaIl linguaggio di programmazione che studieremo, il C, è un Il linguaggio di programmazione che studieremo, il C, è un linguaggio di alto livello. Diversamente dal linguaggio macchina, linguaggio di alto livello. Diversamente dal linguaggio macchina, difficile da usare, e che richiede una comprensione approfondita difficile da usare, e che richiede una comprensione approfondita dell’HW, i linguaggi ad alto livello consentono di esprimere in modo dell’HW, i linguaggi ad alto livello consentono di esprimere in modo del tutto naturale una serie di passi elementari che devono essere del tutto naturale una serie di passi elementari che devono essere compiuti dal programma. (compiuti dal programma. (complessità crescente del SW richiede complessità crescente del SW richiede linguaggi di alto livello efficaci e buona programmazionelinguaggi di alto livello efficaci e buona programmazione))

Occorre un traduttore che una volta scritto in un linguaggio ad alto Occorre un traduttore che una volta scritto in un linguaggio ad alto livello un programma traduca questo programma in linguaggio livello un programma traduca questo programma in linguaggio macchina. Tale compito di traduzione è svolto dal compilatore del macchina. Tale compito di traduzione è svolto dal compilatore del linguaggio (es. da gcc, compilatore C).linguaggio (es. da gcc, compilatore C).

Page 44: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4444

Linguaggi di alto livello vs. Linguaggi di alto livello vs. linguaggio macchina (un esempio)linguaggio macchina (un esempio)

Task: Sommare straordinari a paga base per ottenere lo Task: Sommare straordinari a paga base per ottenere lo stipendio lordostipendio lordo Linguaggio macchina (dipende dal tipo di computer ed è Linguaggio macchina (dipende dal tipo di computer ed è difficile da programmare)difficile da programmare)+1300042774+1300042774+1400593419+1400593419+ 1200274027+ 1200274027 Assembly languageAssembly languageLOAD BASEPAYLOAD BASEPAYADD OVERPAYADD OVERPAYSTORE GROSSPAYSTORE GROSSPAY Linguaggio ad alto livelloLinguaggio ad alto livellogrossPay = basePay + overTimePay;grossPay = basePay + overTimePay;

Page 45: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4545

Page 46: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4646

Componenti di un elaboratoreComponenti di un elaboratore

CPU

MEMORIA

Input Output

Scriviamo un programma. Il nostro programma deve essere caricato in memoriaprincipale per poter essere eseguito. L’utente scrive il programma in un linguaggio ad alto livello. Prima dell’esecuzione del programma il programma viene compilato ottenendo un eseguibile in linguaggio macchina, che il calcolatore comprende… Si comincia quindi ad eseguire il programma…

Page 47: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4747

Fasi della compilazioneFasi della compilazioneEditor Disco

Disco

Disco

Disco

Memoria

Memoria

Disco

Il programma viene scritto con un editor e salvato sul disco rigido

Preprocessore

Inserisce .h di librerie, sostituisce MACRO, sostituisce costantisimboliche

Compilatore

Traduce in inguaggioMacchina. Crea un codice oggetto e lo memorizza su disco

LinkerIl linker inserisce nel codice oggetto il codicerelativo a chiamate a libreria. Produce e memorizza su disco uneseguibile.

a.out

primoprogramma.c

Invocati automaticamente

dagcc primoprogramma.c

Loader

CPU

Carica il programma inmemoria

Il programmavieneeseguito

DEBUGGING

Page 48: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4848

Componenti di un elaboratoreComponenti di un elaboratore

CPU

MEMORIA

Input Output

Al termine dell’esecuzione del programma tale programma stamperà se il sistemadi equazioni lineari ha una soluzione, è inconsistente o ha infinite soluzioni. Seha una soluzione il valore sarà memorizzato in x1 e x2 e questo valore verràfornito in output all’utente (su schermo o stampato tramite stampante, o stampatosu file,..)

Le risorse di un calcolatore possono essere condivise da più utenti o da piùprogrammi. Chi decide quale programma eseguire, quali risorse dedicare all’esecuzionedel programma (ad esempio dove memorizzare le variabili del programma etc.?)

Page 49: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

4949

Sistema OperativoSistema Operativo

HW (processore, memoria, I/O device)

Sistema Operativo (Linux, MACOS, Windows)

Programmi applicativi (compilatori, editor di testo, Video games,…)

utenteutenteutente

Controlla e coordinal’uso dell’HW da parte deivari programmi applicativi

Vedrete il laboratorio come si lavora da utente su Linux, il gcc (compilatore C della GNU) e vi (editor di testo)

Abbiamo già visto comeL’informatica richiedaLa conoscenza delle

-architetture-programmazione

-algoritmi-compilatori

-sistemi operativi

Page 50: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

5050

Dai mainframe all’ubiquitous computingDai mainframe all’ubiquitous computingDimensioni e costo decrescente dell’HW hanno Dimensioni e costo decrescente dell’HW hanno fatto si che si passasse dai mainframe ai fatto si che si passasse dai mainframe ai personal computer prima (anni 80’) e che personal computer prima (anni 80’) e che l’evoluzione consentisse di inserire capacità di l’evoluzione consentisse di inserire capacità di calcolo (e comunicazione) all’interno di tutte gli calcolo (e comunicazione) all’interno di tutte gli oggetti che ci circondano (ubiquitous computing)oggetti che ci circondano (ubiquitous computing)

Gli elaboratori non sono più stand–alone ma Gli elaboratori non sono più stand–alone ma possono comunicare tramite reti che li possono comunicare tramite reti che li interconnettono (rendendo possibile una interconnettono (rendendo possibile una computazione distribuita)computazione distribuita)

Page 51: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

5151

……Struttura del corso di laurea Struttura del corso di laurea

HW

Sistema Operativo

Programmi applicativi

utenteutenteutente

HW

Sistema Operativo

Programmi applicativi

utenteutenteutente

HW

Sistema Operativo

Programmi applicativi

utenteutenteutente

HCI

Architettura I, II

Compilatori, SO (1 e 2)Programmazione (1,2,lab)

RETI

Architettura di InternetProgram. di rete (+ lab)Reti avanzateSviluppo e ottimizzazione di sistemi wirelessProgettazione di reti

Specifica del problemaAlgoritmoCodifica

Debugging/testing

(competenze già emerse come necessarie nella prima lezione di prog1…)

Algoritmi (1,2…)Ingegneria del SW

Page 52: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

5252

Programma di questo corsoProgramma di questo corso

Imparare a programmare in linguaggio CImparare a programmare in linguaggio C

Specifica del problema

Identificazione dell’algoritmo per Risolvere il problema (diagramma

di flusso)

Codifica in C

Debugging e Testing Verifica di correttezzadel programma

Page 53: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

5353

Informazioni generali (1)Informazioni generali (1)

Docente: Prof.ssa Chiara PetrioliDocente: Prof.ssa Chiara Petrioli– Lezioni in AULA 1 NEC di Chimica il lunedì Lezioni in AULA 1 NEC di Chimica il lunedì

(10.30-12.30) e giovedì (8.30-10.30)(10.30-12.30) e giovedì (8.30-10.30)– Ricevimento : lunedì o giovedì (da stabilire)Ricevimento : lunedì o giovedì (da stabilire)– per sapere di più sulla mia attività di ricerca per sapere di più sulla mia attività di ricerca

mia pagina personale mia pagina personale http://reti.dsi.uniroma1.it/eng/petrioli/chiara-http://reti.dsi.uniroma1.it/eng/petrioli/chiara-petrioli.htmlpetrioli.html

– Esercitatore: Dott. Paul Wollan e Toni Mancini Esercitatore: Dott. Paul Wollan e Toni Mancini (laboratorio AST mercoledì 8.30-11.30)(laboratorio AST mercoledì 8.30-11.30)

Page 54: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

5454

Informazioni generali (2)Informazioni generali (2) Libri di testoLibri di testo– Deitel & Deitel “C: How to Program”, Prentice Hall Deitel & Deitel “C: How to Program”, Prentice Hall

(meglio abituarsi a studiare sui testi originali)(meglio abituarsi a studiare sui testi originali)

Materiale di consultazioneMateriale di consultazione– A mano a mano disponibile sul sito. Prime lezioni: A mano a mano disponibile sul sito. Prime lezioni:

Lucidi, cap. 2 del Preparata di architetture (prime 5-6 Lucidi, cap. 2 del Preparata di architetture (prime 5-6 pagine), Stallings di Sistemi Operativi, cap 1 pagine), Stallings di Sistemi Operativi, cap 1 sull’organizzazione di un calcolatore.sull’organizzazione di un calcolatore.

Sito del corso:Sito del corso:– andate su twiki.di.uniroma1.itandate su twiki.di.uniroma1.it

Laurea triennale, fondamenti di programmazione A-DLaurea triennale, fondamenti di programmazione A-D

Page 55: Prof. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010 1 Corso di Fondamenti di Programmazione a.a.2009/2010 (A-D) Prof.ssa Chiara.

Prof. Chiara Petrioli, Corso di FondameProf. Chiara Petrioli, Corso di Fondamenti di Programmazione, a.a. 2009/2010nti di Programmazione, a.a. 2009/2010

5555

Informazioni generali (3)Informazioni generali (3) Esame:Esame:– Scritto (domande/ esercizi).Scritto (domande/ esercizi).

Quest’anno non ci sarà interruzione per gli esoneriQuest’anno non ci sarà interruzione per gli esoneri Quanti gli studenti che vorrebbero un esonero?Quanti gli studenti che vorrebbero un esonero?

– Verbalizzazione dello scritto oppure scritto + orale Verbalizzazione dello scritto oppure scritto + orale (orale necessario per la lode o per verbalizzare voti (orale necessario per la lode o per verbalizzare voti superiori al 28)superiori al 28)

– Homework bisettimanali, da fare possibilmente in Homework bisettimanali, da fare possibilmente in laboratorio (6 punti dell’esame finale vengono da laboratorio (6 punti dell’esame finale vengono da homework o prova di laboratorio). Chi non dovesse fare homework o prova di laboratorio). Chi non dovesse fare gli Homework dovra’ sostenere un esame di gli Homework dovra’ sostenere un esame di laboratorio.laboratorio.

– Un messaggio esplicito: Un messaggio esplicito: seguite le lezioni in aula, seguite le lezioni in aula, studiate ed esercitatevi al calcolatore, sfruttate tutte le studiate ed esercitatevi al calcolatore, sfruttate tutte le opportunita’ (esercitatori, laboratorio, ricevimento, opportunita’ (esercitatori, laboratorio, ricevimento, prove intermedie) per apprendere, chiarirvi i dubbi e prove intermedie) per apprendere, chiarirvi i dubbi e passare immediatamente l’esame. Non rimanete passare immediatamente l’esame. Non rimanete indietroindietro! !