Acest program acoperă esența programării și a structurilor de date, de la conceptele fundamentale până la algoritmi avansați. Participanții vor învăța să dezvolte algoritmi eficienți, să lucreze cu colecții de date, să prelucreze șiruri de caractere și să gestioneze resursele de memorie. Programul îi va introduce în lumea sortării și căutării, cu accent pe complexitatea algoritmilor și pe abordările eficiente de sortare. Vor explora, de asemenea, structurile de date liniare și ierarhice, precum stack-ul, queue-ul și arborii binari de căutare
Se recomandă parcurgerea programului în paralel cu învățarea unui limbaj de programare, la alegere, pentru a exersa sintaxa acestuia în etapa de implementare a algoritmilor. Structura programului urmărește ordinea de învățare a unui limbaj de programare, astfel încât la momentul implementării diferiților algoritmi, programanții să aibă toate noțiunile de sintaxă necesare. Fiecare lecție va include exemple de implementare într-un limbaj ușor de înțeles, cum ar fi JavaScript sau Java, pentru a ajuta programanții să înțeleagă conceptele mai bine.
Urmând acest program, participanții vor învăța să:
- Înțeleagă conceptele fundamentale ale algoritmilor și structurilor de date.
- Descrie logic etapele construirii unui algoritm utilizând pseudocod.
- Identifice exemple de algoritmi din viața de zi cu zi și să recunoască modele eficiente.
- Reprezinte valorile și operațiile în pseudocod.
- Utilizeze structurile de control conditionale și să lucreze cu valori de adevăr.
- Implementeze instrucțiuni repetitive cu număr necunoscut de pași și să gestioneze colecții de date.
- Aplice algoritmi simpli de prelucrare a colecțiilor și de căutare liniară.
- Manipuleze siruri de caractere și să folosească instrucțiuni repetitive cu număr cunoscut de pași.
- Efectueze căutarea și prelucrarea eficientă a sirurilor de caractere.
- Gestionaze eficient resursele de memorie și să adopte practici bune pentru memory usage.
- Implementeze algoritmi de sortare eficienți și să înțeleagă diferite metode de sortare.
- Calculeze complexitatea algoritmilor, inclusiv numărul de operații și complexitatea spațială.
- Abordeze algoritmi avansați, precum căutarea binară și logaritmul, și să rezolve probleme de numărare.
- Lucreze cu structuri de date liniare, cum ar fi stack-ul, queue-ul și priority queue-ul.
- Exploreze structuri de date ierarhice, cum ar fi arborii și arborii binari de căutare și să le parcurgă în moduri eficiente.
- Gestionaze cheile și valorile utilizând hash tables și să înțeleagă importanța lor în stocarea eficientă a datelor.
Este recomandată parcurgerea programului în paralel cu învățarea unui limbaj de programare, la alegere, pentru a exersa sintaxa acestuia în etapa de implementare a algoritmilor.
Lectia 1 – Definirea si etapele unui algoritm. Structuri conditionale
– Ce este un algoritm. Exemple de algoritmi din viata de zi cu zi
– Cele 5 etape ale construirii unui algoritm
– Pseudocodul
– Reprezentarea valorilor si operatiilor in pseudocod
– Structuri de control conditionale. Valori de adevar
Lectia 2 – Operatii repetitive. Colectii de date
– Instructiuni repetitive cu numar necunoscut de pasi
– Colectii de date
– Algoritmi simpli de prelucrare a colectiilor
– Algoritmi simpli de cautare liniari
Lectia 3 – Siruri de caractere. Memory usage
– Siruri de caractere
– Instructiuni repetitive cu numar cunoscut de pasi
– Algoritmi simpli de cautare in sirurile de caractere
– Algoritmi de prelucrare a sirurilor de caractere
– Memory usage
Lectia 4 – Algoritmi simpli de sortare. Colectii multidimensionale
– Niveluri multiple de iteratii. Sortarea prin selectie
– Colectii multidimensionale
Lectia 5 – Complexitatea algoritmilor
– Determinarea numarului de operații efectuate de un algoritm
– Cautarea binara
– Logaritm
– Complexitatea spatiala a algoritmilor
– Probleme de numarare
Lectia 6 – Modalitati de sortare eficiente
– Counting sort
– Merge sort
– Quick sort
Lecția 7 – Indexare si cautare
– Identificarea datelor pe baza unei chei (dictionar)
– Alegerea cheilor unui dictionar
– Hash tables
Lectia 8 – Structuri de date liniare
– Stack
– Reprogramivitate
– Queue
– Priority queue
Lectia 9 – Structuri de date ierarhice
– Reprezentarea arborilor
– Parcugerea in adancime
– Parcugerea in latime
– Arbori binari de cautare
Lectia 10 – Algoritmi intalniti la interviuri
– Palindrom
– Eliminarea duplicatelor dintr-un array
– Cautarea perechii unui numar intr-un set dat
– Paranteze inchise corect
Participanții vor primi diplomă de absolvire după completarea cursului și susținerea examenului de evaluare .