Algoritmi elementari de informatica la liceu
Pe vremea cand inca eram la liceu (adica acum 4 ani), am incercat sa invat tot timpul mai mult, asa ca am cautat o lista cu algoritmii elementari pe care trebuie sa ii stiu ca sa ma descurc. M-am dus direct la sursa: Ministerul Educatiei Nationale (apropo, ati vazut noul website?). Am descarcat programa pentru informatica din liceu (link: Programe scolare), si am alcatuit o mica lista, dupa care am inceput sa construiesc tutorialele de C++. Insa nu m-am tinut de lista, si am scris articolele destul de haotic.
Pe viitor o sa scriu tutorialele in ordine, deci sa incepem:
- Programa de informatica pentru liceu – clasa 9 – profil intensiv informatica
- Programa de informatica pentru liceu – clasa 10 – profil intensiv informatica
- Programa de informatica pentru liceu – clasa 11 – profil intensiv informatica
- Programa de informatica pentru liceu – clasa 12 – profil intensiv informatica
Programa de informatica pentru liceu – clasa 9 – profil intensiv informatica
- Ce este informatica?
- Despre C++
- Despre IDE-uri + instalare Codeblocks
- Hello World
- Comentariile in programare
- Afisarea
- Despre variabile (locale / globale)
- Tipuri de date
- Atribuirea valorilor unei variabile
- Citirea de la tastatura
- Afisarea unei variabile
- Structuri de decizie
- Instructiunea IF
- Structuri repetitive
- Instructiunea WHILE
- Instructiunea FOR
- Prelucrarea numerelor
- prelucrarea cifrelor unui număr: Algoritm pentru descompunerea unui numar in cifre C++
- probleme de divizibilitate: Algoritm verificare numar prim C++
- probleme cu divizori: Algoritm pentru afisarea divizorilor unui numar , Descompunerea in factori primi a unui numar in C++
- probleme cu baze de numeratie: Algoritm pentru convertirea unui numar din Baza 10 in Baza 2 in C++
- Prelucrarea unor secvenţe de valori
- determinare minim/maxim: Determinarea minimului / maximului dintr-un vector in C++
- verificarea unei proprietăţi
- calculul unor expresii în care intervin valori din secvenţă
- generarea şirurilor recurente (Sirul lui Fibonacci)
- Tipuri structurate de date. Tipul tablou
- Tablouri unidimensionale (sau vectori)
- Tablouri bidimensionale (sau matrice)
- Algoritmi fundamentali de prelucrare a datelor structurate în tablouri
- căutare secvenţială, căutare binară
- sortare: Algoritmi de sortare a unui vector in C++
- interclasare: Interclasarea a doi vectori in C++
- parcurgerea tablourilor bidimensionale pe linii/coloane
- Fişiere text. Definire, operaţii specifice
- Rezolvarea ecuaţiei de gradul I şi de gradul al II-lea
- Simplificarea fracţiilor
- Aplicaţii geometrice (distanţa dintre două puncte, aria/perimetrul unui triunghi, volumul corpurilor regulate, centrul de greutate al unei mulţimi de puncte, etc.)
Programa de informatica pentru liceu – clasa 10 – profil intensiv informatica
- Tipuri structurate de date
- Structuri de date alocate dinamic (definiţii, utilitate)
- Liste simplu înlănţuite
- Liste dublu înlănţuite
- Liste circulare
- Declararea, definirea şi apelul subprogramelor
- Transferul parametrilor la apel
- Returnarea valorilor de către subprograme
- Variabile locale şi globale
- Subprograme recursive. Mecanismul de realizare a recursivităţii
- Compararea dintre implementarea recursivă şi cea iterativă a aceluiaşi algoritm
- Aplicaţii folosind subprograme
- Metoda de programare Divide et Impera
- Sortarea Rapida
- Sortarea prin interclasare
- Metoda de programare Divide et Impera
- Prelucrarea de text (căutarea unui subşir într-un şir, transformări, delimitări cuvinte, etc.)
- Alegerea unui algoritm eficient de rezolvare a unei probleme
- Analiza eficienţei unui algoritm
Programa de informatica pentru liceu – clasa 11 – profil intensiv informatica
- Teoria Grafurilor
- Terminologie (graf neorientat, graf orientat, lanţ, lanţ elementar, drum, drum elementar, ciclu, ciclu elementar, circuit, circuit elementar, grad, graf parţial, subgraf, conexitate, tare conexitate, arbore, graf ponderat, arbore parţial, arbore parţial de cost minim)
- Tipuri speciale de grafuri (graf complet, graf hamiltonian, graf eulerian, graf bipartit, graf turneu)
- Reprezentarea grafurilor (matrice de adiacenţă, liste de adiacenţă, lista muchiilor, matricea costurilor)
- Parcurgerea grafurilor în lăţime (algoritmul BFS) şi în adâncime (algoritmul DFS)
- Determinarea componentelor conexe ale unui graf neorientat
- Determinarea componentelor tare conexe ale unui graf orientat
- Determinarea matricei lanţurilor/drumurilor
- Determinarea drumurilor de cost minim într-un graf (algoritmul lui Dijkstra, algoritmul Roy-Floyd)
- Arbori parţiali de cost minim (algoritmul lui Kruskal sau algoritmul lui Prim)
- Structuri de date arborescente
- Arbori cu rădăcină (definiţie, proprietăţi, reprezentare cu referinţe ascendente, reprezentare cu referinţe descendente)
- Arbori binari (definiţie, proprietăţi specifice; reprezentarea arborilor binari cu referinţe descendente; operaţii specifice)
- Tipuri speciale de arbori binari
- Arbore binar complet – definiţie, proprietăţi, reprezentare secvenţială
- Arbore binar de căutare – definiţie, proprietăţi, operaţii specifice (inserare nod, ştergere nod, căutare element)
- Heap-uri – definiţie, proprietăţi, operaţii specifice
- Metode de programare
- Metoda de programare Greedy (descrierea generală a metodei, utilitate, aplicaţii)
- Metoda de programare Backtracking (descrierea generală a metodei, utilitate, aplicaţii)
- Metoda de programare Divide et Impera
- Metoda programării dinamice (descrierea generală a metodei, utilitate, aplicaţii)
- Principiile programării orientate pe obiecte
- Clase şi obiecte (definire, utilizare, operaţii specifice)
Programa de informatica pentru liceu – clasa 12 – profil intensiv informatica
- Baze de date
- Modelul conceptual al problemei (entităţi, proprietăţi, comportamente)
- Relaţii între entităţi
- Modele de organizare a datelor
- Structuri de date in MySQL
- Operaţii elementare de prelucrare a datelor
- Tehnici de prelucrare a datelor
- Instrucţiuni specifice limbajului de programare
- Sisteme de gestiune a bazelor de date.
- Modelarea datelor şi programare SQL (Oracle, Microsoft SQL Server, MySQL)
- Programare Visual FoxPro
- Programare vizuală
- Programare web
- Programarea procedurală a bazelor de date (PL/SQL, Transact-SQL, MySQL).