Corso di Laurea in Informatica Curriculum Progettazione Software Curriculum Sistemi di Elaborazione Scopo della presentazione I Aiutare a decidere quale curriculum Quando diventa determinante la scelta? – Al secondo anno si fissano • 3 crediti (Mat. Comp. II o Logica) • 6 crediti (affini vari, Geometria per Grafica e Immagini) – Al terzo anno per scegliere Prog. SW o Sist. di Elab. • Nessun problema per chi al secondo aveva scelto Progettazione Software o Sistemi di Elaborazione • Chi al secondo aveva scelto Grafica e Immagini deve ancora dare Logica (ma Geometria va bene come scelta, anche se ASI e STC sono più qualificanti per i “non grafici”) La scelta definitiva si ha solo al terzo anno (o al quarto, quinto etc. per chi ritarda la laurea eg studenti part-time) 2 Ottobre 3 1 Una scelta per due anni o per la vita? Scegliere in base al lavoro per cui ci si vuole qualificare – Per avere un lavoro subito (prima), o in una località (più) appetibile, o (più) interessante, o pagato bene (anzi meglio) – Competenze specifiche facilitano un immediato inserimento nel mondo del lavoro Scegliere in base all’interesse/divertimento dei curricula – Forte impronta applicativa Laboratorio dedicato per “provare l’ebbrezza di essere root” – Stretti rapporti con l’industria (il 90% del mercato passa da qui) Stage esterni (in via di organizzazione) Scegliere in base alla speranza di sopravvivenza – Di solito ci si basa su “radio fante”…ma tutti gli anni cambia qualcosa – Impegno dei docenti al coordinamento = non tre compitini in due giorni, uno scritto a cavallo di un progetto, etc – Sforzo di facilitare l’apprendimento, ma seria verifica (potreste essere i prossimi progettisti del mio sistema bancario) 2 Ottobre 3 2 Progettazione Software o Sistemi di Elaborazione? – Progettazione Software per diventare sviluppatore (e in prospettiva progettista) di software (eg di applicazioni multimediali, applicazioni web, sistemi informativi etc) – Sistemi di Elaborazione per diventare sistemista, net manager etc. (gestori di hardware, comunicazioni a basso livello e software di base) Fra questi due estremi vi è un continuum di figure professionali che coprono circa il 90% del mercato del lavoro Purtroppo, per carenza di docenti, i corsi offerti sono troppo pochi per caratterizzare figure professionali agli estremi (soprattutto sul lato sistemi) Presentazione a “curricula unificati” 2 Ottobre 3 3 Compilazione del piano di studi Corsi Obbligatori Cultura Aziendale Ingegneria del Software Logica Matematica (2 anno) Tecniche Avanzate di Programmazione – Piattaforme e programmazione a componenti – Applicazione “sul campo” in un progetto (su piattaforma dotnet) Applicazioni di rete – Protocolli di comunicazione (da Sistemi Operativi II al livello applicativo) – Programmazione per il web (da HTML a PHP, MySQL, cookies…) Implementazione di Linguaggi Architetture Parallele I Compilatori ed implementazione (eg Macchine ad alta prestazione e di oggetti) loro programmazione (progetti non obbligatori, seminari) Sistemi Distribuiti I Composizione in parallelo di SW residenti su vari calcolatori 2 Ottobre 3 5 Scopo della presentazione II Aiutare a decidere quali corsi una volta scelto il curriculum Risposte alle domande – – – – Quali competenze acquisisco scegliendo un particolare corso? A che mi serve seguire un particolare corso? Sono in grado di seguire un particolare corso? Ho scelto corsi che individuano una figura professionale ragionevole? – C’è qualcuno là fuori che mi pagherà (di più) perché ho imparato questi contenuti? – Mi servirà per il Nobel? 2 Ottobre 3 6 Contabilità Per completare il piano di studi, bisogna decidere al secondo anno: 6 crediti “affini” al terzo anno • Crediti obbligati: – 6 per la prova finale – 33 di esami obbligatori • Dovete ancora decidere: – 12 crediti fra i corsi proposti in seguito; – al più 9 crediti ASSOLUTAMENTE liberi che potete usare sui corsi proposti in seguito 2 Ottobre 3 7 Scelta degli affini Possibilità “canoniche” • ASI Funzionamento e programmazione a basso livello dei sistemi digitali(Acquisizione dati, Interfacce HW, Trattamento on line di audio e video) • STC Architettura di rete dallo strato fisico fino allo strato di trasporto(trasmissione digitale, prestazioni del canale di comunicazione, servizi di rete integrati ( dati, fonia, immagini)) – Obbligatorio per la laurea specialistica indirizzo Sistemi di Elaborazione • Geometria, può essere una scelta ragionevole per gli indecisi (ma non aggiunge competenze specifiche del settore) 2 Ottobre 3 8 Corsi Facoltativi Architetture di Sistemi di Gestione Dati -- 6 CFU Modelli dei Dati di Nuova Generazione -- 6 CFU Intelligenza artificiale -- 6 CFU Sicurezza -- 6 CFU Complementi di algoritmi e strutture dati -- 6 CFU Soft Computing -- 6 CFU In grassetto gli obbligatori Grafica interattiva -- 6 CFU Calcolabilità e complessità -- 6 CFU per la laurea specialistica Implementazione di linguaggi -- 6 CFU Architetture parallele I -- 3 CFU Architetture parallele II -- 6 CFU Sistemi distribuiti I -- 3 CFU Sistemi distribuiti II -- 3 CFU 2 Ottobre 3 9 Architetture dei Sistemi Integrati Flavio Fontanelli Semestre II 6 CFU http://www.ge.infn.it/~fontanel Contenuti – Introduzione all’Hardware e alla sua progettazione – Introduzione al Digital Signal Processing Prerequisiti – Architettura dei calcolatori Particolarmente raccomandato per – approfondimento delle conoscenze HW e per lo sviluppo di SW real-time (robotica, trattamento segnali audio e video on-line...) Parole chiave – Acquisizione dati, Interfacce HW, Funzionamento e programmazione a basso livello dei sistemi digitali,Trattamento on line di audio e video, CAD Elettronico 2 Ottobre 3 10 Sistemi e Tecnologie della Comunicazione Silvana Terreni Semestre II 6 CFU http://www.disi.unige.it/course/STC1_01.html Contenuti – architettura di rete dallo strato fisico fino allo strato di trasporto Prerequisiti – fisica a livello liceale Particolarmente raccomandato per – conoscere i sistemi di trasmissione digitale in generale e il funzionamento della rete dal livello fisico fino alla consegna all’ host Parole chiave – rete,trasmissione digitale, prestazioni del canale di comunicazione, servizi di rete integrati ( dati, fonia, immagini). 2 Ottobre 3 11 Intelligenza Artificiale Maurizio Martelli (Viviana Mascardi) Semestre I 6 CFU http://www.disi.unige.it/person/MascardiV/Didattica/IA1_03_04/ programma_IA1_03_04.html Contenuti – IA classica: sistemi esperti, problem solving, rappresentazione della conoscenza, ragionamento approssimato, riconoscimento del linguaggio naturale – IA recente: sistemi ad agenti, linguaggi adatti a modellare ed implementare agenti, relazioni con l'ingegneria del software – Prolog: programmazione logica per risolvere problemi di IA classica e recente Prerequisiti autocontenuto Particolarmente raccomandato per – sviluppatori, progettisti ed analisti di sistemi informativi, interessati alla ricerca in informatica Parole chiave – Prolog; Agenti intelligenti e sistemi multi-agente; Intelligenza Artificiale 2 Ottobre 3 classica 12 Implementazione I Massimo Ancona Semestre I 6 CFU http://www.disi.unige.it/person/AnconaM/Corsi/Impl1.htm Contenuti – Meccanismi di base: architettura del RTE e del RTS nei linguaggi imperativi sequenziali – Meccanismi avanzati: linguaggi modulari e meccanismi per la compilazione indipendente e separata; trattamento delle eccezioni; implementazione della concorrenza e di meccanismi object-oriented; meccanismi per la progr. sincrona reattiva e per l'implementazione di linguaggi e sistemi asincroni, sistemi real-time Prerequisiti – Linguaggi, programmazione e strutture dati (LP) Particolarmente raccomandato per: specialisti in programmazione Parole chiave – Implementazioni di compilatori, RTE, RTS, macchine virtuali e codice intermedio, CISC e RISC, modularita` e compilazioni separate, trattamento di eccezioni, concorrenza, object-orientation, sistemi reattivi sincroni, linguaggi e sistemi di programmazione asincroni 2 Ottobre 3 13 Sistemi distribuiti I Massimo Ancona (W. Cazzola) Semestre II 3 CFU http://www.disi.unige.it/person/CazzolaW/programma.html Contenuti – Nozioni di Base relative al funzionamento di una rete di computer (da un punto di vista SW) e di applicazioni client/server o peer to peer (eg. mirc, napster o gnutella) Prerequisiti – Nozioni base di sistemi operativi, e programmazione Java (LP, SO I e II) Particolarmente raccomandato per – qualsiasi posizione lavorativa in particolare per quelle legate a internet ed alle applicazioni di rete Parole chiave – Java, Applicazioni e Programmazione Client/Server e di Rete 2 Ottobre 3 14 Sistemi distribuiti II Massimo Ancona (W. Cazzola) Semestre II 3 CFU http://www.disi.unige.it/person/CazzolaW/programma.html Contenuti – Middleware Distribuiti, Riflessivi, Real-Time e Mobili. Approfondimenti di CORBA, .NET ed esempi di altri middleware. Prerequisiti – Sistemi Distribuiti I Particolarmente raccomandato per – qualsiasi posizione lavorativa in particolare per quelle legate a internet ed alle applicazioni di rete Parole chiave – CORBA, .NET, mobile-computing e real-time 2 Ottobre 3 15 Soft Computing Semestre I Francesco Masulli 6 CFU http://www.disi.unige.it/person/MasulliF/ Inizio: 3/10, ore 14-15, aula 214/ NO LEZIONE 6-10/10 Contenuti – Calcolo Evoluzionario – Insiemi e Sistemi Sfumati – Applicazione a problemi di ottimizzazione di sistemi e al trattamento di informazione imprecisa Prerequisiti – programmazione Particolarmente raccomandato per – progettista di sistemi industriali Parole chiave – Ottimizzazione, algoritmi genetici, ragionamento approssimato 2 Ottobre 3 16 Calcolabilità e Complessità Eugenio Moggi Semestre 6 CFU http://www.disi.unige.it/person/MoggiE/CC03/ Inizio: 16/10 Contenuti – nozioni e risultati fondamentali di calcolabilità e complessità computazionale, in particolare definisce le classi dei problemi "decidibili" e di quelli "trattabili". Prerequisiti – Matematica Discreta (Logica Matematica), Programmazione, Algoritmi e Strutture Dati Particolarmente raccomandato per – chi vuole proseguire con la laurea specialistica Parole chiave – modelli di calcolo, classi di complessità, funzioni calcolabili, 2 Ottobre 3problemi decidibili 17 Modelli dei Dati di Nuova Generazione Barbara Catania Semestre II 6 CFU http://www.disi.unige.it/person/CataniaB/teach/BDer-03-04/BDer-03-04.htm Contenuti – – – – Basi di dati relazionali ad oggetti Basi di dati attive Gestione dati multimediali Progetto Prerequisiti – Basi di dati Particolarmente raccomandato per – progettazione e sviluppo basi di dati di nuova generazione Parole chiave – basi di dati (relazionali) ad oggetti, multimedia, trigger 2 Ottobre 3 18 Architetture dei Sistemi di Gestione Dati Giovanna Guerrini Semestre I 6 CFU http://www.disi.unige.it/person/GuerriniG/teach/asgd03 Contenuti – – – – – Organizzazione dati su memoria secondaria strategie di elaborazione delle interrogazioni controllo della concorrenza e ripristino controllo dell’accesso architetture distribuite, multidatabase, basi di dati e Web Prerequisiti: – BD I, SO I Particolarmente raccomandato per – amministrazione di sistemi di gestione dati Parole chiave – ottimizzazione, transazioni, autorizzazioni 2 Ottobre 3 19 Grafica interattiva Semestre I Contenuti Enrico Puppo 6 CFU http://www.disi.unige.it/person/PuppoE – Nozioni di base per la grafica 3D (trasformazioni geometriche, illuminazione...) – Sviluppo di applicazioni di grafica 3D interattiva – La libreria OpenGL (standard grafico). – Esercitazione: un visualizzatore 3D Prerequisiti – C (Prog.), Prog. OO (LP), Prog. ad eventi e interfacce (IU), Vettori e trasf. di coordinate (Geometria) Particolarmente raccomandato per – progettisti e sviluppatori di applicazioni di computer graphics, visualizzazione scientifica, visualizzazione 3D, simulazioni grafiche... Parole chiave – Interactive 3D computer graphics, OpenGL, C++ 2 Ottobre 3 20 Complementi di Algoritmi e Strutture Dati Leila De Floriani Semestre II 6 CFU http://www.disi.unige.it/person/SobreroD/compalgo/ (a.a.2002/2003) Contenuti – Strutture dati classiche per memorizzazione, organizzazione e ricerca di informazioni – Strutture dati per il trattamento di informazione spaziale Applicazioni di riferimento – sistemi informativi, sistemi informativi geografici, computer graphics, elaborazione di immagini Prerequisiti – Nozioni di base di strutture dati, linguaggio C, (algoritmi, LP) Particolarmente raccomandato per – progettisti di sistemi SW e di sistemi informativi geografici Parole chiave – Grafi, alberi, strutture dati spaziali, algoritmi geometrici 2 Ottobre 3 21 Sicurezza Giovanni Chiola e Maurizio Aiello Semestre I 6 CFU http://www.disi.unige.it/person/ChiolaG/Sicure02.html Competenze – Conoscenze delle principali problematiche relative alla sicurezza informatica, sia a livello di singolo sistema che a livello di rete – Esperienza su uno o più aspetti pratici particolari Prerequisiti – Sistemi Operativi, principi di funzionamento del protocollo TCP/IP e della comunicazione mediante socket Corso consigliabile/complementare: Crittografia e Teoria dei Codici Particolarmente raccomandato per – chi voglia occuparsi della configurazione e/o installazione di sistemi sia a livello tecnico che a livello organizzativo/gestionale Parole chiave – autenticazione, confidenzialita',disponibilita', robustezza, tolleranza ai 2 Ottobre 3guasti, integrita’ 22 Architetture Parallele I e II Giuseppe Ciaccio Semestre I 3+6 CFU http://www.disi.unige.it/person/CiaccioG/arch_par/programma_corso.htm Contenuti – Architetture dei processori pipeline, processori superscalari, calcolatori multiscalari, calcolo delle prestazioni e benchmarks – Laboratorio Prerequisiti – Architetture Particolarmente raccomandato per – sistemisti e programmatori di sistemi ad alte prestazioni 2 Ottobre 3 23 Ingegneria del Software Gianna Reggio e Egidio Astesiano Semestre I 9 CFU http://www.disi.unige.it/person/ReggioG/ISI03/ Contenuti – Ciclo di vita del software; Modelli del processo di sviluppo del software; Requisiti, progettazione e testing; UML – Laboratorio: Progettazione (design) di una applicazione software a partire da una specifica dei requisiti e implementazione (J2EE) Prerequisiti – i corsi di carattere informatico dei primi due anni Particolarmente raccomandato per chi è coinvolto nella (supervisione della) produzione di software di qualsiasi tipo Parole chiave – Ciclo di vita del software, Modelli del processo di sviluppo del software, Requisiti, Design, Testing, UML 2 Ottobre 3 24