Offerta Didattica

 

SCIENZE E TECNOLOGIE DELLA NAVIGAZIONE

ELEMENTI DI INFORMATICA APPLICATA

Classe di corso: L-28 - Classe delle lauree in Scienze e tecnologie della navigazione
AA: 2019/2020
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
ING-INF/05BaseLiberaLiberaNo
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
64024824024
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

Il corso di Elementi di Informatica Applicata intende fornire le conoscenze di base degli aspetti teorici e pratici dell'informatica moderna e di stimolare lapplicazione degli strumenti informatici. Obiettivo formativo del corso è quello di trasmettere agli studenti una forma di pensiero computazionale ovvero la capacità di pensare in maniera algoritmica e di codificare gli algoritmi progettati in semplici programmi eseguibili da un calcolatore elettronico attraverso un linguaggio di programmazione di alto livello. Gli studenti saranno resi in grado di analizzare un problema complesso, suddividerlo in sotto-problemi, ognuno dei quali può essere risolto tramite lutilizzo di strutture dati e algoritmi noti, e ricombinare i risultati ottenuti per giungere alla soluzione del problema iniziale. Il corso ha un taglio sia teorico che pratico che permetterà agli studenti di partire dai fondamenti e dalle metodologie dell'informatica di base e di arrivare ad essere in grado di progettare e implementare in modo autonomo programmi informatici in grado di risolvere semplici problemi.

Learning Goals

The course of Elements of Applied Computer Science intends to provide the basic knowledge of the theoretical and practical aspects of modern computer science and to stimulate the application of computer tools. The formative objective of the course is to transmit to the students a form of computational thinking or the ability to think in an algorithmic way and to encode the designed algorithms in simple programs that can be executed by an electronic computer through a high level programming language. Students will be able to analyze a complex problem, subdivide it into sub-problems, each of which can be solved through the use of known data structures and algorithms, and recombine the obtained results to reach the solution of the initial problem. The course has both a theoretical and a practical approach that will allow students to start from the fundamentals and methodologies of basic computer science and to be able to independently design and implement computer programs capable of solving simple problems.

Metodi didattici

Lezioni frontali, attività laboratoriali ed esercitazioni in classe. Il corso si svolge prevalentemente attraverso lezioni frontali su specifici aspetti disciplinari ma sono previste anche frequenti attività laboratoriali ed esercitazioni in classe che consentiranno agli studenti di prendere manualità con i principi di base della programmazione.

Teaching Methods

Lectures, laboratory activities and classroom exercises. The course takes place mainly through lectures on specific disciplinary aspects but there are also frequent laboratory activities and classroom exercises that will allow students to gain skills with the basic principles of programming.

Prerequisiti

Sono richieste conoscenze di base di analisi matematica, geometria e logica matematica.

Prerequisites

Basic knowledge of mathematical analysis, geometry and mathematical logic is required.

Verifiche dell'apprendimento

E prevista una prova in itinere e una prova finale. La prova in itinere (con domande a risposta multipla e aperta) verterà sugli argomenti relativi alla prima fase del corso e mirerà a verificare che gli studenti abbiano acquisito le conoscenze di base relative allinformatica moderna. La prova finale (con domande a risposta multipla e aperta) mirerà a verificare che gli studenti abbiano acquisito la capacità di valutare e selezionare le alternative disponibili per la soluzione di un problema e che siano in grado di progettare e sviluppare applicazioni elementari attraverso un linguaggio di programmazione di alto livello.

Assessment

An ongoing test and a final test are scheduled. The in-itinere test (with multiple choices and open questions) will focus on the topics related to the first phase of the course and will aim to verify that the students have acquired the basic knowledge related to modern computer science. The final exam (with multiple choices and open questions) will aim to verify that the students have acquired the ability to evaluate and select the alternatives available for the solution of a problem and that they are able to design and develop elementary applications through a language of high level programming.

Programma del Corso

