Questo programma copre l'essenza della programmazione e delle strutture dati, dai concetti fondamentali agli algoritmi avanzati. I partecipanti impareranno a sviluppare algoritmi efficienti, lavorare con raccolte di dati, manipolare stringhe e gestire le risorse di memoria. Il programma li introdurrà al mondo dell'ordinamento e della ricerca, con un'enfasi sulla complessità algoritmica e sugli approcci di ordinamento efficienti. Esploreranno anche strutture di dati lineari e gerarchiche come lo stack, la coda e gli alberi di ricerca binaria
Si consiglia di seguire il programma parallelamente all'apprendimento di un linguaggio di programmazione, a scelta, per esercitarne la sintassi nella fase di implementazione dell'algoritmo. La struttura del programma segue l'ordine di apprendimento di un linguaggio di programmazione, in modo che quando si implementano diversi algoritmi, i programmatori abbiano tutte le nozioni necessarie di sintassi. Ogni lezione includerà esempi di implementazione in un linguaggio di facile comprensione come JavaScript o Java per aiutare i programmatori a comprendere meglio i concetti.
Seguendo questo programma, i partecipanti impareranno a:
- Lui capisce concetti fondamentali di algoritmi e strutture dati.
- Descrive logicamente le fasi della costruzione di un algoritmo utilizzando lo pseudocodice.
- Identificare esempi di algoritmi tratti dalla vita quotidiana e riconoscere modelli efficaci.
- Rappresenta valori e operazioni in pseudocodice.
- Utilizza strutture di controllo condizionale e lavora con valori di verità.
- Implementa istruzioni ripetitive con un numero sconosciuto di passaggi e gestisci raccolte di dati.
- Applicare semplici algoritmi di elaborazione di raccolte e ricerca lineare.
- Manipolare stringhe e utilizzare istruzioni ripetitive con un numero noto di passaggi.
- Eseguire una ricerca ed elaborazione efficiente delle stringhe.
- Gestire le risorse di memoria in modo efficiente e adottare buone pratiche per l'utilizzo della memoria.
- Implementare algoritmi di ordinamento efficienti e comprendere diversi metodi di ordinamento.
- Calcola la complessità degli algoritmi, incluso il numero di operazioni e la complessità dello spazio.
- Affronta algoritmi avanzati, come la ricerca binaria e il logaritmo, e risolvi problemi di conteggio.
- Lavora con strutture di dati lineari come stack, coda e coda di priorità.
- Esplora strutture di dati gerarchiche come alberi e alberi di ricerca binaria e attraversali in modo efficiente.
- Gestisci chiavi e valori utilizzando tabelle hash e comprendi la loro importanza per un'archiviazione efficiente dei dati.
Si consiglia di seguire il programma parallelamente all'apprendimento di un linguaggio di programmazione, a scelta, per esercitarne la sintassi nella fase di implementazione dell'algoritmo.
Lezione 1 – Definizione e fasi di un algoritmo. Strutture condizionali
– Cos’è un algoritmo. Esempi di algoritmi dalla vita di tutti i giorni
– Le 5 fasi della costruzione di un algoritmo
– Lo pseudocodice
– Rappresentazione di valori e operazioni in pseudocodice
– Strutture di controllo condizionale. Valori di verità
Lezione 2 – Operazioni ripetitive. Raccolte di dati
– Istruzioni ripetitive con un numero imprecisato di passaggi
– Raccolte dati
– Semplici algoritmi di elaborazione delle raccolte
– Semplici algoritmi di ricerca lineare
Lezione 3 – Stringhe di caratteri. Utilizzo della memoria
- Stringhe di caratteri
– Istruzioni ripetitive con un numero noto di passaggi
– Semplici algoritmi di ricerca in stringhe di caratteri
– Algoritmi di elaborazione delle stringhe
- Utilizzo della memoria
Lezione 4 – Semplici algoritmi di ordinamento. Collezioni multidimensionali
– Livelli multipli di iterazioni. Ordina per selezione
– Collezioni multidimensionali
Lezione 5 – Complessità degli algoritmi
– Determinazione del numero di operazioni eseguite da un algoritmo
– Ricerca binaria
– Logaritmo
– La complessità spaziale degli algoritmi
– Problemi di conteggio
Lezione 6 – Metodi di ordinamento efficaci
– Ordinamento di conteggio
- Va fortuna
– Ordinamento rapido
Lezione 7 – Indicizzazione e ricerca
– Identificazione dei dati basata su una chiave (dizionario)
– Scegliere le chiavi di un dizionario
– Tabelle hash
Lezione 8 – Strutture dati lineari
– Pila
– Riprogrammabilità
- Coda
– Coda prioritaria
Lezione 9 – Strutture dati gerarchiche
– Rappresentazione di alberi
- Guida profonda
- Il corso di larghezza
– Alberi binari di ricerca
Lezione 10 - Algoritmi incontrati nelle interviste
– Palindromo
– Rimozione dei duplicati da un array
– Ricerca della coppia di numeri in un dato insieme
– Parentesi chiuse correttamente
Al termine del corso e al superamento dell'esame di valutazione i partecipanti riceveranno un diploma di laurea.

