mail unicampaniaunicampania webcerca

    Stefano MARRONE

    Insegnamento di FONDAMENTI DI INFORMATICA

    Corso di laurea in MATEMATICA

    SSD: INF/01

    CFU: 8,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione: Primo Semestre

    Italiano

    Lingua insegnamento

    ITALIANO

    Contenuti

    Principi di architettura e di programmazione dei calcolatori elettronici

    Testi di riferimento

    Linguaggio C - Alessandro Bellini, Andrea Guidi - McGraw-Hill Education
    Brian Kernighan e Dennis Ritchie, Il linguaggio C: principi di
    programmazione e manuale di riferimento - Pearson
    Dispense del docente

    Obiettivi formativi

    Conoscenza e capacità di comprensione (knowledge and understanding):
    Conoscenze dei principi dell’informatica e della programmazione dei
    calcolatori elettronici nel calcolo scientifico. Introduzione ad un linguaggio
    di programmazione imperativo (linguaggio C).
    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

    Metodi didattici

    40 ore di lezione, 36 ore di attività di laboratorio. Data la presenza di una
    prova d’esame pratica è consigliata la frequenza alle lezioni di
    laboratorio.

    Modalità di verifica dell'apprendimento

    L’esame si compone di due prove: una prova al calcolatore ed una prova
    orale.
    La prova al calcolatore mira ad accertarsi delle competenze legate
    all’analisi ed allo sviluppo di programmi in C. Si chiederà lo sviluppo di
    semplici programmi o porzioni di essi: la prova viene superata se i
    programmi sono scritti in modo corretto e soddisfano i requisiti richiesti
    dalla traccia.
    La prova orale mira a valutare ulteriori capacità di programmazione e la
    verifica delle conoscenze dello studente anche attraverso il collegamento
    di contenuti trasversali e la capacità espositiva.
    Non sono previste prove di esonero durante il corso.
    Il voto finale sarà espresso in trentesimi.

    Altre informazioni

    Nessuna

    Programma esteso

    PROGRAMMA
    Introduzione
    Concetto di elaborazione e di algoritmo, esecutori di algoritmi. Algebra di
    Boole. Automi a stati finiti e macchina di Turing. Modello funzionale di
    Von Neumann, programmi e dati di un elaboratore. Informazione, valore
    e dato. Codifica e decodifica dei dati: codifica binaria, conversioni di basi
    decimale-binario (da e verso decimale). Conversioni binario-esadecimale.
    Elementi di architettura
    Architettura dei calcolatori: memoria, processore, I/O, bus. Memorie
    cache. Linguaggio Macchina ed assemblativo. Compilazione ed
    interpretazione. Sistemi Operativi: funzionalità, struttura e sottoelementi.
    Il sistema operativo Unix: principali comandi da terminale, editing di file,
    compilazione C sotto Unix.
    Concetti fondamentali di programmazione
    Il linguaggio di programmazione C. I dati nella programmazione: concetto
    di variabile e tipo di dato. Tipo intero (rappresentazione segno e modulo
    e rappresentazione complemento a due). Tipo reale: sistemi floating
    point. Tipo booleano. Tipo carattere. Dichiarazione ed uso delle variabili.
    Operatori logico-aritmetici. Operatori di flusso di controllo: sequenza,
    selezione (IF, IF-ELSE, SWITCH), iterazioni (FOR, WHILE, DO-WHILE).
    Tipi di dato
    Concetto di array: i vettori come array monodimensionali. Le matrici
    come array bidimensionali. Algoritmi notevoli: ricerca (sequenziale,
    binaria) e ordinamento (bubble sort). I puntatori in C: assegnazione ed
    uso dei puntatori a variabile semplice. Allocazione dinamica di array.
    Gestione stringhe in C. Lettura e scrittura di file.
    Procedure e funzioni
    Concetto di sottoprogramma: procedure e funzioni. Schemi di passaggio
    dei parametri. Parametri di
    ingresso/uscita. Concetto di ricorsione.

    English

    Teaching language

    Italian

    Contents

    Principles of architecture and programming of electronic calculators

    Textbook and course materials

    Linguaggio C - Alessandro Bellini, Andrea Guidi - McGraw-Hill Education
    Brian Kernighan e Dennis Ritchie, Il linguaggio C: principi di
    programmazione e manuale di riferimento - Pearson
    Teacher's paper

    Course objectives

    Knowledge and understanding (knowledge and understanding):
    Knowledge of the principles of informatics and programming of electronic
    calculators in scientific calculation. Introduction to an imperative
    programming language (C language).
    Ability to apply knowledge and understanding (applying knowledge and
    understanding):
    Ability to analyze simple problems and to design algorithms for their
    automatic resolution. Ability to implement these algorithms in programs
    and to use the appropriate software tools (editors, compilers, linkers,
    etc.)
    Communication skills (communication skills):
    Ability to motivate design and implementation choices in a logical and
    reasoned way. Ability to use the proper terminology of information
    technology and programming.
    At the end of the course the student must demonstrate:
    - to know how to design programs and functions for the solution of simple
    problems;
    - to know how to make use of cycles, functions and types of data both
    static and dynamic;
    - 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

    40 hours of lessons, 36 hours of laboratory activities. Given the presence
    of a practical exam, it is recommended to attend laboratory classes.

    Assessment methods

    The exam consists of two tests: a computer test and an oral exam.
    The computer test aims at ascertaining the skills related to the analysis
    and development of C programs. We will ask for the development of
    simple programs or portions of them: the test is passed if the programs
    are written correctly and meet the required requirements from the track.
    The oral exam aims to evaluate further programming skills and the verification of the student's knowledge also through the connection of
    transversal contents and the exhibition capacity.
    No exoneration tests are scheduled during the course.
    The final mark will be expressed in thirtieths.

    Other information

    None

    Detailed syllabus

    PROGRAM
    Introduction
    Concept of processing and algorithm, algorithm executors. Boole's
    algebra. Finite state automata and Turing machine. Functional model of
    Von Neumann, programs and data of a computer. Information, value and
    data. Encoding and decoding of data: binary coding, conversion of
    decimal-binary bases (from and to decimal). Binary-hexadecimal
    conversion.
    Elements of architecture
    Computer architecture: memory, processor, I / O, bus. Cache memories.
    Machine and assembly language. Compilation and interpretation.
    Operating Systems: functionality, structure and sub-elements. Unix
    operating system: main terminal commands, file editing, C compiling
    under Unix.
    Fundamental planning concepts
    The programming language C. Data in programming: concept of variable
    and data type. Integer type (sign and form representation and two's
    complement representation). Real type: floating point systems. Boolean
    type. Font type. Declaration and use of variables. Logic-arithmetic
    operators. Control flow operators: sequence, selection (IF, IF-ELSE,
    SWITCH), iterations (FOR, WHILE, DO-WHILE).
    Types of data
    Array concept: vectors as one-dimensional arrays. Arrays as two-
    dimensional arrays. Notable algorithms: search (sequential, binary) and
    sorting (bubble sort). Pointers in C: assignment and use of simple-
    variable pointers. Dynamic array allocation. String management in C.
    Reading and writing files.
    Procedures and functions
    Subprogram concept: procedures and functions. Parameters for passing
    parameters. Parameters of
    input / output. Recursion concept.

    facebook logoinstagram buttonyoutube logotype