CdSBIOTECNOLOGIE
Codice278AA
CFU6
PeriodoPrimo semestre
LinguaItaliano
Il corso si impone di impartire allo studente/alla studentessa competenze basilari di algoritmica e programmazione.
Basi di algoritmica:
- complessità computazionale
- algoritmi di ricerca
- algoritmi di ordinamento
- programmazione dinamica
Basi di programmazione, linguaggio C:
- cicli
- iterazioni
- funzioni
- puntatori
The course comprises of a theoretical, algorithm-oriented thread, and a practical, programming-oriented one.
In the former, the course will deal with:
- computational complexity
- search algorithms
- sorting algorithms
- dynamic programming
In the latter, the course will focus on the C language:
- loops
- functions
- pointers
Esame scritto strutturato in due compiti, uno per ognuna delle due parti indicate sopra. Il corso prevede una prova opzionale in itinere a fine corso.
Written exam. In order to pass the course, the student will have to succesfully pass both.
Al termine del corso lo studente/la studentessa sarà in grado di
- progettare e analizzare algoritmi, e definirli formalmente mediante diagrammi di flusso
- sviluppare programmi in linguaggio C, e usufruire di librerie esistenti.
By the end of the course, the student will be able to
- analyze algorithms, formally defining them with flow charts;
- implement said algorithms in the C language.
Durante lezioni frontali e esercitazioni in classe, gli studenti saranno impegnati nello sviluppo di programmi relativi al campo delle biotecnologie.
In both lectures and exercise sessions, the students will be exposed to and develop biotechnologies-oriented programs
Saranno acquisite competenze basiche di programmazione che lo studente/la studentessa potrà poi applicare in vari ambiti.
The student will learn programming fundamentals which will serve them in implementing programmatic solutions to a plethora of problems.
Durante le lezioni e esercitazioni in classe saranno coinvolti gli studenti e corretti i programmi da essi proposti.
Exercise sessions will directly involve the students, who will be able to get a direct feedback from the teacher.
- Nozioni matematiche di base su analisi di funzioni
- Utilizzo di un editor di testo
- Basic notions of calculus.
- Basic use of a text editor
Corso svolto mediante lezioni frontali. È richiesto accesso a un computer per studio e esercitazioni in proprio, ma è solo consigliato per le lezioni frontali.
Il materiale didattico è interamente caricato direttamente sul gruppo Teams del corso.
I docenti mettono a disposizione un'orario d'ufficio da concordarsi, e sono reperibili presso il gruppo Teams sopraindicato.
Basi di algoritmica
- Classi di complessità,
- algoritmi di ricerca: non ordinata, ricorsiva, binaria;
- algoritmi di ordinamento: insertion-sort, merge-sort, foolish-sort;
- algoritmi su stringhe: allineamento e similarità;
- strutture dati: alberi e alberi filogenetici.
Basi di programmazione C:
- Iterazione;
- Selezione;
- Funzioni;
- Tabelle dei simboli e Activation records;
- Puntatori.
Algorithms:
- complexity classes;
- search algorithms: unordered, recursive, binary;
- sorting algorithms: insertion-sort, merge-sort, foolish-sort;
- algorithms and strings: alignment and similarity;
- data structures: trees and philogenetic trees.
The C language:
- loops;
- selection;
- functions;
- symbols table and activation records;
- pointers.
Testi consigliati (uno tra)
- Il linguaggio C. Principi di programmazione e manuale di riferimento, D. M. Ritchie, B. W. Kernighan
- C. Didattica e programmazione, A. Kelley, I. Pohl
- Linguaggio C. Guida alla programmazione, A. Bellini, A. Guidi
Materiale didattico aggiuntivo caricato sul sito del corso.
One of
- Il linguaggio C. Principi di programmazione e manuale di riferimento, D. M. Ritchie, B. W. Kernighan
- C. Didattica e programmazione, A. Kelley, I. Pohl
- Linguaggio C. Guida alla programmazione, A. Bellini, A. Guidi
Additional material uploaded on the Teams group.
Programma invariato rispetto all'anno accademico precedente.
The program is the same as the past year.
La prova d'esame consiste in
- una prova scritta relativa alle competenze di programmazione, in cui lo studente/la studentessa svilupperà dei piccoli programmi e analizzerà del codice proposto, rispondendo a domande su di esso volte a verificare la comprensione della semantica del linguaggio.
- Una prova scritta relativa alle competenze algoritmiche.
Un esame sarà tenuto in itinere durante il corso.
The exam comprises of
- a written exam where the student will have to develop/analyze C programs;
- a writtern exam where the student will have to analyze algorithms, e.g., studying their complexity.