mail unicampaniaunicampania webcerca

    Rosario OLIVIERO

    Insegnamento di FONDAMENTI DI INFORMATICA

    Corso di laurea in INGEGNERIA CIVILE - EDILE - AMBIENTALE

    SSD: ING-INF/05

    CFU: 9,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione: Secondo Semestre

    Italiano

    Lingua di insegnamento

    ITALIANO

    Contenuti

    Principi di funzionamento e struttura dell’elaboratore elettronico.
    Algoritmi di programmazione e fondamenti di C e Python.

    Testi di riferimento

    Luca Mari, Giacomo Buonanno, Donatella Sciuto -Informatica e
    cultura dell’informazione – McGraw-Hill Seconda edizione.
    Stefano Ceri, Dino Mandrioli, Licia Sbattella - INFORMATICA:
    PROGRAMMAZIONE 2/ED - McGraw-Hill.
    Appunti forniti dal docente.

    Obiettivi formativi

    Conoscenza e capacità di comprensione (knowledge and understanding):
    Conoscenze delle basi teoriche dell’informatica e della programmazione
    dei calcolatori elettronici per il calcolo scientifico. Introduzione ai
    linguaggi di programmazione.
    Capacità di applicare conoscenza e comprensione (applying knowledge
    and understanding):
    Capacità di analizzare semplici problemi e di progettare algoritmi per la
    loro risoluzione automatica. Capacità di implementare tali algoritmi in
    programmi e di usare gli strumenti software adeguati (editor, compilatori,
    linker, etc.)
    Abilità comunicative (communication skills):
    Capacità di motivare le scelte progettuali ed implementative in modo
    logico ed argomentato. Capacità di usare la terminologia propria
    dell’informatica e della programmazione.
    Al termine dell'insegnamento lo studente dovrà dimostrare:
    - di saper progettare programmi e funzioni per la soluzione di semplici
    problemi;
    - di saper far uso di cicli, funzioni e tipi di dato sia statici che dinamici;
    - capire come funziona un semplice programma e verificarne la
    correttezza;
    - di avere compreso i meccanismi di base del funzionamento di un
    calcolatore elettronico.

    Prerequisiti

    Nessuno.

    Metodologie didattiche

    Lezioni ed esercitazioni frontali.

    Metodi di valutazione

    L’esame prevede una prova comprensiva di domande
    riguardanti la parte teorica e quesiti inererenti gli argomenti
    svolti durante le esercitazioni.

    Programma del corso

    Introduzione ai principi teorici dell’informatica
    Concetto di elaborazione e di algoritmo. Elementi di algebra di Boole.
    Automi a stati finiti e macchina di Turing. Programmi e dati di un
    elaboratore. Informazione, valore e dato. Codifica e decodifica dei dati:
    sistema binario, conversioni binario-decimale (da e verso decimale).
    Conversioni binario-esadecimale.
    Elementi di architettura di un elaboratore elettronico
    Il modello di Von Newman. Architettura dei calcolatori: memoria,
    processore, I/O, bus. Memorie cache. Linguaggio Macchina ed
    assemblativo. Compilazione ed interpretazione. Sistemi Operativi:
    funzionalità, struttura e sottoelementi.
    Introduzione al linguaggio di programmazione C
    Caratteristiche del linguaggio di programmazione C. Tipi fondamentali e
    derivati. Variabili e costanti. Operatori aritmetici. Direttive di
    compilazione. Costrutti. Input/output formattato. Array, stringhe e
    matrici. Alcuni algoritmi per array, stringhe e matrici in C. Libreria
    standard. Puntatori. Operatore di indirizzo. Dereferenziazione.
    Aritmetica dei puntatori. Struct. Operazioni con le struct. Enumerativi.
    Progettazione top-down e programmazione procedurale in C. Chiamata
    di funzioni. Passaggio di parametri. Struttura di un sorgente in C.
    Compilazione separata. Gestione di file. Cast. Debugging in C.
    Algoritmi notevoli
    Ricerca in array. Ricerca sequenziale. Ricerca binaria. Ordinamento di
    array. Selection sort. Bubble sort.
    Il Linguaggio di programmazione Python
    Interprete Python. Ambienti di sviluppo integrati. Variabili, espressioni e
    istruzioni. Costrutti. Strutture dati iterabili. Moduli. Libreria NumPy.
    Libreria matplotlib.

    English

    Teaching language

    ITALIAN

    Contents

    Operating principles and structure of the electronic computer.
    Programming algorithms and fundamentals of C and Python.

    Textbook and course materials

    Luca Mari, Giacomo Buonanno, Donatella Sciuto -Informatica e cultura
    dell’informazione – McGraw-Hill Seconda edizione.
    Stefano Ceri, Dino Mandrioli, Licia Sbattella - INFORMATICA:
    PROGRAMMAZIONE 2/ED - McGraw-Hill.
    Notes provided by the teacher.

    Course objectives

    Knowledge and understanding:
    Knowledge of the theoretical bases of computer science and
    programming of electronic calculators for scientific calculation.
    Introduction to programming languages.
    Ability to apply knowledge and understanding:
    Ability to analyze simple problems and design algorithms for their
    automatic resolution. Ability to implement such algorithms in programs
    and to use the appropriate software tools (editors, compilers, linkers, etc.)
    Communication skills:
    Ability to motivate design and implementation choices in a logical and
    reasoned way. Ability to use the terminology specific to computer science
    and programming.
    At the end of the course, the student must demonstrate:
    - to be able to design programs and functions for the solution of simple
    problems;
    - to be able to use cycles, functions and data types, both static and
    dynamic;
    - to understand how a simple program works and verify its correctness;
    - to have understood the basic mechanisms of the functioning of an
    electronic calculator.

    Prerequisites

    None

    Teaching methods

    Lectures and frontal exercises.
    Altre informazioni

    Evaluation methods

    The exam includes a test including questions regarding the theoretical
    part and questions relating to the topics covered during the exercises.

    Course Syllabus

    Introduction to the theoretical principles of computer science
    Concept of processing and algorithm. Elements of Boolean algebra. Finite
    state automata and Turing machine. Programs and data of a computer.
    Information, value and data. Encoding and decoding of data: binary
    system, binary-decimal conversions (from and to decimal). Binaryhexadecimal
    conversions.
    Elements of the architecture of an electronic computer
    The Von Newman model. Computer architecture: memory, processor, I/O,
    bus. Cache memories. Machine and assembly language. Compilation and
    interpretation. Operating systems: functionality, structure and
    subelements.
    Introduction to the C programming language
    Characteristics of the C programming language. Fundamental and
    derived types. Variables and constants. Arithmetic operators. Compilation
    directives. Constructs. Formatted input/output. Arrays, strings and
    matrices. Some algorithms for arrays, strings and matrices in C. Standard
    library. Pointers. Address operator. Dereferencing. Pointer arithmetic.
    Struct. Struct operations. Enumeratives. Top-down design and procedural
    programming in C. Function calling. Parameter passing. C source
    structure. Split compilation. File handling. Casting. Debugging in C.
    Notable algorithms
    Array search. Sequential search. Binary search. Array sorting. Selection
    sort. Bubble sort.
    The Python Programming Language
    Python interpreter. Integrated development environments. Variables,
    expressions, and statements. Constructs. Iterable data structures.
    Modules. NumPy library. matplotlib library.

    facebook logoinstagram buttonyoutube logotype