Università telematica internazionale UNINETTUNO

Computer Engineering (Academic Year 2018/2019) - Programming and security

System Programming

Credits: 9
Language: English
Course description
Insegnamento obbligatorio della Laurea Magistrale in Ingegneria Informatica, collocato al I anno. Partendo dall’architettura dei sistemi operativi, il corso analizza gli aspetti più importanti dei moduli interni e approfondisce i concetti e le tecniche di gestione efficiente delle risorse di comunicazione tra processi. Viene introdotto il linguaggio C++ che oltre al C è il più usato nella programmazione di sistema. Il sistema Android viene preso in esame per illustrare la programmazione di sistema in Java.
Prerequisites
Conoscenza del linguaggio C e Java Conoscenza di Sistemi Operativi
Program
La didattica è organizzata in modo tale che ogni corso di studio venga erogato tre volte l’anno e ciascuna erogazione duri due mesi e mezzo. Il sistema consente sempre agli studenti di avere accesso ai contenuti, ma durante il periodo di erogazione, lo studente viene inserito in una classe dove al massimo sono presenti 20 allievi, in cui svolgere le attività organizzate nel tempo con la guida di un tutor esperto della materia che segue i processi di apprendimento. Questo modello di erogazione è stato adottato per consentire agli studenti di iscriversi durante tutto l’anno all’Università e di avere la possibilità di entrare nelle classi a seconda del periodo in cui si iscrivono. Il presente corso, che fornisce 9 crediti formativi, è composto da 27 videolezioni, da vedere due volte, per un totale minimo di 54 ore di attività dello studente. • Lezione n. 1: Cenni introduttivi alla Programmazione di Sistema • Lezione n. 2: Il modello di esecuzione • Lezione n. 3: Allocazione della memoria - parte I • Lezione n. 4: Allocazione della memoria - parte II • Lezione n. 5: Introduzione al linguaggio C++ • Lezione n. 6: Gestione delle eccezioni • Lezione n. 7: Composizione di oggetti • Lezione n. 8: Ereditarietà e polimorfismo • Lezione n. 9: Funzioni e operatori • Lezione n. 10: Programmazione generica • Lezione n. 11: Librerie • Lezione n. 12: Programmazione concorrente • Lezione n. 13: Sincronizzazione • Lezione n. 14: Programmazione concorrente in C++ Parte I • Lezione n. 15: Programmazione concorrente in C++ Parte II • Lezione n. 16: Programmazione concorrente in C++ Parte III • Lezione n. 17: Programmazione concorrente in C++ Parte IV • Lezione n. 18: Interprocess communication • Lezione n. 19: Ipc in windows • Lezione n. 20: Sincronizzazione in windows • Lezione n. 21: Ipc – Linux • Lezione n. 22: Introduzione ad android • Lezione n. 23: Organizzazione di un progetto android • Lezione n. 24: Attività • Lezione n. 25: Interazione tra componenti • Lezione n. 26: Concorrenza • Lezione n. 27: Servizi
Book
I testi di riferimento del corso (non obbligatori e ampiamente sovrabbondanti, alcuni tradotti in Italiano) sono i seguenti, ma possono benissimo essere sostituiti dai tantissimi altri con gli stessi argomenti trattati nel corso, facendo una ricerca su Google:
  • Silberschatz, Galvin, Gagne, “Operating System Concepts”, John Wiley & son.
  • M. Kerrisk, “The Linux Programming Interface”, No Starch Press.
  • C. Hallinan, “Embedded Linux Primer”, Prentice-Hall.
  • Deitel, C++ How to Program, 9/e - Deitel & Associates, Inc.
  • B. Heckel, Thinking in C++ (gratuito in rete nel sito dell’autore)
  • M. Carli, Android 4. Guida per lo sviluppatore, Apogeo
  • Exercises
    Le modalità di valutazione del corso sono strutturate da 2 prove di verifica intermedie, che verranno consegnate attraverso la piattaforma UNINETTUNO e valutate dal Docente/Tutor. Tali prove di verifica, di respiro più ampio rispetto agli esercizi di autovalutazione, verteranno sugli argomenti del corso e saranno composte da programmi da sviluppare. La data limite di consegna delle prove sarà inserita nell'agenda del corso ad inizio di ogni erogazione. Lo studente è chiamato ad assegnarsi un voto al momento della consegna, voto che è "cieco" al Docente/Tutor, finché questi non completi la correzione e a sua volta assegni un voto alla prova dello studente. Questi due dati andranno quindi a popolare il grafico di valutazione dello studente presente nella schermata "Valutazioni e statistiche" del Corso. Si stima che queste prove richiederanno circa 18 ore di lavoro dello studente. La prova di valutazione finale consiste nello sviluppo di uno dei macroargomenti in cui è suddiviso il corso o parte di essi, dove lo studente, senza l’ausilio di libri o appunti, dovrà dimostrare la piena conoscenza di tutte le tematiche che caratterizzano il tema proposto e mostrare con esempi attinenti la padronanza dell’argomento.
    Professor
    Claudio Fornaro
    List of lessons
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
        •  Lesson n. 11: Librerie 
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
        •  Lesson n. 21: Ipc – Linux 
    Giovanni Malnati
    Giovanni Malnati
    Giovanni Malnati
        •  Lesson n. 24: Attività 
    Giovanni Malnati
    Giovanni Malnati
        •  Lesson n. 26: Concorrenza 
    Giovanni Malnati
        •  Lesson n. 27: Servizi 
    Giovanni Malnati

    Headquarter

    Corso Vittorio Emanuele II, 39
    00186 Roma - ITALIA
    Tax code number: 97394340588
    P.IVA: 13937651001

    Certified mail

    info@pec.uninettunouniversity.net

    Student Secretariat

    tel: +39 06 692076.70
    tel: +39 06 692076.71
    e-mail: info@uninettunouniversity.net

    Videoconferencing

    Library 1st floor: 90.147.90.157
    Meeting Room 5th floor: 90.147.90.158

    Do you need further information?

    Give us your contact details


    Ask for information