Il libro di testo, reinventato.
Python doesn’t byte è un libro di testo digitale e open source per imparare Python, pensato per gli studenti della scuola secondaria di secondo grado — in particolare l’indirizzo Informatica degli Istituti Tecnici e l’articolazione Scienze Applicate del Liceo Scientifico.
Non è un PDF né un sito di sole pagine statiche: ogni esempio di codice si esegue direttamente nel browser (niente da installare), con un editor in-pagina e la possibilità di modificare, rieseguire e sperimentare.
Ho scritto questo libro come risposta alla crescente necessità di modernizzare l’insegnamento dell’informatica nelle scuole superiori. Mentre i libri di testo cartacei tradizionali possono risultare antiquati nel contesto veloce e dinamico dell’informatica, qui adotto un approccio diverso: un libro digitale, interattivo e in continua evoluzione.
Il formato digitale offre diversi vantaggi:
- Flessibilità — posso aggiornare e adattare i contenuti ai miei corsi e agli ultimi sviluppi del linguaggio in qualsiasi momento.
- Interattività — esempi di codice eseguibili in-pagina, query SQL eseguibili nel browser, algoritmi animati passo-passo e materiali multimediali rendono l’apprendimento più pratico e coinvolgente.
- Accessibilità — gli studenti vi accedono da qualsiasi luogo e in qualsiasi momento, gratuitamente.
- Apertura — la licenza open source promuove condivisione, collaborazione e revisione da parte della comunità.
Il libro è organizzato in volumi indipendenti, ciascuno con la propria sidebar e il proprio percorso:
| Volume | Titolo | Argomenti |
|---|---|---|
| 1 | Manuale del Programmatore | Fondamenti del linguaggio: dati, controllo di flusso, funzioni |
| 2 | Manuale dell’Artefice | Programmazione ad oggetti: classi, ereditarietà, design pattern |
| 3 | Manuale dell’Archivista | Dati e persistenza: file, SQLite, ORM, integrazione |
| 4 | Biblioteca dell’Apprendista | Esercizi, sfide e progetti di laboratorio |
Il progetto è in fase di sviluppo attivo: alcuni volumi sono ancora in via di popolamento.
- Docusaurus 3 (React 18 + TypeScript) come generatore di sito statico.
- PyRunner — runtime custom in-repo per eseguire Python nel browser, basato su Brython 3.12 + CodeMirror 6. Espone il fence
```py livee il componente<PyRunner />in MDX. - SQLRunner (SQL Live Blocks) — esecutore SQL client-side via sql.js (SQLite compilato in WASM) in un Web Worker, con ripristino del database da snapshot. Per il Volume 3; espone il fence
```sql live. - Algorithm — visualizzatore di algoritmi animati (ordinamento e ricerca) con player passo-passo, pseudocodice sincronizzato e preset Studio/Lab. Componente
<Algorithm />in MDX. - Contenuti in MDX (italiano), con componenti didattici custom (callout Notion-style, quiz, tooltip, indice dei capitoli).
- Smart quotes tipografici applicati automaticamente in build (
remark-smartypants). - Deploy automatico su GitHub Pages (dominio custom
www.rainbowbits.cloud) via GitHub Actions.
Requisiti: Node.js ≥ 20 e npm.
# Installa le dipendenze
npm install
# Avvia il dev server (hot-reload) su http://localhost:3000/python-doesnt-byte/
npm start
# Build di produzione (la stessa che gira in CI)
npm run build
# Servi localmente il sito buildato
npm run serveControlli qualità:
npm run typecheck # tsc
npm run lint # ESLint
npm run format # Prettier
npm run clear # svuota la cache di Docusaurus (.docusaurus/)Questo è un progetto open source! Se hai suggerimenti, correzioni o nuovi materiali da condividere, sentiti libero di aprire una issue o inviare una pull request. Prima di contribuire, dai un’occhiata al Code of Conduct.
Per domande o ulteriori informazioni puoi scrivere all’autore: marco.farina@jcmaxwell.it.
Python Doesn’t Byte by Marco Farina is licensed under CC BY-NC-SA 4.0
Secondo il principio del value for value, se ritieni che questo progetto educativo ti abbia arricchito culturalmente, puoi considerare di sostenerlo restituendo quel valore attraverso una donazione. Ogni contributo, per quanto modesto, è un riconoscimento dell’impegno per la condivisione della conoscenza.