Sei sulla pagina 1di 28

Introduzione

Nell’immaginario collettivo
• Ingegnere Meccanico

2
Nell’immaginario collettivo
• Ingegnere Gestionale

3
Nell’immaginario collettivo
• Ingegnere Matematico

4
Nell’immaginario collettivo
• Ingegnere Informatico

5
Informazioni Generali
• Docente:
– Alessandro Campi
e-mail: campi@elet.polimi.it
– Dip. di Elettronica e Informazione (DEI)
ufficio n° 141 [1° piano, (molto) in fondo a sinistra]
tel. 3644 (dall’esterno: +39-02-2399-3644)

6
Informazioni Generali
• Esame:
– Due prove in itinere (17+17 punti)
• Entrambe devono essere “sommabili” [voto >= 8]
– 34 punti (più eventuali bonus)
• Solo chi supera la prima può fare la seconda
– Tre appelli regolari (34 punti)
• Su tutto il programma [soglia: voto >= 18]
• Come da calendario di facoltà

7
Libri
• Testo di riferimento: D.Mandrioli, S.Ceri, L.Sbattella, P. Cremonesi, G.
Cugola: “Informatica: arte e mestiere”, McGraw-Hill
• Altri testi, eserciziari e manuali vari di C:
– Jeri R. Hanly, Elliot B. Koffman: Problem solving e
programmazione in C
[graduale e completo, adatto a chi parte da zero]
– D. Braga, D. Martinenghi: Fondamenti di Informatica, Temi
d’esame risolti – ed. Esculapio
– A. Bellini, A. Guidi: Linguaggio C - Guida alla programmazione –
ed. McGraw-Hill [graduale e completo, adatto a chi parte da zero]
– B. Kernighan, D. Ritchie: “Linguaggio C [ANSI C]”, ed. Jackson Libri [il
testo (tosto) di chi il C lo ha inventato – insegna tutto sul C, ma non
insegna a programmare]
– C. Bellettini et al.: “Linguaggio C: Esercizi e Temi d’Esame Risolti”, ed.
Esculapio, Progetto Leonardo
– Altri testi... vanno bene tutti, e nessuno è perfetto

8
Sito Web del corso
• Si entra nel sito CorsiOnLine del
Politecnico di Milano
– http://corsi.metid.polimi.it
– matricola e password (la stessa del webpoliself)
• Informatica B (Alessandro Campi)
• Pagina principale  Contenuti del corso
– probabilmente ci saranno tutte le risposte, ma...

9
Ricevimento studenti
• Orario di ricevimento
– In ufficio, lo trovate sul sito del Politecnico
– In aula, finita la lezione
• MA il modo migliore (e più sicuro) per essere ricevuti e
ascoltati è fissare un appuntamento (via e-mail)
– Scrivendo in modo sintetico ma chiaro [non un sms lungo]
• Identificandosi precisamente [nome, matricola, corso]
• Spiegando brevemente lo scopo dell’incontro
– chiarimenti didattici su..., problemi amministrativi per..., etc.
• Dando all’e-mail un subject sintetico ma preciso
– Es: “Richiesta colloquio per chiarimenti InfoB (Rossi, 623372)”
– Indicando le proprie disponibilità per i 3-5 giorni successivi
• così non vi si convoca quando avete lezione, visite mediche, …
• Inoltre, se i quesiti ammettono risposta via e-mail...
... l’interazione più efficace è proprio l’e-mail!

10
Questo corso....
• È un corso difficile
• Contrariamente ad altri corsi, però, può
sembrare facile
• Quindi è ancora più difficile

• Tutte le nozioni, prese individualmente,


sono molto semplici
– Combinarle “ad arte”, però, è difficile

11
Le fissazioni del docente
• Non è la stessa cosa
– Venire in aula e seguire o venire in aula e chiacchierare
– Essere proattivi o non esserlo
– Vivere il momento presente o vivere aspettando sempre qualcos’altro
• Quello che fa la differenza sono i particolari
– Non esiste “quasi giusto”, o è corretto o è sbagliato
• Si parla uno alla volta
– Potete fare tutte le domande che volete, anzi, vi sollecito a dirmi quando
non avete capito o quando corro troppo o finisco il programma tra 10
giorni
– Ma non riesco a spiegare se c’è brusio di sottofondo
• Non dite mai “Questa cosa per me è impossibile”
– Kennedy, guardando la Luna, non disse “è troppo lontana”

12
Che cos’è l’informatica?
definizioni spontaneamente proposte dagli allievi

13
Perché studiare informatica?
• Perché l’informatica è, a livello
mondiale, uno dei maggiori settori
industriali, e ha importanza strategica
• Perché, oltre ad essere una tecnologia
primaria, è una tecnologia abilitante
per altre tecnologie e per altri settori
industriali
• Per capire la società dell’informazione

14
Che cos’è l’Informatica?
È la scienza che si occupa della
rappresentazione dell’informazione e
della sua elaborazione e gestione

• non solo la tecnologia dei calcolatori, ma


anche il modo in cui l’informazione viene
strutturata ed elaborata automaticamente
– differente da altre attività meno formalizzate (es: il
giornalismo) che pure trattano informazioni

