mirror of
https://github.com/Steffo99/unisteffo.git
synced 2025-02-16 15:53:58 +00:00
✨ Add quite a few things
This commit is contained in:
parent
dca9247804
commit
6080e245fb
15 changed files with 385 additions and 25 deletions
2
.idea/inspectionProfiles/Project_Default.xml
generated
2
.idea/inspectionProfiles/Project_Default.xml
generated
|
@ -8,7 +8,7 @@
|
|||
<inspection_tool class="LessResolvedByNameOnly" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="LessUnresolvedMixin" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||
<inspection_tool class="LessUnresolvedVariable" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||
<inspection_tool class="LongLine" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="LongLine" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PoetryPackageVersion" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||
<inspection_tool class="ProblematicWhitespace" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="PyAbstractClassInspection" enabled="true" level="ERROR" enabled_by_default="true" />
|
||||
|
|
10
package-lock.json
generated
10
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "appuntiweb2",
|
||||
"version": "0.1.0",
|
||||
"name": "appuntiweb",
|
||||
"version": "0.11.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -3530,9 +3530,9 @@
|
|||
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
|
||||
},
|
||||
"bluelib": {
|
||||
"version": "0.24.1",
|
||||
"resolved": "https://registry.npmjs.org/bluelib/-/bluelib-0.24.1.tgz",
|
||||
"integrity": "sha512-USc401bLOfIoypZW2Q+2F3AncCMRUV41X7dYybfqZbHZtdi6us6lNAXwKT6aBxE5tQZCRp2rfVn6Qli2hbsfpQ==",
|
||||
"version": "0.24.2",
|
||||
"resolved": "https://registry.npmjs.org/bluelib/-/bluelib-0.24.2.tgz",
|
||||
"integrity": "sha512-xzFax7NdysmuH7VEsZHEsU5OftWgagYua1s7JD9NWO2iooYNUzcAX/yXPTP9m4JUuW6EQZiapRqtCd49ubVrrg==",
|
||||
"requires": {
|
||||
"@babel/preset-env": "^7.12.11",
|
||||
"@babel/preset-react": "^7.12.10",
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
"@testing-library/jest-dom": "^5.11.9",
|
||||
"@testing-library/react": "^11.2.3",
|
||||
"@testing-library/user-event": "^12.6.2",
|
||||
"bluelib": "^0.24.1",
|
||||
"bluelib": "^0.24.2",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^17.0.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-router-dom": "^5.2.0",
|
||||
|
|
|
@ -3,12 +3,14 @@ import {Bluelib, Main} from "bluelib/lib/components";
|
|||
import {Router} from "@reach/router";
|
||||
import Home from "./routes/Home";
|
||||
import Error404 from "./routes/Error404";
|
||||
import Gestinfo from "./routes/Gestinfo";
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<Bluelib skin={"rygblue"}>
|
||||
<Router>
|
||||
<Home path={"/"}/>
|
||||
<Gestinfo path={"/gestinfo"}/>
|
||||
<Error404 default/>
|
||||
</Router>
|
||||
</Bluelib>
|
||||
|
|
|
@ -1,10 +1,18 @@
|
|||
import React from "react";
|
||||
import {BaseLink, Bluelib, Title} from "bluelib/lib/components";
|
||||
import {BaseLink, Title} from "bluelib/lib/components";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
|
||||
export default function Home() {
|
||||
export default function MainTitle({subtitle}) {
|
||||
return (
|
||||
<div>
|
||||
<Title size={"xxl"}><BaseLink href={"/"}>Unisteffo</BaseLink></Title>
|
||||
<Title size={"xl"}>{subtitle}</Title>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
MainTitle.propTypes = {
|
||||
subtitle: PropTypes.node
|
||||
}
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
import React from "react";
|
||||
import {BaseLink, Title, Main} from "bluelib/lib/components";
|
||||
import {Main} from "bluelib/lib/components";
|
||||
import MainTitle from "./MainTitle";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
|
||||
export default function Page({children}) {
|
||||
export default function Page({children, subtitle}) {
|
||||
return (
|
||||
<div>
|
||||
<Title size={"xxl"}><BaseLink href={"/"}>Unisteffo</BaseLink></Title>
|
||||
<Title size={"xl"}>Gli appunti open source di <BaseLink href={"https://steffo.eu"}>Steffo</BaseLink></Title>
|
||||
<MainTitle subtitle={subtitle}/>
|
||||
<Main>
|
||||
{children}
|
||||
</Main>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Page.propTypes = {
|
||||
children: PropTypes.node,
|
||||
subtitle: PropTypes.node,
|
||||
}
|
20
src/components/TitleBox.js
Normal file
20
src/components/TitleBox.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
import React from "react";
|
||||
import {Box, Title} from "bluelib/lib/components";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
|
||||
export default function TitleBox({children, title}) {
|
||||
return (
|
||||
<Box>
|
||||
<Title size={"l"}>
|
||||
{title}
|
||||
</Title>
|
||||
{children}
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
|
||||
TitleBox.propTypes = {
|
||||
children: PropTypes.node,
|
||||
title: PropTypes.node
|
||||
}
|
22
src/components/TitleSplit.js
Normal file
22
src/components/TitleSplit.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
import React from "react";
|
||||
import {Split, Title} from "bluelib/lib/components";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
|
||||
export default function TitleSplit({children, title}) {
|
||||
return (
|
||||
<section>
|
||||
<Title size={"xl"}>
|
||||
{title}
|
||||
</Title>
|
||||
<Split>
|
||||
{children}
|
||||
</Split>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
|
||||
TitleSplit.propTypes = {
|
||||
children: PropTypes.node,
|
||||
title: PropTypes.node
|
||||
}
|
|
@ -1,17 +1,23 @@
|
|||
import React from "react";
|
||||
import {Paragraph, Box, Title, Color} from "bluelib/lib/components";
|
||||
import {Paragraph, Box, Title, Color, BaseLink} from "bluelib/lib/components";
|
||||
import Page from "../components/Page";
|
||||
import TitleBox from "../components/TitleBox";
|
||||
import TitleSplit from "../components/TitleSplit";
|
||||
|
||||
|
||||
export default function Error404() {
|
||||
return (
|
||||
<Page>
|
||||
<Box>
|
||||
<Title size={"l"}><Color value={"red"}>Non trovato</Color></Title>
|
||||
<Paragraph>
|
||||
Mi spiace, ma la pagina che hai richiesto non sembra esistere :(
|
||||
</Paragraph>
|
||||
</Box>
|
||||
<TitleSplit title={<Color value={"red"}>Non trovato</Color>}>
|
||||
<TitleBox title={<Color value={"red"}>404</Color>}>
|
||||
<Paragraph>
|
||||
Mi spiace, ma la pagina che hai richiesto non sembra esistere :(
|
||||
</Paragraph>
|
||||
<Paragraph>
|
||||
<BaseLink href={"/"}>← Torna alla home</BaseLink>
|
||||
</Paragraph>
|
||||
</TitleBox>
|
||||
</TitleSplit>
|
||||
</Page>
|
||||
)
|
||||
}
|
||||
|
|
15
src/routes/Gestinfo/abbr/API.js
Normal file
15
src/routes/Gestinfo/abbr/API.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import React from "react";
|
||||
import {Help} from "bluelib/lib/components";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
|
||||
export default function API() {
|
||||
return (
|
||||
<Help text={"[Web] Application Programming Interface, fonti di dati fruibili attraverso HTTP"}>API</Help>
|
||||
)
|
||||
}
|
||||
|
||||
API.propTypes = {
|
||||
children: PropTypes.node,
|
||||
title: PropTypes.node
|
||||
}
|
15
src/routes/Gestinfo/abbr/IR.js
Normal file
15
src/routes/Gestinfo/abbr/IR.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import React from "react";
|
||||
import {Help} from "bluelib/lib/components";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
|
||||
export default function IR() {
|
||||
return (
|
||||
<Help text={"Information Retrieval"}>IR</Help>
|
||||
)
|
||||
}
|
||||
|
||||
IR.propTypes = {
|
||||
children: PropTypes.node,
|
||||
title: PropTypes.node
|
||||
}
|
14
src/routes/Gestinfo/components/Token.js
Normal file
14
src/routes/Gestinfo/components/Token.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
import React from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import style from "./Token.module.css";
|
||||
|
||||
|
||||
export default function Token({children}) {
|
||||
return (
|
||||
<span className={style.token}>{children}</span>
|
||||
)
|
||||
}
|
||||
|
||||
Token.propTypes = {
|
||||
children: PropTypes.node
|
||||
}
|
5
src/routes/Gestinfo/components/Token.module.css
Normal file
5
src/routes/Gestinfo/components/Token.module.css
Normal file
|
@ -0,0 +1,5 @@
|
|||
.token {
|
||||
border: 1px currentColor solid;
|
||||
border-radius: 2px;
|
||||
padding: 2px;
|
||||
}
|
209
src/routes/Gestinfo/index.js
Normal file
209
src/routes/Gestinfo/index.js
Normal file
|
@ -0,0 +1,209 @@
|
|||
import React from "react";
|
||||
import {Split, Aside, Anchor, Code, Help, Blockquote, Size, Color, BaseLink as A, Paragraph as P, Bold as B, Italic as I, ListItem as LI} from "bluelib/lib/components";
|
||||
import Page from "../../components/Page";
|
||||
import TitleSplit from "../../components/TitleSplit";
|
||||
import TitleBox from "../../components/TitleBox";
|
||||
import IR from "./abbr/IR";
|
||||
import API from "./abbr/API";
|
||||
import Token from "./components/Token";
|
||||
|
||||
|
||||
export default function Gestinfo() {
|
||||
return (
|
||||
<Page subtitle={"Gestione dell'informazione"}>
|
||||
<Split>
|
||||
<TitleBox title={"Di cosa si tratta?"}>
|
||||
<P>
|
||||
Si parla di <B>come processare enormi quantità di testo</B> al fine di <B>effettuarvi ricerche</B>.
|
||||
</P>
|
||||
<Aside>
|
||||
Praticamente, si parla di come funzionano i motori di ricerca!
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"Il corso all'Unimore"}>
|
||||
<P>
|
||||
🎓 Il corso è tenuto dalla <Anchor href={"mailto:federica.mandreoli@unimore.it"}>Prof.ssa Federica Mandreoli</Anchor>.
|
||||
</P>
|
||||
<P>
|
||||
📘 Le dispense sono disponibili su <Anchor href={"https://dolly.fim.unimore.it/2020/course/view.php?id=69"}>Dolly 2020</Anchor>.
|
||||
</P>
|
||||
<P>
|
||||
🎥 Alcune videolezioni sono state eliminate, le restanti <Anchor href={"https://github.com/Steffo99/unimoreinfo-wiki/wiki/Scaricare-videolezioni#gestione-dellinformazione"}>possono essere scaricate</Anchor>.
|
||||
</P>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
<TitleSplit title={"L'Information Retrieval"}>
|
||||
<TitleBox title={"Cos'è?"}>
|
||||
<P>
|
||||
È il <B>processo</B> di <B>raccolta documenti</B>, <B>elaborazione query</B> e <B>richiamo di più risposte</B>.
|
||||
</P>
|
||||
<P>
|
||||
Un'applicazione che effettua <IR/> si chiama <B>motore di ricerca</B>.
|
||||
</P>
|
||||
</TitleBox>
|
||||
</TitleSplit>
|
||||
<Split>
|
||||
<TitleBox title={"Documenti"}>
|
||||
<P>
|
||||
Sono le unità con cui lavora il motore di ricerca.
|
||||
</P>
|
||||
<P>
|
||||
Possono essere di vario tipo: <B>pagine web</B>, <B>metadati di file</B>, <B>paper accademici</B>...
|
||||
</P>
|
||||
<Aside>
|
||||
Ad esempio, i documenti di <Anchor href={"https://google.com"}>Google Search</Anchor> sono le <B>pagine web</B>.
|
||||
</Aside>
|
||||
<P>
|
||||
Vengono raccolti in svariati modi: possono provenire da <B><API/></B>, essere forniti manualmente e poi processati con un <B>parser</B>, essere scoperti tramite <B>web crawling</B> e processati tramite <B>web scraping</B>...
|
||||
</P>
|
||||
<Aside>
|
||||
Il web crawler più famoso è <Anchor href={"https://it.wikipedia.org/wiki/Googlebot"}>Googlebot</Anchor>, che visita ricorsivamente tutti i collegamenti presenti su ogni pagina.
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"Query"}>
|
||||
<P>
|
||||
La <B>richiesta di informazioni</B> effettuata da un utente, in un <B>linguaggio</B> che il motore di ricerca è <B>in grado di capire</B>.
|
||||
</P>
|
||||
<Aside>
|
||||
In pratica, è quello che scrivi sulla casella di ricerca di Google!
|
||||
</Aside>
|
||||
<P>
|
||||
Solitamente vi è possibile inserire <B>parole chiave</B> e <B>operatori</B> per specificare cosa si desidera trovare.
|
||||
</P>
|
||||
<Aside>
|
||||
È possibile vedere tutti gli operatori supportati da Google nella pagina <Anchor href={"https://www.google.it/advanced_search"}>Advanced Search</Anchor>.
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"Risposte"}>
|
||||
<P>
|
||||
I <B>documenti</B> che il motore di ricerca sceglie di mostrare all'utente in quanto li ha ritenuti <B>rilevanti alla query effettuata</B>.
|
||||
</P>
|
||||
<P>
|
||||
Spesso sono composte da <B>metadati del documento</B> e da un <B>breve estratto</B> della sezione del documento più rilevante.
|
||||
</P>
|
||||
<Aside>
|
||||
Google Search mostra <B>URL</B>, <B>titolo</B> e <B>descrizione</B> della pagina (o un suo <B>estratto</B> se una descrizione non è disponibile).
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
<TitleSplit title={"Preparazione dei documenti"}>
|
||||
<TitleBox title={"Cos'è?"}>
|
||||
<P>
|
||||
Una <B>procedura</B> che permette ai documenti di essere <B>indicizzati</B> e in seguito <B>richiamati</B> dal motore di ricerca.
|
||||
</P>
|
||||
<P>
|
||||
È suddivisa in varie fasi, generalmente 5 o 6.
|
||||
</P>
|
||||
</TitleBox>
|
||||
</TitleSplit>
|
||||
<Split>
|
||||
<TitleBox title={"1. Analisi lessicale"}>
|
||||
<P>
|
||||
Tutte le parole del documento vengono trasformate in <B>token</B>.
|
||||
</P>
|
||||
<P>
|
||||
Il motore di ricerca decide se considerare come parte dei token i <B>simboli</B> tipografici, la <B><Help text={"Quello che in inglese si chiama 'case'. Sono grafie il maiuscolo, il minuscolo, il corsivo..."}>grafia</Help></B> delle lettere, le <B>cifre</B>...
|
||||
</P>
|
||||
<P>
|
||||
Spesso si decide di <B>distinguere</B> tra gli <B><Help text={"Parole che si leggono e scrivono uguale ma significano cose diverse."}>ononimi</Help></B> attraverso algoritmi di <B><I>word sense disambiguation</I></B>, in grado di dedurre il contesto analizzando i significati delle parole circostanti.
|
||||
</P>
|
||||
<Aside>
|
||||
<Token>sale 🧂</Token> oppure <Token>sale 🪜</Token> ?
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"2. Eliminazione delle stopwords"}>
|
||||
<P>
|
||||
Le <I>stopwords</I>, i token ritenuti <B>inutili</B> ai fini delle ricerche, vengono <B>eliminate</B> dall'insieme di token ottenuto nel passo precedente.
|
||||
</P>
|
||||
<P>
|
||||
Stopwords comuni sono gli <B><Help text={"Il, lo, la, un, una..."}>articoli</Help></B>, le <B><Help text={"E, perchè, ma, così..."}>congiunzioni</Help></B> e tutte le <B>parole più frequenti</B> di una lingua.
|
||||
</P>
|
||||
<P>
|
||||
Talvolta capita di dover <B>distinguere</B> tra stopwords e <B>nomi propri</B>, soprattutto nell'inglese; per risolvere il problema ci si affida alla disambiguazione degli ononimi effettuata durante l'analisi lessicale.
|
||||
</P>
|
||||
<Aside>
|
||||
La band <Anchor href={"https://en.wikipedia.org/wiki/The_Who"}>The Who</Anchor> è l'incubo dei motori di ricerca che eliminano indiscriminatamente le stopwords.
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"3. Stemming / Lemmatizzazione"}>
|
||||
<P>
|
||||
Ai token del passo precedente vengono sostituite le <B>radici</B> (<I>stems</I>) oppure le <B>forme base</B> (<I>lemmas</I>) delle parole.
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
Alcune delle operazioni che vengono effettuate sono:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>
|
||||
Plurale → Singolare
|
||||
<Aside>
|
||||
<Token>fiori</Token> → <Token>fiore</Token>
|
||||
</Aside>
|
||||
<Aside>
|
||||
<Token>flowers</Token> → <Token>flower</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Verbo → Infinito
|
||||
<Aside>
|
||||
<Token>vado</Token> → <Token>andare</Token>
|
||||
</Aside>
|
||||
<Aside>
|
||||
<Token>goes</Token> → <Token>go</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
</ul>
|
||||
</Aside>
|
||||
<P>
|
||||
Gli algoritmi che realizzano questo passo sono detti rispettivamente <B><I>stemmer</I></B> o <B><I>lemmatizer</I></B>.
|
||||
</P>
|
||||
<Aside>
|
||||
Generalmente sono implementati tramite <Help text={"Dizionari che associano ogni parola alla sua forma base."}>lookup tables</Help>, ma i motori di ricerca più avanzati <Anchor href={"https://en.wikipedia.org/wiki/Stemming#Algorithms"}>possono avere implementazioni anche più complesse</Anchor>.
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
<Split>
|
||||
<TitleBox title={"4. Normalizzazione dei token"}>
|
||||
<P>
|
||||
I <B>simboli</B> rimasti nei token vengono processati, sostituendoli con caratteri diversi oppure sdoppiando i token in diverse forme.
|
||||
</P>
|
||||
<Aside>
|
||||
<P>
|
||||
Alcune delle operazioni che possono essere effettuate sono:
|
||||
</P>
|
||||
<ul>
|
||||
<LI>
|
||||
Rimozione degli accenti
|
||||
<Aside>
|
||||
<Token>caffè</Token> → <Token>caffe</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Separazione dei trattini
|
||||
<Aside>
|
||||
<Token>state-of-the-art</Token> → <Token>state</Token> <Token>of</Token> <Token>the</Token> <Token>art</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
<LI>
|
||||
Rimozione della punteggiatura
|
||||
<Aside>
|
||||
<Token>2020 d.c.</Token> → <Token>2020dc</Token>
|
||||
</Aside>
|
||||
</LI>
|
||||
</ul>
|
||||
</Aside>
|
||||
</TitleBox>
|
||||
<TitleBox title={"5. Selezione degli index term"}>
|
||||
<P>
|
||||
|
||||
</P>
|
||||
</TitleBox>
|
||||
<TitleBox title={"6. Categorizzazione"}>
|
||||
<P>
|
||||
|
||||
</P>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
</Page>
|
||||
)
|
||||
}
|
|
@ -1,14 +1,50 @@
|
|||
import React from "react";
|
||||
import {Box} from "bluelib/lib/components";
|
||||
import {Split, Size, Color, Anchor, BaseLink as A, Paragraph as P, Bold as B, Italic as I, ListItem as LI} from "bluelib/lib/components";
|
||||
import Page from "../components/Page";
|
||||
import TitleSplit from "../components/TitleSplit";
|
||||
import TitleBox from "../components/TitleBox";
|
||||
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<Page>
|
||||
<Box>
|
||||
Benvenuto a Unisteffo!
|
||||
</Box>
|
||||
<Page subtitle={<span>Appunti open source di <A href={"https://steffo.eu"}>Steffo</A></span>}>
|
||||
<Split>
|
||||
<TitleBox title={"Unisteffo"}>
|
||||
<P>
|
||||
Ciao! Benvenuto a <B>Unisteffo</B>, il sito in cui carico tutto il materiale che uso per studiare!
|
||||
</P>
|
||||
<P>
|
||||
Se trovi un errore negli appunti, o un bug del sito, per favore <Anchor href={"https://github.com/Steffo99/appuntiweb/issues/new"}>segnalamelo su GitHub</Anchor>!
|
||||
</P>
|
||||
<P>
|
||||
<Color value={"yellow"}>🚧 Molte pagine non sono disponibili in quanto il sito è in fase di rinnovo.</Color>
|
||||
</P>
|
||||
</TitleBox>
|
||||
</Split>
|
||||
<TitleSplit title={"Università"}>
|
||||
<TitleBox title={"Primo anno"}>
|
||||
<ul>
|
||||
<LI><Size value={"l"}><A href={"/analisi"} disabled={true}>Analisi matematica</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/algebra"} disabled={true}>Algebra lineare</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/algoritmi"} disabled={true}>Algoritmi e strutture dati</A></Size></LI>
|
||||
</ul>
|
||||
</TitleBox>
|
||||
<TitleBox title={"Secondo anno"}>
|
||||
<ul>
|
||||
<LI><Size value={"l"}><A href={"/fisica"} disabled={true}>Fisica</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/statistica"} disabled={true}>Statistica ed elementi di probabilità</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/apprendimento"} disabled={true}>Apprendimento ed evoluzione in sistemi artificiali</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/basididati"} disabled={true}>Basi di dati</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/calcolo"} disabled={true}>Calcolo numerico</A></Size></LI>
|
||||
<LI><Size value={"l"}><A href={"/oli"} disabled={true}>Ottimizzazione lineare intera</A></Size></LI>
|
||||
</ul>
|
||||
</TitleBox>
|
||||
<TitleBox title={"Terzo anno"}>
|
||||
<ul>
|
||||
<LI><Size value={"l"}><A href={"/gestinfo"}>Gestione dell'informazione</A></Size></LI>
|
||||
</ul>
|
||||
</TitleBox>
|
||||
</TitleSplit>
|
||||
</Page>
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue