Corso introduttivo alla programmazione e relativo background logico/matematico, dedicato a studenti senza una Laurea Triennale in Computer Science o in Computer Engineering. L'obiettivo e' quello di introdurre lo studente ai concetti e agli strumenti propri della programmazione, necessari per il processamento e all'analisi dei dati. Il corso prevede lezioni frontali e din laboratorio.
This is an introductory course to computer programming and related mathematical/logic background for students without a Bachelor in Computer Science or in Computer Engineering. The objective is to smoothly introduce the student to the programming concepts and tools needed for typical data processing and data analysis tasks. The course consists of lectures and practice in computer labs.
Lo studente sara' valutato per le sue capacita' di uso della programmazione dedicata al problem solving. Sono previsti una prova di laboratorio e un esame orale.
Metodi:
The student will be assessed on his/her demonstrated ability to use computer programming for problem solving. There is a lab exam and an oral exam.
Methods:
Lo studente sara' in grado di utilizzare linguaggi di programmazione e le relative nozioni matematiche necessarie per la risoluzione di problemi.
The student will be able to use computer programming languages and related mathematical notions for problem reasoning and solving.
Le capacita' saranno verificate tramite esame in laboratorio.
Skills will be assessed through a lab exam.
Lo studente sara' in grado di separare il problema e la sua soluzione dalla implementazione della soluzione mediante uno specifico linguaggio di programmazione. La capacita' attesa al termine del corso e' quella del Pensiero computazionale (Computational thinking).
The student will be able to separate apart the problem constraint and solutions from the actual coding in a specific computer programming language. Computational thinking is the expected ability at the end of the course.
Autonomia e capacita' di computational thinking saranno verificate durnate le ore pratiche in laboratorio, e durante la prova orale finale.
Autonomy and capacity of computational thinking will be assessed during the lab practices and at the oral exam.
Nozioni di matematica di base.
Basic mathematical notions as given in most of Bachelor programs.
Lezioni frontali.
Attivita' di apprendimento:
Frequenza fortemente consigliata.
Metodi di insegnamento:
Delivery: face to face
Learning activities:
Attendance: strongly advised
Teaching methods:
Syllabus
Syllabus
– Sets, relations, functions, combinatorics, grammars, automata.
– Propositional and first order logic.
– Induction and recurrence relations.
– Imperative programming.
– Object oriented programming.
– Programming stack and development tools.
– Python programming.
– C programming.
Capitoli dei libri di testo e riferimenti a background teorici e manuali software (forniti tramite la pagina web del corso). Software scaricabile gratuitamente.
Book chapters with reminds on theoretical background and software manuals will be provided at the course web site. Software tools will be downloadable with an academic/free licence.
Nessuna regola specifica.
No specific rules for non-attending students.
Prova pratica in laboratorio e prova orale.
Lab practice and oral exam.