Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Introduzione alla programmazione
L'Informatica (Computer Science) è la scienza che si occupa dello studio della rappresentazione e manipolazione dell'informazione. Un computer è una macchina che immagazzina dati, interagisce con dispositivi ed esegue programmi. I programmi descrivono a un computer la sequenza di passi che devono essere eseguiti per portare a compimento un'attività o risolvere un problema. In un computer, distinguiamo i componenti hardware, la parte fisica di un calcolatore e i suoi dispositivi periferici, da quelli software, costituiti dai programmi che vengono eseguiti dall'hardware e dai dati, le informazioni su cui lavorano i programmi. Microsoft Word, i giochi elettronici, i sistemi operativi e i driver dei dispositivi sono tutti software. Il software è una sequenza di istruzioni e decisioni implementati in qualche linguaggio e tradotta in forma che possa essere eseguita nel computer. Il software gestisce i dati.utilizzerà per eseguire le istruzioni. La memoria del computer è divisa in diverse parti, tra cui la memoria principale (RAM) e la memoria di archiviazione (disco rigido o SSD). La RAM è una memoria volatile, il che significa che i dati vengono persi quando il computer viene spento, mentre la memoria di archiviazione è non volatile e conserva i dati anche quando il computer è spento. I programmi vengono scritti utilizzando un linguaggio di programmazione, come ad esempio C++, Java o Python. Questi linguaggi consentono ai programmatori di scrivere istruzioni in un formato comprensibile per il computer. Una volta scritto il programma, viene compilato in un linguaggio macchina, che può essere eseguito direttamente dalla CPU. La programmazione richiede una buona conoscenza dei concetti di base della logica e dell'algoritmo. Gli algoritmi sono una sequenza di passi che risolvono un determinato problema. I programmatori devono essere in grado di analizzare un problema, progettare una soluzione e implementarla utilizzando il linguaggio di programmazione appropriato. La programmazione è una disciplina in continua evoluzione, con nuovi linguaggi e tecnologie che vengono sviluppati costantemente. È una competenza molto richiesta nel mondo del lavoro, poiché i computer sono diventati parte integrante di molte attività quotidiane. In conclusione, la programmazione è l'arte di creare programmi per computer utilizzando un linguaggio di programmazione. Richiede conoscenze di logica, algoritmi e linguaggi di programmazione ed è una competenza molto richiesta nel mondo del lavoro.possa leggere. Esistono due tipi di memoria: - La memoria principale (o primaria o interna o RAM) è costituita da chip di memoria, circuiti elettronici che, quando alimentati da energia elettrica, sono in grado di memorizzare dati; è volatile. - La memoria secondaria, che generalmente è un disco rigido (hard disk), consente una registrazione dei dati più lenta ma meno costosa, che perdura anche in assenza di alimentazione elettrica. Un disco rigido è formato da piatti rotanti, rivestiti da materiale magnetico, e da testine di lettura/scrittura, in grado di leggere e di modificare il flusso magnetico sui piatti. Un computer memorizza dati e programmi. Entrambi si trovano nella memoria secondaria e vengono caricati nella memoria principale nel momento in cui inizia l'esecuzione di uno specifico programma, il quale, poi, aggiorna i dati nella memoria principale e li archivia, così modificati, nella memoria secondaria, mentre alcune istruzioni del programma vengono eseguite.Per interagire con un utente umano, un computer ha bisogno di dispositivi periferici: trasmette le informazioni (in uscita, output) mediante uno schermo di visualizzazione, gli altoparlanti e le stampanti. L'utente può fornire informazioni (in ingresso, input) al computer tramite una tastiera o un dispositivo di puntamento, quale mouse. Le istruzioni e gli input dell'utente determinano l'esecuzione del programma.
Alcuni computer sono unità autosufficienti, mentre altri sono connessi tra loro tramite reti. Attraverso la connessione alla rete, il computer può leggere dati e programmi da un dispositivo di archiviazione remoto o inviare dati ad altri computer.
archiviazionecentralizzato oppure inviare dati ad altri computer.
Data center = centri di elaborazione dei dati
Ubiquitous computing = elaborazione diffusa
La programmazione consiste nello scrivere un «documento» (file sorgente) che descrive la soluzione al problema considerato.
Linguaggi di programmazione di alto livello = linguaggio di programmazione caratterizzato da una significativa astrazione dai dettagli del funzionamento di un calcolatore e dalle caratteristiche del linguaggio macchina. Il livello di astrazione definisce quanto sia di "alto livello" un linguaggio di programmazione. Le istruzioni ad alto livello vengono poi tradotte in modo automatico nelle più dettagliate istruzioni che sono necessarie alla CPU.
Un assembler è un software che trasforma le istruzioni mnemoniche dell'assembly in linguaggio macchina. Si tratta dunque di un compilatore (traduttore) per un particolare linguaggio assembly. Gli elementi del linguaggio sono istruzioni microarchitetturali.
Fortemente dipendenti dall'hardware; es. linguaggioAssembler
del microprocessore Intel Core
Un pacchetto (o modulo) contiene codice dedicato a risolvere problemi in un dominio specifico.
Il linguaggio Python
All'inizio degli anni '90 Guido van Rossum progettò ciò che sarebbe diventato il linguaggio di programmazione Python. Van Rossum non era soddisfatto dei linguaggi esistenti: erano ottimizzati per scrivere grandi programmi, eseguibili in modo efficiente, ma lui voleva un linguaggio che permettesse di creare rapidamente i programmi, ma anche modificarli in modo semplice.
- Python è progettato per avere una sintassi più semplice e pulita degli altri linguaggi come Java, C and C++ (più facile da apprendere).
- L'ambiente Python aveva un approccio "batterie comprese", offrendo subito la disponibilità di molte funzioni utili in modo standard.
- Python è interpretato, rendendo più facile lo sviluppo ed iltest di brevi programmi- I programmi Python sono eseguiti dall'interprete Python: l'interprete legge il programma e lo esegue
Molti computer mettono a disposizione un ambiente di sviluppo integrato (IDE, Integrated Development Environment), nel quale scrivere e collaudare i programmi. In altri occorre per prima cosa mettere in esecuzione un editor di testo, cioè un programma che funziona in modo analogo a un word processor ("elaboratore di testi"), dove si scrivono le istruzioni in linguaggio Phyton, per poi aprire una finestra di terminale, in sui scrivere i comandi che eseguono il programma.
Pycharm è un IDE.
L'interprete Phyton legge i programmi Phyton e ne esegue le istruzioni (enunciati). La fase di lettura e interpretazione delle istruzioni, che richiede tempo, viene eseguita una volta sola, da un componente detto compilatore. Il compilatore legge il file contente il codice sorgente e traduce le istruzioni in byte code, un insieme di istruzioni
estremamente elementari che possono essere comprese da una macchina virtuale, un altro programma che ha un comportamento analogo a quello della CPU di un computer.
Compilazione = processo di trasformazione delle istruzioni in una forma eseguibile.
Dopo che il compilatore ha tradotto il programma in istruzioni per la macchina virtuale, queste vengono eseguite da essa ogni volta che lo desideriamo.
Un errore di compilazione è una violazione delle regole del linguaggio di programmazione identificata durante la traduzione in formato eseguibile. Si verifica un'eccezione quando un'istruzione è sintatticamente corretta, ma non può essere eseguita. Un errore di esecuzione (o logico) è un errore che avviene durante l'esecuzione del programma, che produce risultati inattesi.
Il codice sorgente non contiene tutte le informazioni di cui ha bisogno la macchina virtuale, per cui la macchina virtuale recupera tali funzioni da moduli di libreria.
Python è
Lo pseudocodice è una descrizione informale di una sequenza di passi che portano alla soluzione di un problema. Un algoritmo che risolve un problema è una sequenza di passi non ambigua, eseguibile e che termina in un tempo finito. L'esistenza di un algoritmo è prerequisito essenziale per la programmazione.
Da soluzione formale (flowchart o pseudocodice) a soluzione informale (programma):
- Determinare i dati disponibili (ingressi) e i risultati da produrre (uscite)
- Scomporre il problema in compiti più semplici
- Descrivere ciascun sotto-problema mediante pseudocodice
- Collaudare lo pseudocodice in casi specifici
Data science = analisi dei dati. Data mining = scoperta di schemi (pattern) ricorrenti e relazioni all'interno di enormi quantità di dati. Usando strumenti matematici si possono identificare gruppi di dati tra loro correlati (cluster) e metodi statistici consentono di classificarli, raggruppandoli in diverse categorie.
Le azioni di datamining sono utili anche per individuare comportamenti anomali.
Machine learning = apprendimento automatico, un settore che progetta sistemi che tentano di riprodurre meccanismi di elaborazione del cervello umano → reti neurali
Architettura degli elaboratori
Elaboratore = sistema in grado di acquisire informazioni, eseguire e produrre risultati
I blocchi fondamentali dell'elaboratore
Sistema di elaborazione = Unità I/O + Unità centrale (CPU) + Memoria
L'elaboratore ha due componenti:
- Digitale: in cui i dati sono espressi mediante sistema binario. Le operazioni sono scandite dal tempo, cioè seguono delle fasi temporali; e il tempo è scandito da un segnale che si chiama clock. Fa quindi funzionare i circuiti attraverso modifiche di segnale che dipendono da un sincronismo.
- Circuiti elettronici: svolgono funzioni che lavorano su segnali che hanno un certo valore elettrico (livelli di tensione) che viene tradotto e convertito in valore
- Unità di elaborazione ("microprocessore"): contiene i circuiti per l'esecuzione