CdSINFORMATICA
Codice731AA
CFU12
PeriodoAnnuale
LinguaItaliano
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.
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.
Compiti di programmazione in Javascript e Typescript
Practical exercises in Javascript and Typescript
- 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.
- 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.
JavaScript: https://eloquentjavascript.net/
Versione PDF: https://eloquentjavascript.net/Eloquent_JavaScript.pdf
Repl del corso B: https://repl.it/teams/join/baoqkbavjbwmwbysvjxkwfyuswcslsyj-DipInfoPisaLabB
JavaScript: https://eloquentjavascript.net/
PDF: https://eloquentjavascript.net/Eloquent_JavaScript.pdf
Repl: https://repl.it/teams/join/baoqkbavjbwmwbysvjxkwfyuswcslsyj-DipInfoPisaLabB
Compiti in itinere più orale.
o
Pre-test (prova pratica) più orale.
Tests and homeworks during the academic year plus oral final exam.
OR
Pre-test (practical) plus oral exam.