Questo corso è inteso per studenti in possesso di una Laurea diversa da Informatica o Ingegneria Informatica. Lo scopo è migliorare la preparazione in aree quali programmazione, linguaggi e algoritmi (modulo Languages for Informatics), architettura dei calcolatori, sistemi operativi e reti informatiche (modulo Systems for Informatics). Oltre ai concetti di base, lo studente apprenderà come sviluppare un'applicazioen distribuita basata sui socket.
This course is intended for students graduated in disciplines different from computer science/engineering. It aims at improving the preparation in areas such as computer programming, languages, and algorithms (module on Languages for Informatics) as well as computer systems and networks (module on Systems for Informatics). In addition to basic concepts, the student will learn how to develop a distributed application based on sockets.
Lo studente sarà valutato sulla base della capacità di apprendere e mettere in pratica i principali argomenti presentati durante il corso. Durante l'esame orale lo studente dovrà mostrare la sua conoscenza degli argomenti del corso e discutere i concetti con terminologia appropriata.
The student will be assessed on her/his demonstrated ability to understand and put into practice the main contents illustrated during the course. During the oral exam the student must demonstrate her/his knowledge of the course material and present concepts with an appropriate terminology.
Lo studente sarà in grado di sfruttare le conoscenza acquisite e la pratica maturata nelle esercitazioni in classe per progettare e realizzare programmi basati sul linguaggio C.
The student is able to leverage the acquired knowledge, complemented by a number of hands-on activities developed during the course, to design and implement programs based on the C language.
Lo studente sarà valutato sulla base della sua capacità di mettere in pratica i concetti illustrati durante il corso. A questo scopo dovrà progettare e realizzare un semplice applicazione di rete da presentare e discutere durante l'esame orale
The student will be assessed on her/his ability to put into practice the concepts illustrated during the course. To this end, she/he is required to design and implement a simple distributed application and to report on this activity during the oral exam.
Lo studente acquisirà accuratezza e precisione nella programamzione
Students will acquire accuracy and precision in programming
Durante le esercitazioni di laboratorio saranno valutati il grado di accuratezza e precisione delle attività svolte
During practical activities, the accuracy and precision of the activities carried out by the student will be evaluated
Basic elements of computer science
Lezioni con slide
Esercitazioni pratiche
Scambio di materiale didattico mediante Cloud
Frequenza delle lezioni: Consigliata
Lectures with slides
Practical activities
Course materiale made available through Cloud-based tools.
Attendance: Advised
MODULE 1: LANGUAGES FOR INFORMATICS - TENTATIVE PROGRAM
PROGRAMMING AND PROBLEM SOLVING:
• Introduction to principles of programming languages;
• Introduction to problem solving;
• Introduction to program complexity.
C LANGUAGE:
• Constructs, functions, data structures and pointers in C
• Posix library and PThread
MODULE 2: SISTEMS FOR INFORMATICS - TENTATIVE PROGRAM
COMPUTER SYSTEMS. Computer Organization. Interrupt Mechanism. Assembly Language. Operating System Organization. Processes and Process Management. Memory Management, Virtual Memory. I/O Management. File System. Databases. DBMS. SQL Language.
COMPUTER NETWORKS. Preliminary Concepts. Point-to Point links. PPP Protocol. Local Area Networks (LANs). Ethernet. Switched Networks. Virtual LANs. Internet. IP Protocol, IP Addresses, Datagram Forwarding. Transport Protocols (UDP, TCP). Wireless Networks and Mobile Computing.
DISTRIBUTED APPLICATIONS. Socket-based Interface. Client/Server and P2P Applications. Popular Internet Applications (Web, E-mail, P2P Content Sharing, P2P)
MODULE 1: LANGUAGES FOR INFORMATICS - TENTATIVE PROGRAM
PROGRAMMING AND PROBLEM SOLVING:
• Introduction to principles of programming languages;
• Introduction to problem solving;
• Introduction to program complexity.
C LANGUAGE:
• Constructs, functions, data structures and pointers in C
• Posix library and PThread
MODULE 2: SISTEMS FOR INFORMATICS - TENTATIVE PROGRAM
COMPUTER SYSTEMS. Computer Organization. Interrupt Mechanism. Assembly Language. Operating System Organization. Processes and Process Management. Memory Management, Virtual Memory. I/O Management. File System. Databases. DBMS. SQL Language.
COMPUTER NETWORKS. Preliminary Concepts. Point-to Point links. PPP Protocol. Local Area Networks (LANs). Ethernet. Switched Networks. Virtual LANs. Internet. IP Protocol, IP Addresses, Datagram Forwarding. Transport Protocols (UDP, TCP). Wireless Networks and Mobile Computing.
DISTRIBUTED APPLICATIONS. Socket-based Interface. Client/Server and P2P Applications. Popular Internet Applications (Web, E-mail, P2P Content Sharing, P2P)
Y. Minsky, A. Madhavapeddy, J. Hickey, Real World OCAML: functional programming for the masses, O’Reilly, 2015
M. Gabrielli, S. Martini, Programming Languages: principles and paradigms, Springer Verlag
Kernighan, Brian W.; Ritchie, Dennis M. (February 1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3.
Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
A. Silberschatz, P. Galvin, G. Gagne, Operating Systems Concepts, IX Edition.
J. Kurose, K. Ross, Computer Networking. A Top-Down Approach - VII Edition. Pearson Education
Y. Minsky, A. Madhavapeddy, J. Hickey, Real World OCAML: functional programming for the masses, O’Reilly, 2015
M. Gabrielli, S. Martini, Programming Languages: principles and paradigms, Springer Verlag
Kernighan, Brian W.; Ritchie, Dennis M. (February 1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3.
Marc J. Rochkind. Advanced UNIX Programming 2nd Edition, Addison-Wesley Professional Computing Series, 2004.
A. Silberschatz, P. Galvin, G. Gagne, Operating Systems Concepts, IX Edition.
J. Kurose, K. Ross, Computer Networking. A Top-Down Approach - VII Edition. Pearson Education
Nessuna indicazione specifica
La frequenza non è obbligatoria ma raccomandata fortemente
No specific information
Attendance is not mandatory but highly recommended.
Esame orale con discussione di progetti assegnat
oral examination + project discussion