Questo volume, versione ridotta dell’affermato manuale “Concetti di informatica e fondamenti di Python”, presenta i principi di base della programmazione con l’utilizzo di Python, un linguaggio molto diffuso tra i professionisti grazie alla sua potenza e semplicità sintattica, e di uso sempre più frequente anche in ambito universitario.
Il testo accompagna il lettore all’acquisizione degli strumenti concettuali classici della programmazione strutturata.
La presentazione dei concetti è arricchita da casi svolti che permettono di elaborare strategie di problem-solving, esercizi di approfondimento teorico graduati per difficoltà e numerosi problemi di programmazione.
Il libro è un ideale riferimento per un corso introduttivo di programmazione basato su Python; per la sua particolare chiarezza ed efficacia didattica è anche un ottimo strumento di apprendimento in autonomia.
Capitolo 1 - Introduzione
1.1 Computer e programmi
1.2 L'anatomia di un computer
1.3 Il linguaggio di programmazione Python
1.4 L'ambiente di programmazione
1.5 Analisi del primo programma
1.6 Errori
1.7 Soluzione di problemi: progettazione di algoritmi
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 2 - Programmare con numeri e stringhe
2.1 Variabili
2.1.1 Definire variabili
2.1.2 Tipi di numeri
2.1.3 Nomi delle variabili
2.1.4 Costanti
2.1.5 Commenti
2.2 Aritmetica
2.2.1 Operatori aritmetici elementari
2.2.2 Potenze
2.2.3 Divisione intera e resto
2.2.4 Invocare funzioni
2.2.5 Funzioni matematiche
2.3 Soluzione di problemi: prima lo si fa a mano
2.4 Stringhe
2.4.1 Il tipo di dato stringa
2.4.2 Concatenazione e ripetizione
2.4.3 Conversioni tra numeri e stringhe
2.4.4 Stringhe e caratteri
2.4.5 Metodi per stringhe
2.5 Dati in ingresso e in uscita
2.5.1 Dati forniti in ingresso dall'utente
2.5.2 Dati in ingresso di tipo numerico
2.5.3 Impaginazione dei risultati
2.6 Grafica: semplici disegni
2.6.1 Creare una finestra
2.6.2 Linee e poligoni
2.6.3 Colori e riempimento di forme
2.6.4 Ovali, cerchi e testi
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 3 - Decisioni
3.1 L'enunciato if
3.2 Operatori relazionali
3.3 Diramazioni annidate
3.4 Alternative multiple
3.5 Soluzione di problemi: diagrammi di flusso
3.6 Soluzione di problemi: casi di prova
3.7 Variabili booleane e operatori
3.8 Analisi di stringhe
3.9 Applicazione: validità dei dati in ingresso
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 4 - Cicli
4.1 Il ciclo while
4.2 Soluzione di problemi: tenere traccia dell'esecuzione
4.3 Applicazione: elaborazione di valori sentinella
4.4 Soluzione di problemi: storyboard
4.5 Algoritmi che usano cicli
4.5.1 Calcolo di somma e valor medio
4.5.2 Conteggio di valori che soddisfano una condizione
4.5.3 Richiesta ripetuta fino al raggiungimento di un obiettivo
4.5.4 Valore massimo e minimo
4.5.5 Confronto di valori consecutivi
4.6 Il ciclo for
4.7 Cicli annidati
4.8 Elaborare stringhe
4.8.1 Contare le corrispondenze
4.8.2 Trovare tutte le corrispondenze
4.8.3 Trovare la prima o l'ultima corrispondenza
4.8.4 Determinare se una stringa è valida
4.8.5 Costruire una nuova stringa
4.9 Applicazione: numeri casuali e simulazioni
4.9.1 Generare numeri casuali
4.9.2 Simulare lanci di un dado
4.9.3 Il metodo Monte Carlo
4.10 Grafica: elaborazione di immagini digitali
4.10.1 Applicazione di filtri
4.10.2 Apportare modifiche a un'immagine
4.11 Soluzione di problemi: iniziare con un caso semplice
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 5 - Funzioni
5.1 Funzioni come scatole nere
5.2 Realizzazione e collaudo di funzioni
5.2.1 Realizzazione di una funzione
5.2.2 Collaudo di una funzione
5.2.3 Programmi che contengono funzioni
5.3 Passaggio di parametri
5.4 Valori restituiti
5.5 Funzioni che non restituiscono un valore
5.6 Soluzione di problemi: funzioni riutilizzabili
5.7 Soluzione di problemi: miglioramenti successivi
5.8 Ambito di visibilità delle variabili
5.9 Grafica: progettazione di strumenti per l'elaborazione d'immagini
5.9.1 Per iniziare
5.9.2 Confrontare immagini
5.9.3 Modificare la luminosità di un'immagine
5.9.4 Ruotare un'immagine
5.9.5 Usare il toolkit
5.10 Funzioni ricorsive (argomento facoltativo)
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 6 - Liste
6.1 Proprietà basilari delle liste
6.1.1 Creazione di una lista
6.1.2 Accesso agli elementi di una lista
6.1.3 Scansione di una lista
6.1.4 Riferimenti a una lista
6.2 Operazioni con le liste
6.2.1 Aggiungere elementi
6.2.2 Inserire un elemento
6.2.3 Cercare un elemento
6.2.4 Eliminare un elemento
6.2.5 Concatenazione e replicazione
6.2.6 Verifica di uguaglianza
6.2.7 Somma, massimo, minimo e ordinamento
6.2.8 Copiatura
6.3 Algoritmi elementari che operano su liste
6.3.1 Riempimento
6.3.2 Elaborazione di tutti gli elementi
6.3.3 Separatori tra elementi
6.3.4 Massimo e minimo
6.3.5 Ricerca lineare
6.3.6 Raccolta e conteggio di corrispondenze
6.3.7 Eliminazione di corrispondenze
6.3.8 Scambio di elementi
6.3.9 Acquisizione di dati
6.4 Utilizzo di liste nelle funzioni
6.5 Soluzione di problemi: adattamento di algoritmi
6.6 Soluzione di problemi: scoprire algoritmi facendo esperimenti concreti
6.7 Tabelle
6.7.1 Creazione di tabelle
6.7.2 Accesso agli elementi
6.7.3 Individuazione degli elementi adiacenti
6.7.4 Sommare righe e colonne
6.7.5 Funzioni che usano tabelle
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 7 - Eccezioni e file
7.1 Leggere e scrivere file di testo
7.1.1 Aprire un file
7.1.2 Leggere un file
7.1.3 Scrivere un file
7.1.4 Un esempio di elaborazione di file
7.2 Testo in ingresso e in uscita
7.2.1 Scandire le righe di un file
7.2.2 Leggere parole
7.2.3 Leggere caratteri
7.2.4 Leggere dati compositi (record)
7.3 Argomenti sulla riga di comando
7.4 File binari e accesso casuale (argomento facoltativo)
7.4.1 Leggere e scrivere file binari
7.4.2 Accesso casuale
7.4.3 File contenenti immagini
7.4.4 Elaborare fi le BMP
7.5 Gestione delle eccezioni
7.5.1 Sollevare eccezioni
7.5.2 Gestire eccezioni
7.5.3 La clausola finally
7.6 Applicazione: gestione degli errori di acquisizione
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione
Capitolo 8 - Insiemi e dizionari
8.1 Insiemi
8.1.1 Creare e usare insiemi
8.1.2 Aggiungere e rimuovere elementi
8.1.3 Sottoinsiemi
8.1.4 Unione, intersezione e differenza tra insiemi
8.2 Dizionari
8.2.1 Creare dizionari
8.2.2 Accedere ai valori in un dizionario
8.2.3 Aggiungere e modificare coppie
8.2.4 Eliminare coppie
8.2.5 Scandire gli elementi di un dizionario
8.3 Strutture complesse
8.3.1 Un dizionario di insiemi
8.3.2 Un dizionario di liste
Riepilogo del capitolo
Esercizi di ripasso
Esercizi di programmazione