INFORMATICA (CDL 23) | Università degli studi di Bergamo - Didattica e Rubrica

INFORMATICA (CDL 23)

Attività formativa monodisciplinare
Codice dell'attività formativa: 
23031

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2020/2021
Insegnamento (nome in italiano): 
INFORMATICA (CDL 23)
Insegnamento (nome in inglese): 
COMPUTER SCIENCE
Tipo di attività formativa: 
Attività formativa di Base
Tipo di insegnamento: 
Obbligatoria
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno di corso: 
1
Anno accademico di offerta: 
2020/2021
Crediti: 
6
Responsabile della didattica: 
Mutuazioni
  • Corso di studi in INGEGNERIA DELLE TECNOLOGIE PER L'EDILIZIA - Percorso formativo in PERCORSO COMUNE

Altre informazioni sull'insegnamento

Modalità di erogazione: 
Didattica Convenzionale
Lingua: 
Italiano
Ciclo: 
Primo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
48
Ore di studio individuale: 
90
Ambito: 
Matematica, informatica e statistica
Prerequisiti

Notazione esponenziale o scientifica. Arrotondamento dei valori numerici

Numeri reali. Operazioni con numeri reali. Potenza ad esponente razionale e reale. Logaritmo di un numero reale positivo

Concetto di funzione

Vettori e Matrici: Operazioni con vettori e matrici

Obiettivi formativi

Il corso introduce alla conoscenza dei principi dell'informatica e della programmazione di tipo procedurale.

Il corso ha l'obiettivo primario di fornire allo studente le conoscenze delle principali strutture dati, degli algoritmi di base e dei rudimenti di complessità computazionale.

Il corso inoltre fornisce allo studente le tecniche e gli strumenti per lo sviluppo di programmi applicativi mediante l'utilizzo del linguaggio di programmazione PYTHON

Contenuti dell'insegnamento

Breve storia dell'informatica.
Elaboratori meccanici passivi, meccanici attivi, elettromeccanici ed elettronici.
Machcina di Von Neumann

Elaborazione automatica dell'informazione e algoritmi - Algoritmi e programmi - Una notazione grafica per esprimere algoritmi - Linguaggi di programmazione - Il progetto di programmi - elementi della teoria della complessità

Rappresentazione dell'informazione: Sistemi numerici - Conversione fra sistemi numerici - Sistema di numerazione binaria - Operazioni tra numeri binari - overflow e underflow - Rappresentazione dei numeri interi - Rappresenzione dei numeri con segno - Rappresentazione in virgola fissa e virgola mobile - Codici e Rappresentazione dei Caratteri - Algebra di Boole, Funzioni logiche, Espressione logiche, Applicazioni dell'algebra booleana

Cenni della struttura di un elaboratore e sistema di elaborazione: Struttura di un elaboratore: memoria centrale, unita centrale, funzionamento elementare dell'elaboratore.

Cenni sui sistemi di elaborazione: software di base: Traduzione ed esecuzione dei programmi - ambiente di programmazione - Linguaggi di programmazione: linguaggi imperativi compilati ed interpretati

Programmazione in linguaggio PYTHON:
ambiente di sviluppo interattivo e batch.
Python shell,IDLE, PyCharm
variabili e tipi di base. Operazioni sui tipi di base.
Assegnamenti di variabili singoli e multipli
strutture di controllo condizionali
strutture di controllo cicliche
tipi strutturati: liste, tuple e dizionari
algoritmi notevoli sui numeri
algoritmi notevoli su liste:
ricerca sequenziale esaustiva,ottimizzata ed ordinata
ricerca dicotomica
algoritmi di ordinamento: ins-sort, sel-sort, bubble-sort, quick-sort
sottoprogrammi: procedure e funzioni
ricorsione semplice e multipla
realizzazione di librerie

Metodi didattici

lezioni frontali per la presentazione delgi argomenti teorici
realizzazione in aula di algoritmi e programmi per la loro validazione
attività di laboratorio per la realizzazione di programmi in linguaggio PYTHON

Modalità verifica profitto e valutazione

prova scritta organizzata in due parti:
parte A: composta da domande a risposta chiusa
parte B: esercizi di codifica dell'informazione, progettazione di algoritmi e realizzazione di programmi in linguaggio python

Prerequisites

Exponential or scientific notation. Rounding of numerical values

Real numbers. Operations with real numbers. Power with rational and real exponent. Logarithm of a positive real number

Function concept

Vectors and Matrices: Operations with vectors and matrices

Educational goals

The course introduces the knowledge of the principles of computer science and procedural programming.

The course has the primary objective of providing the student with the knowledge of the main data structures, basic algorithms and rudiments of computational complexity.

The course also provides the student with the techniques and tools for developing application programs using the PYTHON programming language.

Course content

Brief history of computer science.
Passive mechanical, active mechanical, electromechanical and electronic processors.
Machcina by Von Neumann

Automatic information processing and algorithms - Algorithms and programs - A graphic notation to express algorithms - Programming languages ​​- The design of programs - elements of complexity theory

Information representation: Number systems - Conversion between number systems - Binary numbering system - Operations between binary numbers - overflow and underflow - Representation of integers - Representation of numbers with sign - Representation in fixed and floating point - Codes and representation of Characters - Boolean algebra, Logical functions, Logical expressions, Applications of Boolean algebra

Outline of the structure of a computer and processing system: Structure of a computer: central memory, central unit, elementary operation of the computer.

Notes on processing systems: basic software: Translation and execution of programs - programming environment - Programming languages: compiled and interpreted imperative languages

Programming in PYTHON language:
interactive and batch development environment.
Python shell, IDLE, PyCharm
basic variables and types. Operations on basic types.
Assignments of single and multiple variables
conditional control structures
cyclical control structures
structured types: lists, tuples and dictionaries
remarkable algorithms on numbers
notable algorithms on lists:
exhaustive, optimized and orderly sequential search
dichotomous research
sorting algorithms: ins-sort, sel-sort, bubble-sort, quick-sort
subroutines: procedures and functions
simple and multiple recursion
creation of libraries

Teaching methods

lectures for the presentation of theoretical arguments
creation of algorithms and programs for their validation in the classroom
laboratory activities for the realization of programs in PYTHON language

Assessment and Evaluation

written test organized in two parts:
part A: composed of closed-ended questions
part B: information coding exercises, algorithm design and implementation of programs in python language