Curriculum Triennale in Ingegneria Informatica per la Prossima Decade: l'Esperienza della Sapienza

Pagina creata da Simona Gatto
 
CONTINUA A LEGGERE
Curriculum Triennale in Ingegneria Informatica per la Prossima Decade: l'Esperienza della Sapienza
Curriculum Triennale in Ingegneria Informatica
per la Prossima Decade: l’Esperienza della
Sapienza

Salerno, 19 Settembre 2013 –
Workshop AICA: Sfide Didattiche per l’Informatica del 2020

Camil Demetrescu, Marco Fratarcangeli,
Alberto Marchetti Spaccamela, Massimo
Mecella, Daniele Nardi, Francesco Quaglia,
Riccardo Rosati, Leonardo Querzoni, Andrea
Vitaletti
Curriculum Triennale in Ingegneria Informatica per la Prossima Decade: l'Esperienza della Sapienza
Contesto e motivazioni

• L’evoluzione del ruolo dell’ICT nella società
  nell’ultima decade ha cambiato il tipo di
  competenze richieste all’ingegnere informatico
• Nuove sfide: cloud, sicurezza, multi-core, platform-
  based development, ecc.
• Esigenza ristrutturazione profonda del curriculum
  triennale in ingegneria informatica alla Sapienza

Commissione Curriculum Triennale   9/21/13         Pagina 2
Ing. Informatica Sapienza
Curriculum Triennale in Ingegneria Informatica per la Prossima Decade: l'Esperienza della Sapienza
Agenda

•   Riflessioni sulla figura dell’ingegnere informatico
•   Ruolo didattico dei linguaggi di programmazione
•   Cosa è successo nel resto del mondo
•   Indagine sui laureati in Ingegneria Informatica
•   La ristrutturazione:
     – Princìpi generali e linee guida
     – Il core del nuovo curriculum: i primi due anni
     – Il terzo anno
• Conclusioni

Commissione Curriculum Triennale    9/21/13             Pagina 3
Ing. Informatica Sapienza
Riflessioni sulla figura dell’ingegnere informatico

                                   Mario Raffa,
                                   l’Ingegnere oggi tra
                                   azienda e società,
                                   Storia dell’Ingegneria, Atti del
                                   2° Convegno Nazionale,
                                   Napoli, 2008

Commissione Curriculum Triennale   9/21/13                      Pagina 4
Ing. Informatica Sapienza
Riflessioni sulla figura dell’ingegnere informatico

 Organizational Issues
& Information Systems

           Application
         Technologies                    Computer Science Curricula 2013
                                                   (CS2013)
    Software Methods
    and Technologies                         ACM/IEEE-CS Joint Task Force

                                       http://ai.stanford.edu/users/sahami/CS2013/
               System
        Infrastructure

  Computer Hardware
    And Architecture

                             Theory                                                     Application
                          Principles   More Theoretical   DEVELOPMENT   More Applied    Deployment
                         Innovation                                                    Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application
         Technologies

    Software Methods
    and Technologies

                System
         Infrastructure

  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application
         Technologies
                                                                                IT
    Software Methods
    and Technologies

                System
         Infrastructure

  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application                                                      IS
         Technologies
                                                                             IT
    Software Methods
    and Technologies

                System
         Infrastructure

  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application                                                      IS
         Technologies
                                                                             IT
    Software Methods
    and Technologies

                System
         Infrastructure                                        CE
  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application                                                      IS
         Technologies
                                                                             IT
    Software Methods
    and Technologies                                         SE
                System
         Infrastructure                                        CE
  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application                                                      IS
         Technologies
                                                                             IT
    Software Methods
    and Technologies
                                                 CS          SE
                System
         Infrastructure                                        CE
  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
EE Electronic Eng.
  CE Computer Eng.
  CS Computer Science                          EE CE CS SE                 IT     IS
  SE Software Eng.
  IT Information Technology                    Hardware      Software    Organizational
  IS Information Systems                                                    needs

 Organizational Issues
& Information Systems

           Application                                                      IS
         Technologies
                                                                             IT
    Software Methods
    and Technologies
                                    CS SE
                                Engineering
                               Engineering  inCS
                                           in  CS
                System
         Infrastructure                                        CE
  Computer Hardware
    And Architecture

                              Theory                                                      Application
                           Principles   More Theoretical   DEVELOPMENT    More Applied    Deployment
                          Innovation                                                     Configuration
Riflessioni sulla figura dell’ingegnere informatico

 Mario Raffa, l’Ingegnere oggi tra azienda e società,
 Storia dell’Ingegneria, Atti del 2° Convegno Nazionale, Napoli, 2008

Commissione Curriculum Triennale     9/21/13                    Pagina 13
Ing. Informatica Sapienza
Agenda

•   Riflessioni sulla figura dell’ingegnere informatico
•   Ruolo didattico dei linguaggi di programmazione
•   Cosa è successo nel resto del mondo
•   Indagine sui laureati in Ingegneria Informatica
•   La ristrutturazione:
     – Princìpi generali e linee guida
     – Il core del nuovo curriculum: i primi due anni
     – Il terzo anno
• Conclusioni

Commissione Curriculum Triennale    9/21/13             Pagina 14
Ing. Informatica Sapienza
Ruolo didattico dei linguaggi di programmazione

Software come tema centrale dell’ing. informatico

Anni 2000: Java come linguaggio dominante (es. sia server-
che client-side).

Criticità emerse durante gli anni:
• Complesso come primo linguaggio, focus su sintassi/
  semantica piuttosto che sulla risoluzione di problemi
• Nasconde troppi dettagli del funzionamento interno:
  inadatto per sfruttare prestazioni architetture di calcolo
• Neo-laureati tendono a usare Java per ogni cosa

      Commissione Curriculum Triennale   9/21/13    Pagina 15
      Ing. Informatica Sapienza
Ruolo didattico dei linguaggi di programmazione

Anno 2010: diversi linguaggi e paradigmi di programmazione
• Fondamentale dare dall’inizio il messaggio (e le capacità)
  che i linguaggi sono tanti e si sceglie di volta in volta
• Programmazione per sistemi di calcolo eterogenei, su larga
  scala (multi-core, cloud) e specializzati (embedded)
• Programmazione parallela (es. map-reduce), concorrente,
  funzionale, metodologie “agili”, ecc.

      Commissione Curriculum Triennale   9/21/13      Pagina 16
      Ing. Informatica Sapienza
Utilizzo linguaggi
                                             in ambito
                                             industriale

                                             Ratings: number of
                                             skilled engineers world-
                                             wide, courses and third
                                             party vendors

                                             Fonte: www.tiobe.com

Commissione Curriculum Triennale   9/21/13                  Pagina 17
Ing. Informatica Sapienza
Utilizzo linguaggi: tendenza ultimi 10 anni

      Commissione Curriculum Triennale   9/21/13   Pagina 18
      Ing. Informatica Sapienza
Agenda

•   Riflessioni sulla figura dell’ingegnere informatico
•   Ruolo didattico dei linguaggi di programmazione
•   Cosa è successo nel resto del mondo
•   Indagine sui laureati in Ingegneria Informatica
•   La ristrutturazione:
     – Princìpi generali e linee guida
     – Il core del nuovo curriculum: i primi due anni
     – Il terzo anno
• Conclusioni

Commissione Curriculum Triennale    9/21/13             Pagina 19
Ing. Informatica Sapienza
Cosa è successo nel resto del mondo?
            Introductory Computer Science Education at
          Carnegie Mellon University: A Deans’ Perspective
                   Randal E. Bryant, Klaus Sutner, Mark J. Stehlik
                                        2010

                                 Abstract