Il corso è articolato in 2 fasi: la prima di apprendimento teorico sarà organizzata con lezioni ex-cathedra e studio individuale; la seconda di carattere pratico sarà organizzata attraverso lezioni ex-tempore e esercitazioni in classe. Prima fase FONDAMENTI DELLINFORMATICA MODERNA: Introduzione all'informatica. Il calcolatore elettronico, macchina di Von Neumann. Gerarchie di memorie. Sistemi numerici posizionali. Sistema binario. Conversioni di base. Operatori aritmetici nel sistema binario. Overflow. Algoritmi, dati ed istruzioni, programmazione strutturata, Teorema di Böhm-Jacopini. Codifica degli algoritmi, linguaggio naturale, linguaggio di programmazione, pseudo-codice. Diagramma a blocchi e di flusso. Algebra booleana: tabelle di verità, principali operatori e loro proprietà. Linguaggi e grammatiche. Grammatiche formali. Grammatica Backus-NaurForm(BNF). Sintassi e semantica. Linguaggi di programmazione: linguaggio macchina, Assembly, linguaggi di alto livello. Compilatori ed interpreti. Compilatori per linguaggio C, GCC. Seconda Fase IL LINGUAGGIO C: Caratteristiche del linguaggio C, struttura di un programma C, principali librerie. Tipi di dato, tipi elementari. Stringhe e I/O da terminale. Operatori ed espressioni, precedenza ed associatività, overloading degli operatori, conversioni di tipo. Istruzioni semplici, istruzioni di controllo, blocchi, regole di visibilità. Costrutto if e costrutto switch-case. Costrutti while, do-while e for. Tipi di dato strutturato in C. Array: definizione, operatori, inizializzazione. Gestione della memoria, Heap. Puntatori e loro operatori. Implementazione di array con puntatore. Le strutture. Tipi enumerativi. Le unioni. Tipi di dato definiti dall'utente. Le funzioni. Passaggio dei parametri per valore e per riferimento, utilizzo dei puntatori. Gestione dei file, file di testo e binari, canali standard, uso dei buffer.

Course Syllabus

The course is divided into 2 phases: the first of theoretical learning will be organized with ex-cathedra lessons and individual study; the second one of a practical nature will be organized through ex-tempore lessons and classroom exercises. First phase - FUNDAMENTALS OF MODERN COMPUTER SCIENCE: Introduction to computer science. The electronic computer, Von Neumann's machine. Hierarchies of memories. Positional numerical systems. Binary system. Basic conversions. Arithmetic operators in the binary system. Overflow. Algorithms, data and instructions, structured programming, Böhm-Jacopini theorem. Coding of algorithms, natural language, programming language, pseudo-code. Block and flow diagram. Boolean algebra: truth tables, main operators and their properties. Languages and grammars. Formal grammars. Backus-Naur Form (BNF). Syntax and semantics. Programming languages: machine language, assembly, high-level languages. Compilers and interpreters. Compilers for C language, GCC. Second Phase - LANGUAGE C: Characteristics of the C language, structure of a C program, main libraries. Types of data, elementary types. Strings and I/O. Operators and expressions, precedence and associativity, operator overloading, type conversions. Simple instructions, control instructions, blocks, visibility rules. "If" and "switch-case" constructs. "While", "do-while" and "for" constracts. Structured data types in C. Arrays: definition, operators, initialization. Memory management, Heap. Pointers and their operators. Implementation of arrays with pointers. Structures. Enumerative types. Unions. User-defined data types. Functions. Passing of parameters by value and by reference, use of pointers. File management, text and binary files, standard channels, use of buffers.

Testi di riferimento: - L. Mari, G. Buonanno, D. Sciuto, "Informatica e cultura dellinformazione", II edizione, McGraw Hill, 2013 - L. Console, M. Ribaudo, U. Avalle, F. Carmagnola, F. Cena, "Introduzione allInformatica", IV edizione, UTET Università, 2018 - S. Berretti, L. Carnevali, E. Vicario, Fondamenti di Programmazione linguaggio C, strutture dati e algoritmi elementari, C++. IV edizione, Esculapio, 2017

Elenco delle unità didattiche costituenti l'insegnamento

Docente: FRANCESCO LONGO

Orario di Ricevimento - FRANCESCO LONGO

GiornoOra inizioOra fineLuogo
Martedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Giovedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Note:
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti