- Introduction To Computer Science
- Summary
Course Syllabus
Obiettivi
Contenuti sintetici
- Capire cos’è l’informatica
- Conoscere la storia dell'informatica
- Capire perché l’informatica è importante per le scienze della terra
- Apprendere nozioni legate alle tecnologie di rete, comprendere la differenza tra Internet e il Web
- Comprendere il problema dell'accesso ai dati e alle informazioni
- Capire logica e architettura di un computer
- Familiarizzare con l’organizzazione, l’analisi e la visualizzazione dei dati
- Familiarizzare con il concetto di base di dati relazionale e linguaggio di interrogazione SQL
- Familiarizzare con gli algoritmi
- Mettere in pratica le teorie in applicazioni concrete
- Imparare ad utilizzare Matlab ed Excel per implementare algoritmi, immagazzinare, processare e analizzare dati, e produrre grafici.
Programma esteso
Introduzione
- Introduzione al corso, organizzazione di lezioni ed esercitazioni
- Cos'è l'informatica
- Dati e informazione
- Cosa sono gli algoritmi
- Perché l'informatica per le Scienze della Terra
- I G.I.S. (Geographical Information System)
Storia dell'Informatica
- Preistoria e primi "passi" dell'informatica
- La definizione dei fondamenti teorici (logica, algebra Booleana, i primi programmi)
- Le macchine elettromeccaniche
- La macchina di Turing
- ENIAC e gli antenati del computer digitale
- Transistor, chip e microprocessori
- I primi personal computer
- Conservazione e trasmissione di dati (protocolli)
- La legge di Moore
- ARPANET e il percorso che conduce ad internet
- La diffusione al grande pubblico dei computer (prima) e della rete (dopo)
Internet e il Web
- Differenza tra Internet e il Web
- Il World Wide Web
- Web statico e Web dinamico
- Web 1.0, 2.0, 3.0, 4.0
- Il Web sociale
Il problema dell'accesso alle informazioni
- Introduzione al problema
- I motori di ricerca
- I sistemi di raccomandazione
- L'accesso alle informazioni sui social media
- Analisi dei dati sui social media
- Le componenti di una rete di calcolatori
- Classificazione delle reti per estensione
- Classificazione delle reti per topologia
- Classificazione delle reti per mezzo trasmissivo
- I protocolli di comunicazione
- Internet e Internet of Things
- I servizi di Internet: Web, posta elettronica, DNS
La rappresentazione dei dati nel sistema binario
- I sistemi di numerazione
- Il sistema decimale
- Il sistema binario
- Conversione dei numeri in diverse basi
- La rappresentazione in modulo e segno
- La rappresentazione in complemento a due
- L'algebra di Boole e i circuiti elettronici
La codifica dei testi, delle immagini e del suono
- La rappresentazione del testo
- I caratteri
- I sistemi di rappresentazione ASCII e Unicode
- La rappresentazione delle immagini
- Grafica raster
- Grafica vettoriale
- La rappresentazione del suono
- Il campionamento audio
- La qualità audio nella rappresentazione digitale
Architettura del calcolatore
- L'hardware
- L'architettura di Von Neumann
- CPU, Memoria, I/O, BUS
- Il software
- Il sistema operativo
I database e il modello relazionale
- Dati e informazioni
- Sistemi informativi
- Il sistema informatico
- Basi di dati
- Sistemi di gestione di basi di dati
- Il modello relazionale
- Relazioni tra tabelle (uno a uno, uno a molti, molti a molti)
Il linguaggio SQL
- Definizioni di schemi e di istanze in SQL
- Sintassi e domini elementari
- Vincoli interrelazionali
- Proiezione e selezione
- Selezione dei dati da più tabelle
Introduzione agli algoritmi e alla programmazione
- Cos'è un algoritmo
- Le proprietà degli algoritmi
- I diagrammi di flusso (istruzioni condizionali e cicli)
- Lo pseudocodice
- I linguaggi di programmazione
- I paradigmi di programmazione
I linguaggi procedurali
- Variabili e costanti
- Le istruzioni di assegnamento
- I tipi di dato (elementari e derivati)
- Le funzioni
- Le strutture di controllo (condizionali e iterative)
Introduzione a MATLAB - Prima parte
- Ricapitolazione dei concetti fondamentali della programmazione procedurale
- Esempio di algoritmo (diagramma di flusso, pseudocodice e codice MATLAB)
- Descrizione dell'ambiente di programmazione MATLAB
- Utilizzo di base
- Le variabili in MATLAB
Introduzione a MATLAB - Seconda parte
- Valori scalari, vettori e matrici in MATLAB
- Inizializzare vettori e matrici
- Accedere agli elementi di vettori e matrici
- Operazioni sulle matrici
- Gli operatori in MATLAB (aritmetici, di confronto, logici)
- Le strutture di controllo in MATLAB (if-else, switch-case, while, for)
Durante le Esercitazioni, verranno inoltre illustrati, nella pratica, l'utilizzo di Excel e delle sue principali funzioni e verrà approfondito l'utilizzo di MATLAB per la definizione di algoritmi per il trattamento e l'analisi dei dati.
Prerequisiti
Nessuno
Modalità didattica
- Lezioni frontali (Dr. Marco Viviani)
- Esercitazioni in laboratorio (turno "A-G" [TUGEA]: Dr. Davide Maspero; turno "H-Z" [TUGEB]: Dr. Giuseppe Dattola)
- Il corso viene erogato in lingua italiana
Materiale didattico
Testi consigliati (non obbligatori)
TEORIA e concetti di base
- Informatica. Una panoramica generale J. Glenn Brookshear Pearson
- Informatica arte e mestiere. MacGrawHill
MATLAB: testi per approfondire
- Munther Gdeisat, Francis Lilley. Matlab by Example. Programming Basics 2013. Elsevier
- M.H.Trauth - MATLAB Recipes for Earth Sciences. Springer
- Dave Heslop. An Introduction to MATLAB for Geoscientists, 2012. Risorsa Online
Risorse software (obbligatorie)
Software installabili con licenza unimib:
- MATLAB (Windows/Mac): https://unimibit.sharepoint.com/portale/service-desk/SitePages/Area%20download%20-%20Studenti.aspx
- Microsoft Excel (Windows/Mac)
Periodo di erogazione dell'insegnamento
Marzo - giugno 2020
Modalità di verifica del profitto e valutazione
- Prova al computer (in laboratorio o online): domande teoriche + esercizi pratici
- 6 domande con scelta a risposta multipla per il controllo estensivo di concetti teorici e teorico-pratici illustrati a lezione
- 1 domande aperta per il controllo intensivo della preparazione sul programma d'esame (aspetti teorici)
- 3 esercizi per la verifica dell'apprendimento dell'utilizzo di Excel, della conoscenza del linguaggio SQL, dei concetti fondamentali della programmazione mediante l'utilizzo di MATLAB.
- Colloquio (facoltativo)
Orario di ricevimento
Su appuntamento:
- Dr. Marco Viviani (marco.viviani@unimib.it)
- Dr. Giuseppe Dattola (giuseppe.dattola@unimib.it)
- Dr. Davide Maspero (davide.maspero@unimib.it)
Aims
The main objective of the course is to provide fundamental expertise and practical skills on computer science and data analysis, with particular focus on the possible applications to the sphere of geological sciences.
Contents
- The course will allow to:
- Understand what computer science is
- Know the history of computer science
- Understand what computer science is important in geological sciences
- Learning notions related to network technologies, understanding the difference between the Internet and the Web
- Understanding the problem of access to data and information
- Understand the logic and architecture of computers
- Become familiar with the organization, analysis, and visualization of data
- Become familiar with the concept of relational database and SQL query language
- Become familiar with algorithms
- Transform theories into practical applications
- Learn how using Matlab and Excel to develop algorithms, store, process and analyze data, and produce graphs.
Detailed program
Introduction
- Introduction to the course, organization of lessons and exercises
- What is computer science
- Data and information
- What are the algorithms
- Why computer science for Earth Sciences
- G.I.S. (Geographical Information Systems)
History of Computer Science
- Prehistory and the first "steps" of computer science
- The definition of the theoretical foundations (logic, Boolean algebra, the first programs)
- Electromechanical machines
- Turing's machine
- ENIAC and the ancestors of the digital computer
- Transistors, chips, and microprocessors
- The first personal computers
- Storage and transmission of data (protocols)
- Moore's law
- ARPANET and the path that leads to the Internet
- The dissemination to the general public of computers (first) and the networks (after)
Internet and the Web
- Difference between the Internet and the Web
- The World Wide Web
- Static Web and Dynamic Web
- Web 1.0, 2.0, 3.0, 4.0
- The social Web
The problem of access to information
- Introduction to the problem
- Search engines
- Recommendation systems
- Access to information on social media
- Analysis of data on social media
Computer networks
- The components of a computer network
- Network classification by extension
- Classification of networks by topology
- Network classification by transmission medium
- Communication protocols
- Internet and Internet of Things
- Internet services: Web, e-mail, DNS
The representation of data in the binary system
- The numerical systems
- The decimal system
- The binary system
- Conversion of numbers to different bases
- Signed number representations
- The representation in two's complement
- Boolean algebra and electronic circuits
The coding of texts, images, and sound
- The representation of the text
- The characters
- The ASCII and Unicode representation systems
- The representation of images
- Raster graphics
- Vector graphic
- The representation of sound
- Audio sampling
- Audio quality in digital representation
Computer architecture
- The hardware
- The architecture of Von Neumann
- CPU, Memory, I / O, BUS
- The software
- The operating system
Databases and the relational model
- Data and information
- Informative system
- The computer system
- Databases
- Database management systems
- The relational model
- Relationships between tables (one to one, one to many, many to many)
The SQL language
- Schema and instance definitions in SQL
- Syntax and elementary domains
- Interrelational constraints
- Projection and selection
- Selection of data from multiple tables
Introduction to algorithms and programming
- What is an algorithm
- The properties of the algorithms
- Flow charts (conditional instructions and cycles)
- The pseudocode
- Programming languages
- Programming paradigms
Procedural languages
- Variables and constants
- Assignment instructions
- Data types (elementary and derivatives)
- Functions
- Control structures (conditional and iterative)
Introduction to MATLAB - First part
- Summary of the fundamental concepts of procedural programming
- Algorithm example (flow chart, pseudocode and MATLAB code)
- Description of the MATLAB programming environment
- Basic use
- The variables in MATLAB
Introduction to MATLAB - Second part
- Scalar values, vectors, and matrices in MATLAB
- Initialize vectors and matrices
- Access elements of vectors and matrices
- Matrix operations
- The operators in MATLAB (arithmetic, comparison, logic)
- The control structures in MATLAB (if-else, switch-case, while, for)
During the Exercises, the use of Excel and its main functions will be illustrated in practice, and the use of MATLAB for the definition of algorithms for data processing and analysis will be discussed in depth.
Prerequisites
None
Teaching form
- Lectures (Dr. Marco Viviani)
- Laboratory exercices (turno "A-G" [TUGEA]: Dr. Davide Maspero; turno "H-Z" [TUGEB]: Dr. Giuseppe Dattola)
- The course is delivered in Italian
Textbook and teaching resource
Suggested textbooks (in Italian language)
Fundamentals of computer science
- Informatica. Una panoramica generale J. Glenn Brookshear Pearson
- Informatica arte e mestiere. MacGrawHill
MATLAB
- Munther Gdeisat, Francis Lilley. Matlab by Example. Programming Basics 2013. Elsevier
- M.H.Trauth - MATLAB Recipes for Earth Sciences. Springer
- Dave Heslop. An Introduction to MATLAB for Geoscientists, 2012. Risorsa Online
Software (compulsory)
Software available with unimib licence:
- MATLAB (Windows/Mac): https://unimibit.sharepoint.com/portale/service-desk/SitePages/Area%20download%20-%20Studenti.aspx
- Microsoft Excel (Windows/Mac)
Please access with unimib user and password at your personal page.
Semester
March - June 2020
Assessment method
- Computer test (in a laboratory or online): theoretical questions + practical exercises
- 5 questions with multiple choice for the extensive control of theoretical and theoretical-practical concepts illustrated in class
- 3 open questions for intensive preparation control on the exam program (theoretical aspects)
- 3 exercises for verifying the learning of using Excel, the knowledge of the SQL language, the fundamental concepts of programming using MATLAB.
- Oral test (optional)
Office hours
By appointment:
- Dr. Marco Viviani (marco.viviani@unimib.it)
- Dr. Giuseppe Dattola (giuseppe.dattola@unimib.it)
- Dr. Davide Maspero (davide.maspero@unimib.it)
Key information
Staff
-
Giuseppe Dattola
-
Davide Maspero
-
Dagmawi Delelegn Tegegn
-
Marco Viviani
-
Simone Pilia