The School of Computer Science at Carnegie Mellon University is planning
major revisions to its introductory course sequence in ways that will affect
not just our own students, but also the many students from across campus
who take computer science courses. Major changes include: 1) revising our
introductory courses to promote the principles of computational thinking,
for both majors and nonmajors, 2) increasing our emphasis on the need to
make software systems highly reliable and the means to achieve this, and 3)
preparing students for a future in which programs will achieve high
performance by exploiting parallel execution.

     Commissione Curriculum Triennale          9/21/13               Pagina 20
     Ing. Informatica Sapienza
Cosa è successo nel resto del mondo?
Università                    Linguaggio 1    Linguaggio 2              Note

Caltech                       Python          C++                       Computational thinking

MIT                           Python          Java (molto self study)   Poi prog. funzionale

Carnegie Mellon               Python          C (focus correttezza)     Primo corso cenni a SQL,
                                                                        PHP & HTML
Harvard                       C               Java + ML (funz.)         Primo corso: Python &
                                                                        robot
Georgia Tech                  Python          Java

Stanford                      C++             C

Imperial College              Haskell         Java

ETH                           Eiffel          Java                      II anno: enfasi parallelismo

EPFL                          Java            C                         II anno: enfasi su prog
                                                                        concorrente
Cornell                       Python/Matlab   Java                      Web prog. (PHP, XHTML,
                                                                        …)
Toronto                       Python          Java                      Computational thinking

Columbia                      Java            C, C++

Berkeley                      Scheme          Java

           Commissione Curriculum Triennale         9/21/13                         Pagina 21
           Ing. Informatica Sapienza
Agenda

•   Riflessioni sulla figura dell’ingegnere informatico
•   Ruolo didattico dei linguaggi di programmazione
•   Cosa è successo nel resto del mondo
•   Indagine sui laureati in Ingegneria Informatica
•   La ristrutturazione:
     – Princìpi generali e linee guida
     – Il core del nuovo curriculum: i primi due anni
     – Il terzo anno
• Conclusioni

Commissione Curriculum Triennale    9/21/13             Pagina 22
Ing. Informatica Sapienza
Indagine sui laureati in Ingegneria Informatica

• Abbiamo creato su SurveyMonkey un questionario
  per i nostri laureati in ingegneria informatica
• L’indagine è stata pubblicizzata presso il gruppo
  LinkedIn dei laureati in ingegneria informatica che
  conta oltre 400 iscritti
• Il questionario è stato compilato da 51 persone in
  10 giorni (dal 30 gennaio al 9 febbraio 2013)

Commissione Curriculum Triennale   9/21/13       Pagina 23
Ing. Informatica Sapienza
Titolo di studio e anno di conseguimento

                   18	
                                 Laurea	
  (triennale)	
  
                                     23	
  
                                                        Laurea	
  Specialis6ca	
  
                                                        Laurea	
  Magistrale	
  
                            10	
  

Commissione Curriculum Triennale              9/21/13                           Pagina 24
Ing. Informatica Sapienza
Settore di impiego

                                                                         Studente	
  laurea	
  
                        2	
   1	
              6	
     1	
               magistrale	
  
              5	
                                                        do>orando	
  

                                                                         Privato	
  

                                                                         Pubblico	
  

                                                                         Autonomo	
  

                                      36	
                               Nessun	
  impiego	
  

Commissione Curriculum Triennale                               9/21/13                       Pagina 25
Ing. Informatica Sapienza
Area di lavoro

Commissione Curriculum Triennale   9/21/13   Pagina 26
Ing. Informatica Sapienza
Linguaggi e strumenti utilizzati in ambito lavorativo
20	
  
15	
  
10	
  
  5	
  
  0	
  
          Java	
  	
      SQL	
  	
     C/C++	
  	
   Javascript	
     Php	
  	
     C#	
  	
     SAP	
  	
      Ruby	
  	
  

               Commissione Curriculum Triennale                         9/21/13                                 Pagina 27
               Ing. Informatica Sapienza
Riassunto dell’indagine
Profilo dei laureati:
• Aree dominanti: Ingegneria del software e sistemi
  informativi (Java e SQL sono i linguaggi più utilizzati)
• Seguite da applicazioni Web-based
• Profilo riflette il contesto aziendale dell’area di Roma