15
Che cos’è l’Informatica?
• Scienza: approccio rigoroso e sistematico
• Informazione: è parte di ogni attività umana
• Rappresentazione: astrarre i concetti
importanti da quelli trascurabili, per modellare
opportunamente la realtà di interesse:
– occorre studiare metodi di rappresentazione appropriati
all’elaborazione da parte di una macchina digitale
• Elaborazione e Gestione: uso e
trasformazione dell’informazione in modo
funzionale agli obiettivi

16
Che cos’è l’Informatica?
È lo studio sistematico degli algoritmi
che descrivono e trasformano
l’informazione: la loro teoria, analisi,
progetto, efficienza, realizzazione e
applicazione

• Definizione dell’ACM
– Association for Computing Machinery
– la principale organizzazione che riunisce
ricercatori e professionisti informatici

17
Che cos’è l’Informatica?
È l’arte di programmare i
calcolatori elettronici

• “Definizione” di Donald E. Knuth


– “The Art of Computer Programming”
• 1963  1968  1973  2005  ...
• http://www-cs-faculty.stanford.edu/~knuth/

18
Programmare significa...
Scrivere programmi1 in un linguaggio artificiale2, rigoroso e
comprensibile ad un esecutore3, con i quali implementiamo4 gli
algoritmi5 che riteniamo6 risolvano i problemi di cui abbiamo
creato un modello7

(1) collezioni di istruzioni


(2) in questo corso: il C
(3) in questo corso: la macchina astratta C
(4) realizziamo, codifichiamo, traduciamo…
(5) sequenze finite di passi elementari
(6) nel caso generale, NON ci sono garanzie!
(7) opportuna “semplificazione” (astrazione) dei problemi reali

Programmare è un atto creativo


19
Programmiamo!
• Impariamo un linguaggio di programmazione:
– Il linguaggio C (standard ANSI)
– Usiamo il C per codificare algoritmi
ma soprattutto...
• Impariamo come si imposta un programma:
– L’astrazione necessaria
– I tipi di dati e le strutture dati opportuni
– Le strutture di controllo e gli algoritmi

20
I Calcolatori Elettronici
• Strumenti in grado di eseguire
operazioni non complesse

Modello attuale:
– Capacità di scelta
• possibilità di compiere azioni diverse in base allo stato
interno del sistema
– Funzionalità programmata
• capacità di modificare il proprio comportamento in base
al programma
– Dispositivi digitali
• basati su grandezze rappresentate su domini discreti,
non continui (oggi tutti binari)

21
I Modelli dei Calcolatori
• Macchina di Turing (1936):
– Modello teorico legato alla logica matematica
• Macchina di von Neumann (194346)
– Calcolatore reale (ENIAC, foto ) dotato di capacità
di scelta, di funzionalità programmata e digitale
• Digitale, ma non binario bensì decimale
– Calcola esattamente le stesse funzioni della MdT !
(purché dotato di memoria sufficientemente grande)

22
Macchina di von Neumann
• Di tipo sequenziale: può elaborare una sola
istruzione per volta
• Oggi esistono altri modelli di computazione
(es.: le macchine parallele)
– Tutti computano esattamente le stesse funzioni !!

• Altri tipi di calcolatore (paralleli, analogici,


ottici, quantistici, molecolari, …)

23
La Macchina di von Neumann
• L’Unità Centrale
(CPU) MM
• La Memoria Centrale
(RAM)
RAM
• La Memoria di Massa
(MM) CPU BUS
• Il Bus di Sistema UP1
(BUS)
..
• Le Unità Periferiche .
(UPi) UPN

24
Architettura del Calcolatore:
Componenti Hardware
• Unità Centrale (CPU, o processore)
• Memoria Centrale (spesso tecnologia RAM)
• Memoria di Massa (dischi, chiavette, nastri, …)
• Unità Periferiche (monitor, casse, tastiera, …)
• Bus di Sistema (canale di comunicazione)

• Reti di Calcolatori
– canali di comunicazione a livello superiore

Qual è il linguaggio della macchina?


In buona approssimazione, l’aritmetica binaria

25
Architettura del Calcolatore:
Software di Sistema
• Il sistema operativo
• I sistemi di gestione di basi di dati
• Il software di rete
• Gli ambienti di programmazione:
– editor, compilatori, assemblatori, traduttori,
collegatori, debugger, … strumenti CASE, IDE
• Gli strumenti di produttività:
– videoscrittura, fogli elettronici, strumenti per la
produzione di “slide”, strumenti per la produzione
di ipertesti…

26
Architettura del Calcolatore:
Software Applicativo
• Gestionale
– sistemi informativi aziendali, elaborazione paghe, fatturazione,
automazione del terziario, ..., automazione d’ufficio
• Applicazioni numeriche
– meteorologia, applicazioni statistiche, …
• Telematico
– terminali bancari, prenotazioni aeree, …, Internet, ...
• Automazione industriale
– CAD/CAM, CAE, robotica, CIM, …
• Controllo di processi
– Impianti chimici, centrali elettriche e nucleari, traffico aereo…
• Realtà virtuale, interfacce utente, software multimediale

27
Von Neumann e l’ENIAC

28