Riflessioni sul programma (minimo) di Informatica da svolgere

Da aptiva.

Quella che segue e' una riflessione sui contenuti dei corsi di "Informatica" per il biennio degli Istituti Tecnici Economici e per i corsi di "Informatica e Laboratorio" per gli Istituti Professionali per i Servizi Commerciali.

Questa e' una bozza e serve anche per indicare ai corsisti del PAS quali siano gli argomenti MINIMI di Informatica che devono conoscere e per i quali devono sviluppare efficaci strategie didattiche (cioe' devono saper insegnare).

Indice

Concetti Generali:

  • Hardware Software
  • Informatica
  • Digitale Analogico
  • Codifica
  • Algoritmo
  • Linguaggio
  • Linguaggio di Programmazione
  • Formato di Dato
  • Protocollo di Comunicazione
  • Programma
  • Processo
  • Strutturazione a Livelli
  • Sistema Operativo
  • System Call
  • Libreria
  • Programmi di servizio
  • Programmi applicativi
  • Numeri Binari
  • Algebra di Boole

Concetti di Architettura (maggiormente dettagliata in Reti e Sistemi)

  • CPU e componenti (ALU, Controllo, Registri)
  • Clock
  • Bus
  • Memoria
  • Periferiche di Input/Output/I-O

Linguaggi di Programmazione

  • Categorizzazione di Linguaggi di Programmazione
  • Linguaggi Procedurali Imperativi, Linguaggi a Oggetti
  • Pseudocodifica, Diagrammi di Flusso
  • Programmazione Strutturata
  • Sequenza di Istruzioni
  • Variabile, Assegnazione
  • Istruzioni Condizionali
  • Istruzioni di Ciclo
  • Funzioni (parametri formali, parametri attuali)
  • Funzioni Ricorsive
  • Librerie
  • Tipi elementari di dato e loro rappresentazioni: interi, caratteri, stringhe
  • Vettori

Algoritmi

  • Ricerca sequenziale
  • Ricerca dicotomica
  • Hashing
  • Ordinamento per selezione
  • Ordinamento a bolla
  • Ordinamento "Quicksort"
  • Misure (intuitive) di complessita'

Linguaggio Specifico (Python)

  • Hello World ed elementi della sintassi
  • Indentazione
  • Variabili in Python
  • Espressioni
  • Tuple, Liste, Strighe
  • Definizione di Funzioni
  • Concetto di Tipo di dato in Python
  • Tipi Mutabili e non Mutabili
  • Uso di Librerie in Python
  • Istruzioni Condizionali in Python
  • Istruzioni di Ciclo in Python
  • (differenze fra python v.2 e python v.3).

Licenze sul Software e aspetti legali

  • Software Proprietario e Software Libero
  • Copyleft
  • Creative Commons
  • Computer Crime
  • Hacking

Attivita' Pratiche in Laboratorio

  • Uso Sistemi Operativi: shell grafiche e testuali (e.g. Ubuntu)
  • Uso di un sistema di sviluppo per la programmazione (e.g. IDLE per Python)
  • Lezioni di Orienteering Tecnologico: Word Processing (LibreOffice) grafica (Gimp, Blender), Musica (audacity), Editing Video
  • Foglio elettronico, concetto di cella, formula (derivati dai concetti di variabili, assegnazione e espressione di un linguaggio di programmazione).

..... e manca la parte di reti e sistemi!

Attivita' ulteriori per rendere interessante la didattica

  • Uso di Raspberry PI e attivita' di Making
  • Uso di librerie grafiche per rendere visuale l'output dei programmi
  • Scrittura di semplici videogiochi
  • Scrittura di App per cellulari
  • Uso di Scratch/Code.org
  • csunplugged e tecniche di teatralizzazione degli algoritmi.

Occorrerebbero anche i seguenti argomenti

  • Cenni di Storia dell'Informatica
  • Attualita' (e.g. problema di heartbleed)
Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti