From 4c19ffdd9fd242d46513d92f04c5d27d664b69b0 Mon Sep 17 00:00:00 2001 From: Luca Lombardo Date: Wed, 18 Jun 2025 19:06:33 +0200 Subject: [PATCH] fix: update course data comments and add new courses with passFailOnly property --- src/client/MediaPesataApp.tsx | 82 +++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/src/client/MediaPesataApp.tsx b/src/client/MediaPesataApp.tsx index 06df3c5..a9991b3 100644 --- a/src/client/MediaPesataApp.tsx +++ b/src/client/MediaPesataApp.tsx @@ -25,7 +25,7 @@ interface CorsoCustom { cfu: number } -// Dati dei corsi dal XML fornito +// Dati dei corsi aggiornati dalla tabella ufficiale const CORSI_DISPONIBILI: Corso[] = [ // Primo Anno { nome: 'Analisi matematica 1', anno: '1', cfu: 15 }, @@ -34,18 +34,22 @@ const CORSI_DISPONIBILI: Corso[] = [ { nome: 'Fondamenti di programmazione con laboratorio', anno: '1', cfu: 9 }, { nome: 'Geometria 1', anno: '1', cfu: 15 }, { nome: 'Laboratorio di introduzione alla matematica computazionale', anno: '1', cfu: 6, passFailOnly: true }, - { nome: 'Algebra 1', anno: '1', cfu: 6 }, + { nome: 'Laboratorio di comunicazione mediante calcolatore', anno: '1', cfu: 3, passFailOnly: true }, // Secondo Anno + { nome: 'Algebra 1', anno: '2', cfu: 6 }, { nome: 'Algoritmi e strutture dati', anno: '2', cfu: 6 }, { nome: 'Analisi matematica 2', anno: '2', cfu: 12 }, { nome: 'Analisi numerica con laboratorio', anno: '2', cfu: 9 }, { nome: 'Elementi di probabilità e statistica', anno: '2', cfu: 6 }, { nome: 'Geometria 2', anno: '2', cfu: 12 }, - { nome: 'Algebra 2', anno: '2', cfu: 6 }, + { nome: 'Inglese scientifico', anno: '2', cfu: 6, passFailOnly: true }, + { nome: 'Laboratorio didattico di matematica computazionale', anno: '2', cfu: 3, passFailOnly: true }, // Terzo Anno + { nome: 'Algebra 2', anno: '3', cfu: 6 }, { nome: 'Analisi matematica 3', anno: '3', cfu: 6 }, + { nome: 'Analisi reale', anno: '3', cfu: 6 }, { nome: 'Calcolo scientifico', anno: '3', cfu: 6 }, { nome: 'Elementi di analisi complessa', anno: '3', cfu: 6 }, { nome: 'Elementi di calcolo delle variazioni', anno: '3', cfu: 6 }, @@ -58,19 +62,25 @@ const CORSI_DISPONIBILI: Corso[] = [ { nome: 'Fisica II', anno: '3', cfu: 9 }, { nome: 'Fisica III', anno: '3', cfu: 6 }, { nome: 'Geometria e topologia differenziale', anno: '3', cfu: 6 }, - { nome: 'Laboratorio computazionale', anno: '3', cfu: 6, passFailOnly: true }, - { nome: 'Laboratorio sperimentale di matematica computazionale', anno: '3', cfu: 6 }, + { nome: 'Gruppi e rappresentazioni', anno: '3', cfu: 6 }, + { nome: 'Laboratorio computazionale', anno: '3', cfu: 6 }, { nome: 'Linguaggi di programmazione con laboratorio', anno: '3', cfu: 9 }, { nome: 'Logica matematica', anno: '3', cfu: 6 }, + { nome: 'Matematiche elementari da un punto di vista superiore: aritmetica', anno: '3', cfu: 6 }, { nome: 'Matematiche elementari da un punto di vista superiore: geometria', anno: '3', cfu: 6 }, { nome: 'Meccanica razionale', anno: '3', cfu: 6 }, { nome: 'Metodi numerici per equazioni differenziali ordinarie', anno: '3', cfu: 6 }, + { nome: 'Metodi topologici in analisi globale', anno: '3', cfu: 6 }, { nome: 'Ottimizzazione non lineare', anno: '3', cfu: 6 }, { nome: 'Probabilità', anno: '3', cfu: 6 }, { nome: 'Ricerca operativa', anno: '3', cfu: 6 }, { nome: 'Sistemi dinamici', anno: '3', cfu: 6 }, + { nome: 'Spazi di Sobolev', anno: '3', cfu: 6 }, { nome: 'Statistica matematica', anno: '3', cfu: 6 }, + { nome: 'Storia della matematica', anno: '3', cfu: 6 }, { nome: 'Teoria algebrica dei numeri 1', anno: '3', cfu: 6 }, + { nome: 'Teoria dei campi e teoria di Galois', anno: '3', cfu: 6 }, + { nome: 'Teoria dei numeri elementare', anno: '3', cfu: 6 }, { nome: 'Teoria della misura', anno: '3', cfu: 6 }, // Istituzioni (Magistrale) @@ -82,41 +92,98 @@ const CORSI_DISPONIBILI: Corso[] = [ { nome: 'Istituzioni di geometria', anno: 'istituzioni', cfu: 11 }, { nome: 'Istituzioni di probabilità', anno: 'istituzioni', cfu: 11 }, - // Materie a scelta (Magistrale con "M" ma non istituzioni) + // Materie a scelta (Magistrale) + { nome: '4-varietà', anno: 'M', cfu: 6 }, { nome: 'Algebra superiore A', anno: 'M', cfu: 6 }, + { nome: 'Algebre e gruppi di Lie', anno: 'M', cfu: 6 }, { nome: 'Analisi armonica', anno: 'M', cfu: 6 }, + { nome: 'Analisi complessa A', anno: 'M', cfu: 6 }, + { nome: 'Analisi complessa B', anno: 'M', cfu: 6 }, + { nome: 'Analisi convessa', anno: 'M', cfu: 6 }, { nome: 'Analisi dei dati', anno: 'M', cfu: 6 }, + { nome: 'Analisi non standard', anno: 'M', cfu: 6 }, + { nome: 'Analisi reale', anno: 'M', cfu: 6 }, + { nome: 'Analisi su spazi gaussiani', anno: 'M', cfu: 6 }, + { nome: 'Analisi superiore', anno: 'M', cfu: 6 }, { nome: 'Analisi superiore A', anno: 'M', cfu: 6 }, { nome: 'Analisi superiore B', anno: 'M', cfu: 6 }, { nome: 'Aspetti matematici nella computazione quantistica', anno: 'M', cfu: 6 }, + { nome: 'Calcolo delle variazioni B', anno: 'M', cfu: 6 }, + { nome: 'Calcolo della variazioni A', anno: 'M', cfu: 6 }, // Variante nome { nome: 'Combinatoria algebrica', anno: 'M', cfu: 6 }, { nome: 'Complementi di analisi funzionale', anno: 'M', cfu: 6 }, { nome: 'Complementi di meccanica razionale', anno: 'M', cfu: 6 }, + { nome: 'Crittografia post-quantistica', anno: 'M', cfu: 6 }, + { nome: 'Curve ellittiche', anno: 'M', cfu: 6 }, + { nome: 'Determinazione orbitale', anno: 'M', cfu: 6 }, { nome: 'Didattica della matematica e nuove tecnologie', anno: 'M', cfu: 6 }, { nome: 'Dinamica del sistema solare', anno: 'M', cfu: 6 }, { nome: 'Dinamica iperbolica', anno: 'M', cfu: 6 }, { nome: 'Dinamica olomorfa', anno: 'M', cfu: 6 }, { nome: 'Elementi di calcolo in gruppi omogenei', anno: 'M', cfu: 6 }, + { nome: 'Equazioni della fluidodinamica', anno: 'M', cfu: 6 }, + { nome: 'Equazioni differenziali stocastiche e applicazioni', anno: 'M', cfu: 6 }, + { nome: 'Equazioni ellittiche', anno: 'M', cfu: 6 }, + { nome: 'Finanza matematica', anno: 'M', cfu: 6 }, { nome: 'Fisica matematica', anno: 'M', cfu: 6 }, + { nome: 'Forme modulari', anno: 'M', cfu: 6 }, + { nome: 'Geometria algebrica B', anno: 'M', cfu: 6 }, + { nome: 'Geometria algebrica C', anno: 'M', cfu: 6 }, { nome: 'Geometria algebrica complessa', anno: 'M', cfu: 6 }, + { nome: 'Geometria algebrica D', anno: 'M', cfu: 6 }, + { nome: 'Geometria algebrica E', anno: 'M', cfu: 6 }, + { nome: 'Geometria algebrica F', anno: 'M', cfu: 6 }, + { nome: 'Geometria algebrica G', anno: 'M', cfu: 6 }, + { nome: 'Geometria e analisi complessa', anno: 'M', cfu: 6 }, { nome: 'Geometria differenziale complessa', anno: 'M', cfu: 6 }, { nome: 'Geometria iperbolica', anno: 'M', cfu: 6 }, { nome: 'Geometria riemanniana', anno: 'M', cfu: 6 }, + { nome: 'Gruppi algebrici lineari', anno: 'M', cfu: 6 }, + { nome: 'Gruppi di Coxeter', anno: 'M', cfu: 6 }, { nome: 'Gruppi di Galois e gruppi fondamentali', anno: 'M', cfu: 6 }, + { nome: 'Meccanica celeste', anno: 'M', cfu: 6 }, + { nome: 'Meccanica spaziale', anno: 'M', cfu: 6 }, { nome: 'Meccanica superiore', anno: 'M', cfu: 6 }, + { nome: 'Metodi di analisi armonica in analisi non lineare', anno: 'M', cfu: 6 }, + { nome: 'Metodi di approssimazione', anno: 'M', cfu: 6 }, + { nome: 'Metodi matematici della crittografia', anno: 'M', cfu: 6 }, { nome: 'Metodi matematici della meccanica quantistica', anno: 'M', cfu: 6 }, + { nome: 'Metodi numerici per catene di Markov', anno: 'M', cfu: 6 }, + { nome: 'Metodi numerici per equazioni alle derivate parziali', anno: 'M', cfu: 6 }, { nome: 'Metodi numerici per il calcolo tensoriale', anno: 'M', cfu: 6 }, { nome: 'Metodi numerici per il controllo ottimo', anno: 'M', cfu: 6 }, + { nome: 'Metodi numerici per la grafica', anno: 'M', cfu: 6 }, { nome: 'Metodi numerici per problemi inversi', anno: 'M', cfu: 6 }, { nome: "Metodi probabilistici per l'algebra lineare numerica", anno: 'M', cfu: 6 }, { nome: 'Modelli matematici in biomedicina e fisica matematica', anno: 'M', cfu: 6 }, + { nome: 'Origini e sviluppo delle matematiche moderne', anno: 'M', cfu: 6 }, + { nome: 'Probabilità superiore', anno: 'M', cfu: 6 }, + { nome: 'Problemi e metodi della ricerca in didattica della matematica', anno: 'M', cfu: 6 }, + { nome: 'Problemi e metodi in storia della matematica', anno: 'M', cfu: 6 }, { nome: 'Sistemi dinamici aleatori', anno: 'M', cfu: 6 }, + { nome: 'Statistica superiore', anno: 'M', cfu: 6 }, + { nome: 'Storia della matematica antica e della sua tradizione', anno: 'M', cfu: 6 }, { nome: 'Superfici di Riemann e curve algebriche', anno: 'M', cfu: 6 }, + { nome: 'Tecnologie per la didattica', anno: 'M', cfu: 6 }, + { nome: 'Teoria algebrica dei numeri 2', anno: 'M', cfu: 6 }, + { nome: 'Teoria analitica dei numeri A', anno: 'M', cfu: 6 }, { nome: 'Teoria dei giochi', anno: 'M', cfu: 6 }, + { nome: 'Teoria dei modelli', anno: 'M', cfu: 6 }, + { nome: 'Teoria dei nodi A', anno: 'M', cfu: 6 }, + { nome: 'Teoria degli insiemi', anno: 'M', cfu: 6 }, + { nome: 'Teoria degli insiemi A', anno: 'M', cfu: 6 }, + { nome: 'Teoria degli insiemi B', anno: 'M', cfu: 6 }, { nome: 'Teoria delle categorie', anno: 'M', cfu: 6 }, { nome: 'Teoria delle rappresentazioni A', anno: 'M', cfu: 6 }, + { nome: "Teoria e metodi dell'ottimizzazione", anno: 'M', cfu: 6 }, + { nome: 'Teoria ergodica', anno: 'M', cfu: 6 }, + { nome: 'Teoria geometrica della misura', anno: 'M', cfu: 6 }, + { nome: 'Topologia algebrica', anno: 'M', cfu: 6 }, { nome: 'Topologia algebrica A', anno: 'M', cfu: 6 }, + { nome: 'Topologia algebrica B', anno: 'M', cfu: 6 }, + { nome: 'Topologia differenziale', anno: 'M', cfu: 6 }, { nome: 'Topologia e geometria in bassa dimensione', anno: 'M', cfu: 6 }, + { nome: 'Ultrafiltri e metodi non-standard', anno: 'M', cfu: 6 }, ] function MediaPesataApp() { @@ -387,7 +454,7 @@ function MediaPesataApp() { // Filtra corsi disponibili in base al tipo di studente const getCorsiDisponibili = () => { if (tipoStudente === 'triennale') { - return CORSI_DISPONIBILI + return CORSI_DISPONIBILI.filter(corso => corso.anno !== 'istituzioni') } else { return CORSI_DISPONIBILI.filter( corso => corso.anno === 'istituzioni' || corso.anno === '3' || corso.anno === 'M', @@ -404,7 +471,6 @@ function MediaPesataApp() { gruppi['Primo Anno'] = corsi.filter(c => c.anno === '1') gruppi['Secondo Anno'] = corsi.filter(c => c.anno === '2') gruppi['Terzo Anno'] = corsi.filter(c => c.anno === '3') - gruppi['Istituzioni'] = corsi.filter(c => c.anno === 'istituzioni') gruppi['Materie a Scelta'] = corsi.filter(c => c.anno === 'M') } else { // Per magistrali: prima le istituzioni, poi tutto il resto come "Materie a Scelta"