Scheda programma d'esame
LABORATORY I
DAVIDE BACCIU
Academic year2022/23
CourseCOMPUTER SCIENCE
Code731AA
Credits12
PeriodSemester 1 & 2
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
LABORATORIO IINF/01LABORATORI96
DAVIDE BACCIU unimap
ALESSIO MALIZIA unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Gli studenti acquisiranno una buona conoscenza dei principali strumenti di sviluppo a supporto della programmazione come debugger, sistemi di versioning, testing. Saranno in grado di scrivere codice corretto in un linguaggio di programmazione, individuando le strutture date più adeguate alla rappresentazione degli input dei problemi proposti per una loro efficace ed efficiente manipolazione. Lo studente sarà in grado di utilizzare svariati formati di input e di output per affrontare problemi di dimensioni reali. Per raggiungere queste competenze agli studenti verranno fornite conoscenze di base del sistema operativo Linux e di alcune shell da linea di comando.

 

Knowledge

Students will acquire good knowledge of the main software development tools such as debuggers, versioning systems, testing. They will be able to write correct programs in a programming language, selecting the most suitable data structures. The student will be able to employ different input and output formats to solve real world problems. The course will also provide basic knowledge of UNIX and command line commands.

Modalità di verifica delle conoscenze

Compiti di programmazione in Javascript e Typescript

Assessment criteria of knowledge

Practical exercises in Javascript and Typescript

Programma (contenuti dell'insegnamento)
  • Linux, Bash strumenti di supporto alla programmazione, debugging e testing.
  • Repository di software e versioning (come ad es. Git), ambienti di sviluppo.
  • Implementazione di problemi di complessità crescente (anche collegati ad Analisi e a Fondamenti di Informatica Teorica). Prime problematiche legate alla rappresentazione dell’informazione numerica. 
  • Debugging e Testing di programmi.
  • Implementazione di algoritmi su Alberi, Grafi, Linguaggi, Grammatiche, Dizionari e Tabelle Hash per manipolare e fare parsing di grosse quantità di dati importate da file.
Syllabus
  • Linux, Bash, support tools for programming, debugging and testing.
  • Software versioning (e.g. Git) and integrated development  environments.
  • Implementation of solutions to problems of incerasing difficulty, also connected to other courses such as Calculus and Computer Science Fundamentals. A first look at numerical  representation of information.
  • Program Debugging and Testing.
  • Implementation of algorithms on Trees, Graphs, Grammars, Dictionaries, Hash tables, to manage large amounts of data from files.
Modalità d'esame

Compiti in itinere più orale.

o

Pre-test (prova pratica) più orale.

Assessment methods

Tests and homeworks during the academic year plus oral final exam.

OR

Pre-test (practical) plus oral exam.

Updated: 29/07/2022 11:36