Algoritmi e Strutture Dati

Emergenza CoronaVirus

Il cor­so pro­se­gue in moda­li­tà onli­ne. Le indi­ca­zio­ni su come pro­se­gui­re saran­no rac­col­te in que­sta pagi­na, man­da­te su tele­gram e su Moodle. Moodle ver­rà anche uti­liz­za­to come forum per domande/risposte sul con­te­nu­to del­le lezio­ni.

Studenti 2019/2020

Per par­te­ci­pa­re agli esa­mi nel 2020, è obbli­ga­to­rio com­pi­la­re que­sto que­stio­na­rio.

Organizzazione

  • Per gli stu­den­ti del Corso di Laurea in Informatica, il cor­so è annua­le (!!):  un uni­co cor­so di 12 cre­di­ti, che ini­zia a set­tem­bre e fini­sce a mag­gio (145004).
  • Per gli stu­den­ti del Corso di Laurea in Matematica, il cor­so si spez­za in due uni­tà didat­ti­che (145946, 145947), una per seme­stre, sele­zio­na­bi­li come cor­si affi­ni. E’ anche pos­si­bi­le sce­glie­re l’in­te­ro cor­so da 12 cre­di­ti (145004). Se sie­te anco­ra inde­ci­si, ecco due righe sul per­ché uno stu­den­te di Matematica dovreb­be stu­dia­re Algoritmi e Strutture Dati.
  • Per gli stu­den­ti del Corso di Laurea in Ingegneria dell’Informazione e Organizzazione d’Impresa, nel mani­fe­sto tro­va­te  il pri­mo modu­lo sot­to il nome di “Fondamenti di algo­rit­mi e strut­tu­re Dati” (145929), sele­zio­na­bi­le come cor­so a scel­ta. Se sie­te anco­ra inde­ci­si, ecco due righe sul per­ché uno stu­den­te di Inf.Org. dovreb­be stu­dia­re Algoritmi e Strutture Dati.

Sommario

Il cor­so ha lo sco­po di pre­sen­ta­re i con­cet­ti fon­da­men­ta­li del­l’al­go­rit­mi­ca, ovve­ro quel­la bran­ca del­l’in­for­ma­ti­ca che si occu­pa del­la defi­ni­zio­ne e la pro­get­ta­zio­ne degli algo­rit­mi, l’a­na­li­si del­la loro cor­ret­tez­za e del­la loro effi­cien­za, la dimo­stra­zio­ne del­le loro limi­ta­zio­ni e com­ples­si­tà, e lo stu­dio dei dati da essi ela­bo­ra­ti.

Verranno pre­sen­ta­ti algo­rit­mi per risol­ve­re alcu­ni pro­ble­mi fon­da­men­ta­li (qua­li ad esem­pio l’or­di­na­men­to), tec­ni­che per l’a­na­li­si degli algo­rit­mi (nota­zio­ne asin­to­ti­ca e ricor­ren­ze),  strut­tu­re dati ele­men­ta­ri (qua­li liste, pile, code), strut­tu­re dati non linea­ri (albe­ri e gra­fi) e gli algo­rit­mi ad esse col­le­ga­ti, strut­tu­re dati avan­za­te (albe­ri red-black, heap, tabel­le hash, etc.). Particolare enfa­si ver­rà dedi­ca­ta alle meto­do­lo­gie di pro­get­ta­zio­ne di algo­rit­mi (divi­de et impe­ra, pro­gram­ma­zio­ne dina­mi­ca, meto­do gree­dy, back­trac­king, ricer­ca loca­le).

Prerequisiti

Si assu­me che lo stu­den­te cono­sca i con­cet­ti pre­sen­ta­ti nei cor­si di Analisi, Geometria ed Algebra Lineare, Fondamenti Matematici per l’Informatica, Programmazione 1, più qual­che ele­men­to di cal­co­lo del­le pro­ba­bi­li­tà.

Per gli stu­den­ti del cor­so di lau­rea in Matematica, le mag­gio­ri cono­scen­ze nel cam­po del­la mate­ma­ti­ca com­pen­sa­no la mino­re espe­rien­za nel cam­po del­la pro­gram­ma­zio­ne, ren­den­do l’e­sa­me affron­ta­bi­le sen­za pro­ble­mi.