Scheda programma d'esame
SYSTEMS AND LANGUAGES FOR INFORMATICS
GIUSEPPE ANASTASI
Academic year2022/23
CourseCYBERSECURITY
Code003IA
Credits12
PeriodSemester 1
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
LANGUAGES FOR INFORMATICSINF/01LEZIONI48
FEDERICA PAGANELLI unimap
SYSTEMS FOR INFORMATICSING-INF/05LEZIONI48
GIUSEPPE ANASTASI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

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.

Knowledge

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.

Modalità di verifica delle conoscenze

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.

Assessment criteria of knowledge

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. 

Capacità

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.

Skills

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.

Modalità di verifica delle capacità

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

Assessment criteria of skills

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.

Comportamenti

Lo studente acquisirà accuratezza e precisione nella programamzione

Behaviors

Students will acquire accuracy and precision in programming

Modalità di verifica dei comportamenti

Durante le esercitazioni di laboratorio saranno valutati il grado di accuratezza e precisione delle attività svolte

Assessment criteria of behaviors

During practical activities, the accuracy and precision of the activities carried out by the student will be evaluated

Prerequisites

Basic elements of computer science

Indicazioni metodologiche

Lezioni con slide

Esercitazioni pratiche 

Scambio di materiale didattico mediante Cloud

Frequenza delle lezioni: Consigliata

Teaching methods

Lectures with slides

Practical activities

Course materiale made available through Cloud-based tools.

Attendance: Advised

Programma (contenuti dell'insegnamento)

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)

Syllabus

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)

Bibliografia e materiale didattico

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

Bibliography

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

Indicazioni per non frequentanti

Nessuna indicazione specifica

La frequenza non è obbligatoria ma raccomandata fortemente

Non-attending students info

No specific information

Attendance is not mandatory but highly recommended.

Modalità d'esame

Esame orale con discussione di progetti assegnat

Assessment methods

oral examination + project discussion 

Updated: 29/07/2022 12:53