View syllabus
Programming Fundamentals
CINZIA BERNARDESCHI
Academic year2020/21
CourseBIOMEDICAL ENGINEERING
Code674II
Credits6
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
FONDAMENTI DI INFORMATICAING-INF/05LEZIONI60
CINZIA BERNARDESCHI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Lo studente che completa l'insegnamento con successo avrà conoscenze su (i)  concetti di base della  rappresentazione dell'informazione e dell'architettura di un  calcolatore; (ii)  principi della programmazione strutturata in un linguaggio di alto livello; (iii)  un sottoinsieme significativo del linguaggio di programmazione  C++.

Knowledge

The student who successfully completes the course is expected to acquire: (i) basic concepts on  binary data representation and  computer architecture; (ii) fundamentals of problem solving  in computer programming; (iii) learning of a relevant subset of the programming language  C++.

Modalità di verifica delle conoscenze

Durante la prova scritta lo studente dovrà dimostrare di avere acquisito le conoscenze  mediante domande da rispondere per iscritto sulla parte di teoria e la scrittura di un programma a partire dalle specifiche di un problema.

Assessment criteria of knowledge

In the written exam, the student must be able to demonstate  knowledge on the material of the course by answering to questions on the presented topics, and by developing a program in C++ programming language.

Capacità

L'insegnamento ha l'obiettivo di sviluppare le capacità  (i) di analisi di un problema informatico, (ii) di identificazione  di procedimenti risolutivi (algoritmi)  (iii)  di scrittura di programmi utilizzando correttamente un linguaggio  di programmazione.

Skills

The course aims at developing capabilities on   (i) understanding a computer programming problem, (ii) designing an algorithm to solve it  (iii)  write the program using a programming language.

Modalità di verifica delle capacità

Le capacita' verranno verificate  durante l'esame facendo svolgere  esercizi di programmazione allo studente a partire dalle specifiche del problema descritte in linguaggio naturale.

Assessment criteria of skills

Capabilities will be verified by having students solve exercises of programming starting from the specification of a problem in natural language during the exam.

 

Comportamenti

Lo studente acquisirà un approccio rigoroso all'analisi di problemi informatici, alla descrizione di algoritmi e allo sviluppo di programmi.

Behaviors

The student is expected to acquire a rigorous approach to the analysis of problems, to the description of solving procedure and to the development of programs.

Modalità di verifica dei comportamenti

I comportamenti verranno verificati in sede di prova scritta richiedendo allo studente la scrittura in C++ di un programma a partire dalle specifiche del problema.

Assessment criteria of behaviors

Behaviours will be verified during the written exam,  by giving a student the description of a problem to be solved by writing a program in C++.

Prerequisiti (conoscenze iniziali)

Nessuno.

Prerequisites

No one

Indicazioni metodologiche

Lezioni frontali con l'ausilio di diapositive.

Esercitazioni  svolte in aula, anche con l'utilizzo dei PC personali degli studenti, e utilizzando materiale fornito dal docente.

Sito web del corso per il materiale didattico usato durante le ore di lezione e esercitazione in classe e per ulteriori esercizi  assegnati durante il corso.

Teaching methods

Face two face lectures with slides.

Hands-on activities in classroom, using students’ personal computers, and the material provided by the teacher.

Course website used for downloading teaching materials and practical exercises.

Programma (contenuti dell'insegnamento)

Rappresentazione dell'informazione e organizzazione di un calcolatore: Modello generale dell'architettura del calcolatore. Rappre­sentazione dell'informazione all'interno dei calcolatori: numeri, testi ed immagini. Il linguaggio assembler (cenni).

Fondamenti di programmazione: Il concetto di algoritmo. Il calcolatore come esecutore di algoritmi. Sintassi e semantica di un linguaggio di programmazione. Metodologie di programmazione strutturata e orientata alle procedure. Il linguaggio C++: tipi fondamentali. Istruzioni semplici, strutturate e di salto. Funzioni. Ricor­sione. Riferimenti e puntatori. Array. Strutture e unioni. Memoria libera. Visibilità e collegamento. Strutture dati: Liste, Code, Pile. Alcuni algoritmi di ricerca e di ordinamento. Limiti della programmazione a moduli. Tipi di dato astratto. Introduzione alle Classi.

Un ambiente di sviluppo per programmi in linguaggio C++:  Code::Blocks

Syllabus

Fundamentals of binary data representation and  computer architecture.

Computer Programming Basics: the notion of  algorithm, syntax and sematics of a programming language; structured programming paradigm. C++ Programming Language: data types, operators and expressions; control structures; arrays; pointers and references; functions; structures and unions;  dynamic memory allocation, input/output. Search and ordering algorithms. Modular programming technique. Introduction to classses.

 An integrated development environment for C++:Code::Blocks

Bibliografia e materiale didattico
  • P. Corsini, G. Frosini, Note su organizzazione di un calcolatore: rappresentazione dell'informazione, Edizioni ETS, Piazza Carrara, 16-19, Pisa, 2017.
  • A. Domenici, G. Frosini, Introduzione alla Programmazione ed Elementi di Strutture Dati con il Linguaggio C++, Franco Angeli, Milano, 2001.
  • C. Bernardeschi. Materiale didattico di supporto alle lezioni del corso di Fondamenti di Informatica, 2017-18 (diapositive - sito del corso)
  • C. Bernardeschi. Esercizi svolti (sito del corso)
Bibliography
  • P. Corsini, G. Frosini, Note su organizzazione di un calcolatore: rappresentazione dell'informazione, Edizioni ETS, Piazza Carrara, 16-19, Pisa, 2017.
  • A. Domenici, G. Frosini, Introduzione alla Programmazione ed Elementi di Strutture Dati con il Linguaggio C++, Franco Angeli, Milano, 2001.
  • C. Bernardeschi. Slides supporting lectures, available on the website of the course.
  • C. Bernardeschi. Exercices, available on the website of the course.

 

 

Indicazioni per non frequentanti

La frequenza non è obbligatoria ma fortemente consigliata. Le diapositive con gli argomenti svolti a lezione e le esercitazioni sono disponibili sulla pagina web del corso.

Non-attending students info

Attendance is not mandatory but highly recommended. Slides supporting lectures and practical exercises are available on the website of the course.

Modalità d'esame

Prova scritta con domande ed esercizi di programmazione.

Prova orale basata sulla discussione della prova scritta.

-----------------------------------------

A causa dell'emergenza sanitaria COVID-19,  gli esami si svolgeranno a distanza e saranno formati da (i) test di ammissione alla prova orale (2) prova orale (durante la quale potrà essere richiesta la scrittura di parti di codice).

Assessment methods

Written exam with exercises  involving questions  and coding.

Oral exam based on  individual discussion of students written exam.

-----------------

Because of the COVID-19 pandemic, the exam has been changed into an online exam which cosists of (1) a test for the admission to an oral examnation and (2) an oral examination (during which the student can be requasted to write small parts of code)

 

Altri riferimenti web

Nessuno.

Additional web pages

No one

Note

Nessuna.

Notes

No one

Updated: 21/09/2020 09:30