Contenuti e tecnologie suggeriti:
• Più attività progettuali nel corso di laurea
• Più progettazione e ingegneria del software
• Più Java e RDBMS
• Più contenuti e tecnologie relativi ad applicazioni Web-
  based e mobili
     Commissione Curriculum Triennale   9/21/13       Pagina 28
     Ing. Informatica Sapienza
Agenda

•   Riflessioni sulla figura dell’ingegnere informatico
•   Ruolo didattico dei linguaggi di programmazione
•   Cosa è successo nel resto del mondo
•   Indagine sui laureati in Ingegneria Informatica
•   La ristrutturazione:
     – Princìpi generali e linee guida
     – Il core del nuovo curriculum: i primi due anni
     – Il terzo anno
• Conclusioni

Commissione Curriculum Triennale    9/21/13             Pagina 29
Ing. Informatica Sapienza
Princìpi generali e linee guida

• Core: primi due anni
• Maggiore varietà di linguaggi di programmazione
   – Primi due anni: Python, C, Java
   – Terzo anno: linguaggi query, markup, funzionali, logici, paralleli
• Introdurre la programmazione sviluppando l’attitudine al
  problem solving
• I contenuti del corso implicano la scelta del
  linguaggio: linguaggio come strumento didattico
• Nuovo approccio alle architetture degli elaboratori,
  focalizzato sull’astrazione per il programmatore
Princìpi generali e linee guida

• Approccio olistico: integrazione stretta fra i programmi
  di tutti i corsi insegnati
• Importanza dei laboratori su tutti i corsi del core (e su
  ogni semestre di ogni corso)
Approccio top-down alla risoluzione dei problemi

           Programmazione                                               Sistema di calcolo
                              problema	
  

                                                                                          HW	
  
                     Algoritmo	
  
                                                                                          OS	
  

da6	
                        programma	
                                                         rete	
  
                                                                              HW	
  
                                                                              OS	
  
                                          aprire	
  la	
  scatola	
  
          “The	
  Box”	
  
                                                                                                HW	
  
                                                                                       HW	
  
                                                                                                OS	
  

          soluzione	
  
                                     Approccio	
  integrato	
  archite.ure,	
  sistemi	
  opera3vi	
  
                                     e	
  re3,	
  dal	
  punto	
  di	
  vista	
  del	
  programmatore	
  
Sistemi di calcolo

Commissione Curriculum Triennale   9/21/13   Pagina 33
Ing. Informatica Sapienza
Architetture dal punto di vista del programmatore
   Matrice 10000x10000, Intel Core 2 Duo @ 2.8 GHz

