This commit is contained in:
Andrea Fazzi 2023-12-13 10:53:40 +01:00
commit 8a21d62786
15 changed files with 251 additions and 84 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

@ -2,6 +2,4 @@
- ```bash
ps2pdf input.pdf output.pdf
```
- ```bash
convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf
```
- convert -density 200x200 -quality 60 -compress jpeg input.pdf output.pdf

View file

@ -1,11 +1,16 @@
- ## Verifica corso Amministrazione di Sistemi GNU/Linux II
- Porta a termine le seguenti attività di amministrazione di un sistema GNU/Linux. Il completamento di ogni task ti assegnerà un punteggio pari a 1. Il punteggio massimo è 5.
collapsed:: true
- ### Attività 1: Installare docker su una macchina Kali Linux
collapsed:: true
- Sotto-attività 1.1
collapsed:: true
- Passaggi utilizzati per installare `docker` sulla macchina host
- Sotto-attività 1.2
collapsed:: true
- Eseguire `docker --version`
- Documentazione
collapsed:: true
- Passaggi utilizzati per completare l'installazione
- output di `docker --version`
- ### Attività 2: Configurare un un'immagine utilizzando Dockerfile per creare un container con all'interno un server openssh in ascolto sulla porta 2222.
@ -18,12 +23,15 @@
- comandi utilizzati per la gestione del container (es: lanciare il container, rimuovere il container, etc.)
- ### Attività 3: Configurare il sistema per accedervi senza password (utilizzando una chiave `rsa`)
- Sotto attività 3.1
collapsed:: true
- Creazione della chiave
- Sotto-attività 3.2
collapsed:: true
- Copia della chiave
- Sotto-attività 3.3
- Accesso al container mediante `ssh`
- Documentazione
collapsed:: true
- comandi utilizzati per la creazione e la copia della chiave
- comando utilizzato per accedere al container mediante `ssh`
- ### Attività 4: Configurare un cronjob per effettuare il backup di `$HOME` ogni 5 minuti. Il backup consisterà nella creazione di un archivio compresso `tar.gz`
@ -36,17 +44,22 @@
- Sotto-attività 4.4
- Utilizzo di `journalctl` per verificare la corretta esecuzione dello script
- Documentazione
collapsed:: true
- Contenuto del cronjob
- Contenuto dello script che produce l'archivio compresso
- Output del contenuto di un file `tar.gz` di test per documentare il corretto funzionamento dello script
- Output dei log per documentare la corretta esecuzione dello script
- ### Attività 5: Produrre un file markdown e un file PDF per documentare il progetto.
- **Nota bene**: Il file markdown deve contenere una sintesi sotto forma di elenco puntato dei task e sotto task svolti in modo che il docente possa assegnare agevolmente il punteggio.
collapsed:: true
- #### Stato di completamento del progetto
collapsed:: true
- Attività 1
collapsed:: true
- Sotto-task 1.1 (✓)
- Sotto-task 1.2 (❌)
- Attività 2
collapsed:: true
- Sotto-task 2.1 (✓)
- ...
- ...

View file

@ -1,3 +1,10 @@
- Studenti segnalati per il PNRR
- Esaminata la documentazione sul progetto PNRR “Insieme per il nostro futuro”,
dopo attenta valutazione i docenti individuano i seguenti alunni da indirizzare ai “Percorsi
di Potenziamento delle competenze di base”: G. Beraldo, K.C. Chen, E. Fidel, D.H.
Mehmed, D. Priore. Inoltre, si individua lalunna L. Braico da indirizzare al percorso
Teatrando (Percorsi formativi e laboratoriali co-curricolari - Laboratori al di fuori dellorario
curricolare).
- **06:49** [[quick capture]]: [Practical Tips for Finetuning LLMs Using LoRA (Low-Rank Adaptation)](https://news.ycombinator.com/item?id=38338635) #llm
- **18:22** [[quick capture]]: [GitHub - Acly/krita-ai-diffusion: Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required.](https://github.com/Acly/krita-ai-diffusion) #art #stablediffusion
- ## Curricolo STEM
@ -65,4 +72,4 @@
Utilizzare metodologie didattiche per un apprendimento di tipo induttivo. Attraverso esperienze di
laboratorio o in contesti operativi, si consente agli studenti di analizzare problemi, trovare soluzioni,
realizzare e gestire progetti. Si può, così, intercettare levoluzione del fabbisogno di competenze che emerge
dalle richieste del mondo del lavoro offrendo possibili risposte alle nuove necessità occupazionali.
dalle richieste del mondo del lavoro offrendo possibili risposte alle nuove necessità occupazionali.

View file

@ -1,3 +1,7 @@
- Framework basato su terminale pensabile come possibile frontend per #Probo #golang #tui
- https://github.com/charmbracelet/bubbletea
- Sito web che raccoglie modelli di AI generativa #FLOSS #LLM
- https://civitai.com/
- **06:38** [[quick capture]]: [Self-Hosting Open Source LLMs: Cross Devices and Local Deployment of Mistral 7B](https://news.ycombinator.com/item?id=38358032)
- **09:30** [[quick capture]]: [Zero-K](https://zero-k.info/)
- **18:22** [[quick capture]]: [Easylkb: Easy Linux Kernel Builder](https://news.ycombinator.com/item?id=38362874) #linux

View file

@ -1 +1,53 @@
- **07:50** [[quick capture]]: [Unciv](https://news.ycombinator.com/item?id=38401188)
- ## Conferenza ConfCommercio su Imprenditoria femminile
- Al 30.06.2023 calo dell'1% (solo) nell'imprenditoria femminile
- Imprese ad alto contenuto tecnologico pari al 26% e a Gorizia supera il 40%
- Il dato nazionale è il 22% delle imprese è femminile
- Fenomeno delle grandi dimissioni
- 32% cambia lavoro perché per via della qualità della vita
- La media dei contratti si aggira sui 4 mesi
- In Italia il potere di acquisto è diminuito del 2% mentre in altri paesi europei è aumentato del **30%**.
- Costruire un welfare territoriale significa dare spazio all'imprenditoria
- La regione FVG ha avuto 33000 ingressi in meno di giovani nel mercato del lavoro
- Programmazione del Fondo Sociale Europeo punta sull'imprenditoria, sui giovani, sulle donne
- Il 37% delle donne italiane non ha un conto corrente intestato a se stesse
- Piano integrato sull'imprenditoria femminile all'interno del PNRR
- Donne e accesso al credito
- Solo 11% ha accesso al credito bancario
- Donne in attivo (formazione educazione finanziaria)
- Comitato imprese femminili
- Sostenere le donne impreditrici tramite formazione, eventi
- Sostenere le donne nella creazione dei loro progetti
- Sostenere le donne contro la "violenza economica"
- La guida per l'educazione finanziaria
- Target giovanile è fondamentale
- Programma di accesso al credito
- Prima dell'accesso al credito c'è l'educazione finanziaria
- Avere contezza della gestione del denaro
- Aries
- La grande maggioranza delle persone che arriva allo sportello non sa come reperire i soldi per fare un'impresa
- Guida con i concetti base dell'educazione finanziaria: Donne in affari, il potere dell'educazione finanziaria
- Le startup hanno generalmente altre fonti di finanziamento
- Verranno organizzati dei seminari online gratuiti
- Legge 11 del 2011 bando per finanziamento
- Il dato della crescita delle imprese femminili è lento ma è costante
- CONFIDI
- Ottenere più facilmente il credito necessario per la propria attività
- ...
- Finanziamenti agevolati anche con liquidità
- Abbattere i costi di garanzia dell'80%
- Banca d'Italia
- Percorso di finanza personale
- https://economiapertutti.bancaditalia.it
- Scelte finanziarie e rapporti con le banche
- Finanziamento a tasso agevolati
- Fondo perduto non sempre un bene, a volte meglio finanziamento a tasso agevolato
- Si parla del 50% della spesa ammissibile
- E' dato in delega alle camere di commercio del proprio territorio
- Imprese a maggioranza femminile
- Non ci sono limiti di età!
- Spese ammissibili: acquisto di arredi, macchinari, attrezzature, spese del notaio per fare una società, non sono ammessi beni usati
- I contributi vengono dati al netto dell'IVA
- La spesa massima ammissibile sono 60000 EUR
- La Regione darà avviso circa un mese prima di febbraio. Il formulario dev'essere spedito tramite PEC
- Le domande vengono esaminate secondo l'ordine di arrivo. Il consiglio è quello di non aspettare ed essere tempestivi
- **07:50** [[quick capture]]: [Unciv](https://news.ycombinator.com/item?id=38401188)

View file

@ -1,75 +1,78 @@
- Documentazione del package di logging strutturato `slog` #golang
- https://golang.google.cn/pkg/log/slog/
- Esercizi di calcolo algebrico #teaching
- ![image.png](../assets/image_1701242341800_0.png)
- ![image.png](../assets/image_1701242341800_0.png){:height 491, :width 748}
- Webinar per docenti tutor
- [Link al webinar](https://teams.microsoft.com/convene/meetings?url=%2Fl%2Fmeetup-join%2F19%3Ameeting_YzgwNTM2NmYtZjMwMS00YmZmLTgxNzAtZTM2MTE2YThkMWI4%40thread.v2%2F0%3Fcontext%3D%257B%2522Tid%2522%253A%2522e151b387-5dcd-4fc9-8449-cb4e2570f004%2522%252C%2522Oid%2522%253A%25227cd330a5-771c-427c-9cc9-7755a4a2abf8%2522%252C%2522IsBroadcastMeeting%2522%253Atrue%252C%2522role%2522%253A%2522a%2522%257D%26btype%3Da%26role%3Da%26anon%3Dtrue&tenantId=e151b387-5dcd-4fc9-8449-cb4e2570f004&deeplinkId=038dcdaa-ed68-44fc-b273-8f45140fa564)
- **08:27** [[quick capture]]: package main
- Server #golang sviluppato con #llm Phind come prototipo per il server #Probo
- ```go
import (
"encoding/json"
"net/http"
"os"
"io/ioutil"
"math/rand"
"strconv"
"time"
)
type Payload struct {
Name string `json:"name"`
Email string `json:"email"`
}
func generateRandomID() string {
rand.Seed(time.Now().UnixNano())
id := ""
for i := 0; i < 6; i++ {
id += strconv.Itoa(rand.Intn(9) + 1)
"encoding/json"
"net/http"
"os"
"io/ioutil"
"math/rand"
"strconv"
"time"
)
type Payload struct {
Name string `json:"name"`
Email string `json:"email"`
}
func generateRandomID() string {
rand.Seed(time.Now().UnixNano())
id := ""
for i := 0; i < 6; i++ {
id += strconv.Itoa(rand.Intn(9) + 1)
}
return id
}
func createHandler(w http.ResponseWriter, r *http.Request) {
var p Payload
err := json.NewDecoder(r.Body).Decode(&p)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
id := generateRandomID()
err = os.Mkdir(id, os.ModePerm)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
file, err := os.Create(id + "/payload.json")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer file.Close()
err = json.NewEncoder(file).Encode(p)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
response := map[string]string{"id": id}
json.NewEncoder(w).Encode(response)
}
func idHandler(w http.ResponseWriter, r *http.Request) {
id := r.URL.Path[1:]
file, err := ioutil.ReadFile(id + "/payload.json")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
w.Write(file)
}
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/create", createHandler)
mux.HandleFunc("/", idHandler)
http.ListenAndServe(":8080", mux)
}
return id
}
func createHandler(w http.ResponseWriter, r *http.Request) {
var p Payload
err := json.NewDecoder(r.Body).Decode(&p)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
id := generateRandomID()
err = os.Mkdir(id, os.ModePerm)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
file, err := os.Create(id + "/payload.json")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer file.Close()
err = json.NewEncoder(file).Encode(p)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
response := map[string]string{"id": id}
json.NewEncoder(w).Encode(response)
}
func idHandler(w http.ResponseWriter, r *http.Request) {
id := r.URL.Path[1:]
file, err := ioutil.ReadFile(id + "/payload.json")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
w.Write(file)
}
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/create", createHandler)
mux.HandleFunc("/", idHandler)
http.ListenAndServe(":8080", mux)
}
```

View file

@ -1,2 +1,25 @@
- **15:24** [[quick capture]]: [Llamafile lets you distribute and run LLMs with a single file](https://news.ycombinator.com/item?id=38464057) #llm
- **20:41** [[quick capture]]: [Llamafile lets you distribute and run LLMs with a single file](https://news.ycombinator.com/item?id=38464057)
- **20:41** [[quick capture]]: [Llamafile lets you distribute and run LLMs with a single file](https://news.ycombinator.com/item?id=38464057)
- Prompt #GPT-4 per descrizione progetti STEM
- Descrivi in maniera dettagliata tre attività formativa nell'ambito di un progetto STEM. Gli argomenti delle tre attività sono rispettivamente:
* Attività 1: Coding, pensiero computazionale, robotica
* Attività 2: Informatica e intelligenza artificiale
* Attività 3: Competenze digitali (DigComp 2.2) e di innovazione
Ciascuna descrizione deve contenere al massimo 1000 caratteri. Nella descrizione puoi fare riferimento alle seguenti metodologie didattiche:
* Laboratorialità e learning by doing
* Problem solving e metodo induttivo
* Adozione di metodologie didattiche innovative
Genera le tre attività formative in formato Markdown.
- Riscrivi le attività utilizzando un numero minimo di caratteri pari a 800 e un numero massimo pari a 1000. Per quanto riguarda l'attività 1 fai riferimento anche ai linguaggi di scripting e all'apprendimento del coding tramite costruzione di semplici videogame utilizzando il framework Godot. Per quanto riguarda l'attività 2 fai riferimento agli algoritimi di latent diffusion per la generazione di immagini sintetiche e agli LLM per la generazione di testo.
- Per quanto riguarda l'attività 3 dettaglia le seguenti competenze traducendole in italiano:
- 1. Information and data literacy
- 2. Communication and collaboration
- 3. Digital content creation
- 4. Safety
- 5. Problem solving
- Tracce compito di Matematica 1 D LIN del 30.11.2023 #teaching
- ![image.png](../assets/image_1701330474310_0.png)

View file

@ -1,2 +1,23 @@
- **15:24** [[quick capture]]: [My Fediverse use I'm hosting everything myself PeerTube, Mastodon and Lemmy](https://news.ycombinator.com/item?id=38530597)
- **16:58** [[quick capture]]: [ngrok blog: Unleash the power of ngrok with our Go SDK](https://ngrok.com/blog-post/unleash-ngrok-with-go-sdk?utm_campaign=Monthly%20Newsletter&utm_medium=email&_hsmi=285196637&_hsenc=p2ANqtz-8DZNBjvJcWd9aP6uwypz8tYC3qeQZsTAus6Q931TUZRga4oTzyxwQpzIPOlDHeAN1VPuFK8CSiZsC3tFqePPsR80YeAw&utm_content=285198315&utm_source=hs_email)
- **16:58** [[quick capture]]: [ngrok blog: Unleash the power of ngrok with our Go SDK](https://ngrok.com/blog-post/unleash-ngrok-with-go-sdk?utm_campaign=Monthly%20Newsletter&utm_medium=email&_hsmi=285196637&_hsenc=p2ANqtz-8DZNBjvJcWd9aP6uwypz8tYC3qeQZsTAus6Q931TUZRga4oTzyxwQpzIPOlDHeAN1VPuFK8CSiZsC3tFqePPsR80YeAw&utm_content=285198315&utm_source=hs_email)
- Regali per Natale 2023
- ~~Elsa~~
- ~~Vino~~
- ~~Enzo~~
- ~~Panettone~~
- Umberto
- Libro
- ~~Ingrid e Dino~~
- ~~Qualcosa per la casa~~
- Demetrio
- Lampadina
- Pietro e Emma
- AZ Carta (LEGO)
- Libro
- ~~Rosanna e Totino~~
- ~~Calendario~~
- ~~Nonna Dina~~
- ~~Max e Francesco~~
- ~~Birra e cioccolatini~~
- Giulia
- https://app.traininpink.net/

View file

@ -1 +1,40 @@
- **14:19** [[quick capture]]: [PysimpleGUI](https://news.ycombinator.com/item?id=38579161) #ui #python
- **14:19** [[quick capture]]: [PysimpleGUI](https://news.ycombinator.com/item?id=38579161) #ui #python
- Elenco DSA da aggiornare
- ```
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 ALFA SU/Piani Didattici Personalizzati/COGONI DENISE.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 B ES/Piani Didattici Personalizzati/BOSSI SOFIA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 BETA SU/Piani Didattici Personalizzati/GUSTINI SILVIA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 BETA SU/Piani Didattici Personalizzati/NESICH PAOLA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 BETA SU/Piani Didattici Personalizzati/PIGNALOSA AURORA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 C ES/Piani Didattici Personalizzati/TIROTTA SABRINA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 DELTA SU/Piani Didattici Personalizzati/SORIA SARA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 D ES/Piani Didattici Personalizzati/CATTARINUSSI GIORGIA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 D LIN/Piani Didattici Personalizzati/CORUBOLO GIOVANNA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 GAMMA SU/Piani Didattici Personalizzati/POLH MATTIA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/1 GAMMA SU/Piani Didattici Personalizzati/SFERCH THOMAS.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 A ES/Piani Didattici Personalizzati/LO IACONO SABRINA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 ALFA SU/Piani Didattici Personalizzati/ZANINI BEATRICE.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 BETA SU/Piani Didattici Personalizzati/CRAIEVICH GIORGIA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 BETA SU/Piani Didattici Personalizzati/SIDERINI STEFANO.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 BETA SU/Piani Didattici Personalizzati/ZUCCHINI ALESSANDRA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 EPSILON SU/Piani Didattici Personalizzati/ORBACH GHILA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/2 M/Piani Didattici Personalizzati/DE BOSICHI DE FRANDOFILO NICOLAS.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 A ES/Piani Didattici Personalizzati/RUZZIER VALENTINA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 A ES/Piani Didattici Personalizzati/STEFFE' MATTEO.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 ALFA SU/Piani Didattici Personalizzati/CORAL ALICE.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 ALFA SU/Piani Didattici Personalizzati/PINTER ELISA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 ALFA SU/Piani Didattici Personalizzati/ROTTI GIULIA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 C ES/Piani Didattici Personalizzati/DAMBROSI ALESSIO.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 C ES/Piani Didattici Personalizzati/MIELE KATRIN.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 C ES/Piani Didattici Personalizzati/TERZUOLI NICOLO'.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 C ES/Piani Didattici Personalizzati/TIROTTA CHIARA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/3 GAMMA SU/Piani Didattici Personalizzati/MARSI ELISA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/4 A ES/Piani Didattici Personalizzati/BADARO SUHAYLAH.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/4 A ES/Piani Didattici Personalizzati/BENCICH SIMONE.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/4 A ES/Piani Didattici Personalizzati/VENEZIA NICOLO'.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/4 BETA SU/Piani Didattici Personalizzati/GRASSI GIACOMO.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/5 A ES/Piani Didattici Personalizzati/STOCH JAMES XANDER.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/5 C ES/Piani Didattici Personalizzati/GUARINO MARTINA.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/5 D LIN/Piani Didattici Personalizzati/BONITO DENISE.md
/home/andrea/dev/carduccidante/dsa_bes_pdp/output/5 D LIN/Piani Didattici Personalizzati/CARAMIA GIULIA.md
```

View file

@ -5,7 +5,7 @@
- ~~Si occupa di generare raccolte di quiz su richiesta.~~
- Rappresenta l'endpoint di riferimento che consente ai partecipanti di svolgere i test (*exams*).
- Nell'attuale idea di implementazione l'arena riceve il contenuto di un database #sqlite composto dal [[Collettore Probo]] (in questo momento rappresentato da un'applicazione locale).
- A partire dal db caricato, il collettore produce i test per i partecipanti.
- A partire dal db caricato, il collettore somministra i test ai partecipanti attraverso una qualche interfaccia.
- L'arena espone quindi un URL specifico per il test e raggiungibile dal partecipante il quale, in seguito ad autenticazione, potrà svolgere il test.
- Per consegnare l'URL al partecipante sono possibili diverse strategie.
-

View file

@ -21,6 +21,7 @@
- Il collettore dovrebbe essere popolato attraverso:
- Client web [[Frontend per Collettore Probo]]
- Un [[Probo Logseq Plugin]]
- Un'applicazione locale basata su #Wails
- E' un servizio che permette di raccogliere le domande e le risposte.
- Espone una [[API REST]] con payload [[JSON]].
- POST /tests - Crea un nuovo test.

View file

@ -1,4 +1,5 @@
- Nell'attuale idea di implementazione l'arena riceve il contenuto di un database #sqlite composto dal [[Collettore Probo]] (in questo momento rappresentato da un'applicazione locale). Il contenuto viene inviato dal Collector all'Arena mediante POST REST dopo essere stato opportunamente codificato in base64.
- Nell'attuale idea di implementazione l'arena riceve un payload JSON con il contenuto degli *exams*, uno per ogni partecipante, ~~il contenuto di un database #sqlite composto~~ dal [[Collettore Probo]] (in questo momento rappresentato da un'applicazione locale). Il contenuto viene inviato dal Collector all'Arena mediante POST REST ~~dopo essere stato opportunamente codificato in base64~~. Il server Probo condivide con il collector (store) una *API key*.
- `POST /create // []Exams => Exam store endpoint`
- A partire dal db caricato, il collettore produce i test per i partecipanti.
- L'arena espone quindi un URL specifico per il test e raggiungibile dal partecipante il quale, in seguito ad autenticazione, potrà svolgere il test.
- Per consegnare l'URL al partecipante sono possibili diverse strategie.
@ -12,5 +13,4 @@
- Revisionare le proprie risposte prima di inviarle
- Revisionare il risultato dopo la correzione
- La parte frontend dovrebbe consentire al partecipante di svolgere l'esame **anche in assenza di connessione ad Internet** utilizzando, per esempio, un sistema #CRDT.
- L'Arena dovrà essere in comunicazione con il collector al termine del test in modo che quest'ultimo possa raccogliere le risposte dei partecipanti ed eventualmente elaborarle. Arena e Collector saranno in comunicazione tramite API REST dopo essersi scambiati una API key. Inoltre, i due servizi potranno essere in comunicazione anche mediante #websocket per consentire uno scambio di dati in tempo reale.
-
- L'Arena dovrà essere in comunicazione con il collector al termine del test in modo che quest'ultimo possa raccogliere le risposte dei partecipanti ed eventualmente elaborarle. Arena e Collector saranno in comunicazione tramite API REST dopo essersi scambiati una API key. Inoltre, i due servizi potranno essere in comunicazione anche mediante #websocket per consentire uno scambio di dati in tempo reale.

View file

@ -0,0 +1,6 @@
- Probo è dotato di un'interfaccia da linea di comando denominata `probo-cli`
- Comandi e sotto comandi
- ```bash
probo-cli new exam -pf class="1 D LIN" -pf age="18" -qf tags="#tag1"
probo-cli push
```

View file

@ -1,9 +1,9 @@
- Un test su misura è generato a partire da un repository di domande, possibilmente categorizzate per livello di difficoltà.
- Un test su misura è generato a partire da un repository di domande, possibilmente categorizzate per livello di difficoltà. Potrebbero essere gli studenti ad effettuare la classificazione! #teaching
- Dato il numero di domande di cui dev'essere composto il test, il generatore produce un documento che contiene l'esatto numero di elementi.
- I test possono essere strutturati in vario modo:
- Stesse domande proposte in ordine casuale
- Diverse domande
- Prevedere una modalità rinforzo
- Durante lo svolgimento del test oppure dopo aver consegnato le proprie risposte sarebbe interessare prevedere una modalità rinforzo attraverso la quale lo studente comprende l'errore commesso
- Durante lo svolgimento del test oppure dopo aver consegnato le proprie risposte sarebbe interessante prevedere una modalità rinforzo attraverso la quale lo studente comprende l'errore commesso
- Questo [articolo](https://www.raspberrypi.org/blog/better-online-multiple-choice-questions-education-edtech/) sembra molto interessante.
- Prevedere un livello di difficoltà delle domande, in questo modo i test possono essere generati secondo un qualche schema che tenga conto della "distribuzione di difficoltà".