mail unicampaniaunicampania webcerca

    Domenico PASCARELLA

    Insegnamento di ELEMENTI DI PROGRAMMAZIONE

    Corso di laurea in INGEGNERIA BIOMEDICA

    SSD: ING-INF/05

    CFU: 9,00

    ORE PER UNITÀ DIDATTICA: 72,00

    Periodo di Erogazione: Primo Semestre

    Italiano

    Lingua di insegnamento

    ITALIANO

    Contenuti

    • Tecniche di sviluppo di programmi con approccio procedurale.
    • Sintassi dei linguaggi C e Python.
    • Compilatore C, interprete Python e ambienti di sviluppo integrati.
    • Progetto di semplici algoritmi e sviluppo di programmi a partire da algoritmi noti.

    Testi di riferimento

    • Alessandro Bellini, Andrea Guidi, “Linguaggio C. Guida alla programmazione con elementi di Python”, McGraw-Hill, Sesta Edizione.
    Altri testi consigliati:
    • Kernighan, Ritchie, “Il linguaggio C”, Pearson.
    • Pasquale Foggia, Mario Vento, “Algoritmi e strutture dati”, McGraw Hill.
    • Allen Downey, “Pensare in Python. Come pensare da Informatico”, Green Tea Press, Needham, Massachusetts, Seconda Edizione.

    Obiettivi formativi

    • Acquisizione di conoscenze di base inerenti il modello di programmazione procedurale e del ciclo di sviluppo del software.
    • Comprensione delle tecniche fondamentali per lo sviluppo di programmi in linguaggio ad alto livello.
    • Conoscenza del linguaggio C. Abilità nel progettare semplici algoritmi e capacità di codificarli in linguaggio C. Capacità di utilizzo di ambienti di sviluppo integrati.
    • Conoscenza basilare del linguaggio Python. Capacità di utilizzo dei costrutti, strutture dati e moduli di base. Capacità di utilizzo di ambienti di sviluppo integrati.

    Prerequisiti

    nessuno

    Metodologie didattiche

    lezioni frontali ed esercitazioni al calcolatore in aula ed in laboratorio.

    Metodi di valutazione

    • Prova di programmazione in C
    • Colloquio orale

    Altre informazioni

    Disponibilità per ricevimenti su Microsoft Teams

    Programma del corso

    • Introduzione all’informatica
    Elaborazione delle informazioni. Algoritmo. Sistemi di elaborazione. Modelli di elaboratore. Codifica delle informazioni. Elaborazione delle rappresentazioni. Sistemi numerici. Codifiche numeriche.
    • Programmazione
    Programma. Linguaggio di programmazione. Ciclo di progettazione software. Ciclo di sviluppo software. Compilazione. Linking.
    • Linguaggio C
    Caratteristiche del 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.
    • Linguaggio Python
    Differenze tra C e 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

    • Techniques for developing programs with a procedural approach.
    • Syntax of C and Python languages.
    • C compiler, Python interpreter, and integrated development environments.
    • Design of simple algorithms and development of programs based on known algorithms.

    Textbook and course materials

    • Alessandro Bellini, Andrea Guidi, “Linguaggio C. Guida alla programmazione con elementi di Python”, McGraw-Hill, Sixth Edition.
    Other suggested readings and manuals:
    • Kernighan, Ritchie, “Il linguaggio C”, Pearson.
    • Pasquale Foggia, Mario Vento, “Algoritmi e strutture dati”, McGraw Hill.
    • Allen Downey, “Pensare in Python. Come pensare da Informatico”, Green Tea Press, Needham, Massachusetts, Second Edition.

    Course objectives

    • Basic knowledge of procedural programming model and software development lifecycle.
    • Basic techniques for program development in high-level languages.
    • Knowledge of C programming language. Design of simple algorithms and their C implementation. Usage of integrated development environments.
    • Basic knowledge of Python programming language. Usage of basic constructs, data structures, and modules. Usage of integrated development environments

    Prerequisites

    None

    Teaching methods

    Lectures and computer-based exercises, in the classroom and in the laboratory

    Evaluation methods

    • C programming
    • Oral discussion

    Other information

    Availability for meetings on Microsoft Teams.

    Course Syllabus

    • Introduction to Computer Science
    Information processing. Algorithms. Processing systems. Computer models. Information encoding. Number systems. Numeric encodings.
    • Programming
    Program. Programming language. Software design cycle. Software development lifecycle. Compilation. Linking.
    • C Language
    Characteristics of C. Basic 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 operator. Pointer arithmetics. Structs. Operations with structs. Enumerations. Top-down design and procedural programming in C. Function calls. Parameter passing techniques. Structure of a C source file. Separate compilation. File management. Casting. Debugging in C.
    • Relevant Algorithms
    Search in arrays. Linear search. Binary search. Array sorting. Selection sort. Bubble sort.
    • Python Language
    Differences between C and Python. Python interpreter. Integrated development environments. Variables, expressions, and statements. Constructs. Iterable data structures. Modules. NumPy library. Matplotlib library.

    facebook logoinstagram buttonyoutube logotypelinkedin logotype