int sum1(int** m, int n) {    int sum2(int** m, int n) {
  int i, j, sum = 0;            int i, j, sum = 0;
     for (i=0; i
Core: 48 CFU (5 esami ING-INF/05)

                            12	
  CFU	
     Sistemi	
  di	
  calcolo	
  (6	
  cfu)	
                                    12	
  CFU	
        Fondam.	
  inform	
  II	
  (6	
  CFU)	
  	
             Fondam.	
  inform	
  II	
  (6	
  CFU)	
  
Secondo	
  anno	
  

                                            Principi	
  di	
  proge>azione	
  di	
  sistemi	
         C,	
  Java,	
                        Analisi	
  e	
  tecniche	
  
                                                                                                                                                                                                   Proge>azione	
  del	
  Software:	
  
                      Secondo	
             complessi	
  su	
  re6	
  e	
  sistemi	
                  Python	
                             algoritmiche	
  (greedy,	
  divide	
  
                                                                                                                                                                                                   design	
  pa>ern,	
  UML,	
  ecc.	
  
                      semestre	
            opera6vi,	
  sicurezza,	
  interfacce,	
                                                       et	
  impera,	
  ecc.)	
  
                                            cloud	
  e	
  virtualizzazione.	
  

                                            Sistemi	
  di	
  calcolo	
  (6	
  cfu)	
                                                                         Progr.	
  orientata	
  agli	
  oggeH	
                                6	
  CFU	
  
                      Primo	
               Archite>ura	
  della	
  macchina	
  dal	
                                                                        Programming	
  in	
  the	
  large:	
  classi,	
  
                      semestre	
            punto	
  di	
  vista	
  del	
  programmatore,	
              C	
                                                 ereditarietà,	
  polimorfismo,	
  modularità,	
                        Java	
  
                                            cache,	
  pipeline,	
  assembly.	
                                                                               informa6on	
  hiding,	
  6pi	
  generici,	
  eccezioni	
  

                                                                       6	
  CFU	
           Tecniche	
  di	
  programmazione	
  
                      Secondo	
  
Primo	
  anno	
  

                      semestre	
                                                            Programmazione	
  impera6va,	
  
                                                                                  C	
       stru>ure	
  da6	
  e	
  algoritmi	
  di	
  base,	
  
                                                                                            analisi	
  informale	
  di	
  algoritmi.	
  

                                                                            12	
  CFU	
          Fondam.	
  inform	
  I	
  (6	
  CFU)	
  	
         Fondam.	
  inform	
  I	
  (6	
  CFU)	
  	
  
                      Primo	
                                                                                                                       Elemen6	
  di	
  informa6ca	
  
                                                                                                 Computa6onal	
  thinking	
  e	
  	
  
                                                                                                                                                    teorica:	
  	
  logica,	
  linguaggi	
  	
  
                      semestre	
                                                                 introduzione	
  alla	
  
                                                                            Python	
                                                                gramma6che,	
  calcolabilità,	
  
                                                                                                 programmazione	
  	
  
                                                                                                                                                    intro	
  complessità	
  

                                                                                          “La scienza dietro l’IT” (presentazione Carlo Ghezzi)
Il terzo anno (ING-INF/05)

AHvità	
  forma3ve	
  e	
  
                                                CFU	
  
cara.erizzan3	
  (obbligatorio)	
  
Basi	
  di	
  da6	
                               6	
  

AHvità	
  forma3ve	
  e	
                                 Ulteriori	
  aHvità	
  forma3ve:	
  
                                                CFU	
                                                      CFU	
  
cara.erizzan3	
  (2	
  a	
  scelta)	
                     corso	
  laboratorio	
  (1	
  a	
  scelta)	
  
Sistemi	
  opera6vi	
                             6	
     Laboratorio	
  di	
  archite>ure	
  
                                                                                                             6	
  
Archite>ure	
  dei	
  calcolatori	
               6	
     sobware	
  

Re6	
  di	
  calcolatori	
                        6	
     Laboratorio	
  di	
  sicurezza	
  
                                                                                                             6	
  
                                                          informa6ca	
  
Programmazione	
  funzionale	
  e	
  
                                                  6	
     Laboratorio	
  di	
  intelligenza	
  
parallela	
                                                                                                  6	
  
                                                          ar6ficiale	
  
Metodi	
  quan6ta6vi	
  per	
  
                                                  6	
     Laboratorio	
  di	
  informa6ca	
  
l’informa6ca	
                                                                                               6	
  
                                                          grafica	
  e	
  di	
  interfacce	
  utente	
  
Linguaggi	
  e	
  tecnologie	
  per	
  il	
  
                                                  6	
  
Web	
  
Nuova laurea parte ora: molte sfide

• Laboratori: uso intensivo della virtualizzazione
• Linguaggi multipli nei primi due anni:
   – modello consolidato in molte università estere di riferimento:
     molto self-learning
   – sostenibile nel nostro contesto?
   – fattore di rischio significativo per la nuova laurea:
     monitorare apprendimento, calibrare approfondimento contenuti
• Culturale: formare ing. informatici in grado di
   – modellare e risolvere problemi in ambito multidisciplinare
   – saper scegliere gli strumenti informatici giusti per ogni problema
   – adattarsi rapidamente ai cambiamenti, non temerli

      Commissione Curriculum Triennale   9/21/13                 Pagina 37
      Ing. Informatica Sapienza
Puoi anche leggere