Algoritmi și Tehnici de Programare
Filosofie și (re)surse
https://www.youtube.com/watch?v=kRuNoXFSeBU - The Art Of Programming
Dictionary of Algorithms and Data Structures — Dictionary of Algorithms and Data Structures
Fundamentele algoritmilor (Geeks for geeks) — Fundamentele algoritmilor (Geeks for geeks)
Sorting Algorithms — Sorting Algorithms
The Computer Science Handbook - A Reference for Data Structures and Algorithms — The Computer Science Handbook - A Reference for Data Structures and Algorithms
https://roadmap.sh/cpp - C++ Developer Roadmap (roadmap.sh)
https://roadmap.sh/datastructures-and-algorithms - Data Structures & Algorithms Roadmap (roadmap.sh)
https://www.youtube.com/watch?v=SmyPTnlqhlk - 10 weird algorithms
Bibliografie recomandata
Algoritmi - tutorial pe Khan Academy — Algoritmi - tutorial pe Khan Academy
Referinta cu toate librăriile din C++ — Site de referinta pentru programarea in C++. Aceasta pagina, in particular, contine o lista cu toate librăriile din C++.
Tutoriale video
https://www.youtube.com/watch?v=g2o22C3CRfU - Big-O Notation in 100 Seconds
https://www.youtube.com/watch?v=4TUgqm2gJkE - Big O in 2 Minutes
https://www.youtube.com/watch?v=gCzOhZ_LUps - What Big-O notation ACTUALLY tells you, and how I almost failed my Google Interview
https://www.youtube.com/watch?v=OMInLBKYAWg&list=PLTd6ceoshprfdzLWovxULl8Lt7RAFKTe5 - Big O Complexity (playlist)
https://www.youtube.com/watch?v=Mo4vesaut8g - Big O Notation - Full Course
https://www.youtube.com/watch?v=Ee0HzlnIYWQ - Big O: How Code Slows as Data Grows
https://www.youtube.com/watch?v=o4-zpAI7qBc - BigO = Performance! And other lies programmers tell themselves!!
https://www.youtube.com/watch?v=IJDJ0kBx2LM - Recursion in Programming - Full Course
https://www.youtube.com/watch?v=kp3fCihUXEg - Top 7 Algorithms for Coding Interviews Explained SIMPLY
https://www.youtube.com/watch?v=Uym4-KhP3Lc - 3 Types of Algorithms Every Programmer Needs to Know
https://www.youtube.com/watch?v=ALPWOiUKIjY - How Data Structures & Algorithms are Actually Used
https://www.youtube.com/watch?v=09_LlHjoEiY - Algorithms Course - Graph Theory Tutorial from a Google Engineer
https://www.youtube.com/watch?v=8hly31xKli0 - Algorithms and Data Structures Tutorial - Full Course for Beginners
https://www.youtube.com/watch?v=Ubg3PenEdNw - Software Development Course Day - 1 | Data Structures & Algorithms | Software Developer |Simplilearn
https://www.youtube.com/watch?v=hOKCRusCSaA - Software Development Course Day - 2 | Data Structures & Algorithms | Software Developer |Simplilearn
https://www.youtube.com/playlist?list=PLtS8Ubq2bIlVAVwSa9NwPMQINvm00CG2L - Data Structures and Algorithms Specialization (Complete Courses)
https://www.youtube.com/watch?v=oBt53YbR9Kk - Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges
https://www.youtube.com/watch?v=09_LlHjoEiY - Algorithms Course - Graph Theory Tutorial from a Google Engineer
https://www.youtube.com/watch?v=xbgzl2maQUU - Algorithms You Should Know Before System Design Interviews
https://www.youtube.com/watch?v=9diDWV-fOnE - Algorithms part 1 complete
https://www.youtube.com/watch?v=0qF7tPSQdCg - Algorithms part 2 (1/2)
https://www.youtube.com/watch?v=6TW3JSVEJQE - Algorithms part 2 (2/2)
https://www.youtube.com/watch?v=NqKkxQamroo - Algorithms design and analysis part 1(1/2)
https://www.youtube.com/watch?v=ahvrc4tZbTE - Algorithms design and analysis part 1(2/2)
https://www.youtube.com/watch?v=nUIbHblMop4 - Algorithms design and analysis part 2(1/2)
https://www.youtube.com/watch?v=M5JzG8oDicA - Algorithms design and analysis part 2(2/2)
https://www.youtube.com/watch?v=U16RnpV48KQ - This Algorithm is 1,606,240% FASTER
Introducere
Aplicații de vizualizare
https://csacademy.com/app/graph_editor/ - Grafuri
https://g.ivank.net/#4:1-2,2-3,3-1,4-2 - Grafuri
https://graphonline.ru/en/ - Grafuri
https://www.cs.usfca.edu/~galles/visualization/BFS.html - Cautare în grafuri
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html - Diverși algoritmi
Domenii numerice. Surse de eroare
AIP. Erori. Propagarea erorilor. — Tutorial surse de roare.
Folosirea template-urilor de functii numeric_limits — Documentatie despre folosirea template-urilor de functii numeric_limits
Exemplu de folosire numeric_limits (cod) - https://drive.google.com/drive/folders/0B6-Dmm6kRuHgaDJBQ1htUk5UdjQ?resourcekey=0-HUKfeotgn93zx9r6IErXvw&usp=sharing
Metode de interpolare (a se vedea si Lectia suplimentara 02)
AIP. Metode de interpolare — Tutorial metode de interpolare in C++.
Metode de interpolare (cod) - https://drive.google.com/drive/folders/0B6-Dmm6kRuHgTGQtMlFFbUROejQ?resourcekey=0-xlzbMF0PvaOybkNXBmQ_jg&usp=sharing
Metode de aproximare a solutiilor unei ecuatii
Tema18.doc — Tutorial metode de separare a radacinilor.
Tema19.doc — Tutorial metoda bipartitiei, metoda coardei.
Tema20.doc — Tutorial metoda tangentei, metoda tangentei modificata.
Metode de aproximare a soluțiilor unei ecuații (c0d): https://drive.google.com/drive/folders/1fZmXhLp_KzBF4L2M7rtbNfYXlczrMJir?usp=sharing
Metode de sortare (a se vedea si Lectia suplimentara 03)
AIP. Metode de sortare — Tutorial metode de sortare.
Comparatie sortari (2) — Pagina cu mai multe procedee de sortare animate. Se poate vedea prin comparatie diferenta de performanta intre metode.
Metode de sortare (cod) - https://drive.google.com/drive/folders/1E3snZWyycN90S9kBaq7WZ8cFaAuSlC5F?usp=sharing
https://www.youtube.com/watch?v=RfXt_qHDEPw - Sorting Algorithms Explained Visually
https://www.youtube.com/watch?v=AAwYzYkjNTg - Explaining EVERY Sorting Algorithm (part 1)
https://www.youtube.com/watch?v=wqibJMG42Ik - Every Sorting Algorithm (part 2): The Weird and Obscure
https://www.youtube.com/watch?v=h1Bi0granxM - Every Sorting Algorithm Explained in 120 minutes (full series)
https://www.youtube.com/watch?v=Uq6URzo9q6g - Visualizing 70 Sorting Algorithms
Reprezentare video a modului de lucru al algoritmilor de sortare — Reprezentare video a modului de lucru al algoritmilor de sortare
Lectia 05 - Metoda greedy
AIP. Algoritmi de tip greedy — Tutorial metoda greedy
Explicatii problema servirii clientilor — Explicatii problema servirii clientilor
Probleme rezolvate cu greedy (c0d) - https://drive.google.com/drive/folders/1K1hnCr8y10VFOikPW7g3Q1vG5rE11IrG?usp=sharing
Probleme rezolvate - greedy — Probleme rezolvate - greedy
https://www.youtube.com/watch?v=bC7o8P_Ste4 - Greedy Algorithms Tutorial – Solve Coding Challenges
Lectia 06 - Metoda divide et impera
AIP. Algoritmi de tip divide et impera — Tutorial metode divide et impera
Probleme rezolvate cu divide et impera (cod) - https://drive.google.com/drive/folders/1_SCcSX-cxHsbGwdQOLiYotcwc2R68R0a?usp=sharing
Probleme rezolvate - Divide et Impera — Probleme rezolvate - divide et impera
Lectia 07 - Metoda backtracking
AIP. Algoritmi de tip backtracking — Tutorial metode backtracking
Probleme rezolvate cu backtracking (cod) - https://drive.google.com/drive/folders/1jrrNE_-MZYVvXi4jy0PTbscOhsKmA8bY?usp=sharing
Probleme rezolvate - backtracking — Probleme rezolvate - backtracking
Lectia 08 - Metoda branch and bound
Lectia 09 - Programarea dinamica
AIP. Programarea dinamica 1 — Tutorial 1 de programare dinamica
AIP. Programarea dinamica 2 — Tutorial 2 de programare dinamica
AIP. Programarea dinamica 3 — Tutorial 3 de programare dinamica
AIP. Programarea dinamica 4 — Tutorial 4 de programare dinamica
AIP. Programarea dinamica 5 — Tutorial 5 de programare dinamica
Comentariu diferenta viteza recursivitate - programare dinamica — Comentariu diferenta viteza recursivitate - programare dinamica
Comentariu 2 diferente recursivitate - programare dinamica — Comentariu 2 diferente recursivitate - programare dinamica
Probleme rezolvate cu programare dinamică (cod) - https://drive.google.com/drive/folders/1wRwmMlRqB67RInT0aMTgTzgZReQFadqY?usp=sharing
Probleme rezolvate de programare dinamica — Probleme rezolvate - programare dinamica
Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges (freeCodeCamp.org)
https://www.youtube.com/watch?v=oifN-YVlrq8 - How to Count Dice Rolls - An Introduction to Dynamic Programming
https://www.youtube.com/watch?v=oBt53YbR9Kk - Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges
Lectia 10 - Probleme de drum minim (algoritmul lui Djikstra si alti algoritmi)
Explicatii scurte pe problema traseului optim — Explicatii scurte pe problema traseului optim (algoritmul Djikstra)
Explicatii pe problema traseului optim — Explicatii pe problema traseului optim (algoritmul Djikstra)
Explicatii pe problema traseului optim (algoritmul Djikstra) — Explicatii pe problema traseului optim (algoritmul Djikstra)
Problema comis-voiajorului — Problema comis-voiajorului (diversi algoritmi)
Implementare C++ pentru problema traseului optim (algoritmul Djikstra)
https://www.youtube.com/watch?v=EFg3u_E6eHU - How Dijkstra's Algorithm Works
Lectia 11 - Programarea liniara. Probleme de optimizare
Tutoriale video de programare liniara — Serie de tutoriale video de programare liniara. 18 tutoriale.
https://www.youtube.com/watch?v=K7TL5NMlKIk - Intro to Linear Programming
https://www.youtube.com/watch?v=E72DWgKP_1Y - The Art of Linear Programming
https://www.youtube.com/playlist?list=PLD3fYc0bAjC-Wc4icC2F34Bry3oLpFb8B - Intro to Linear Programming
Lectia suplimentara 01 - Accesarea fisierelor in C++
AIP. Lucrul cu fisiere in C++ — Tutorial de lucru cu fisiere in C++.
Lectia suplimentara 02 - Biblioteci grafice in C++, WinBGIm si KoolPlot
Pagina versiunii Education Portable a CodeBlocks — Pagina versiunii Education Portable a CodeBlocks. Aceasta varianta este portabila si contine o multitudine de biblioteci si unelte suplimentare fata de varianta de baza (printre ele si WinBGIm si Koolplot).
Varianta Education Portable a CodeBlocks poate fi descarcata de aici — Link de pe care poate fi descarcata varianta Education Portable a CodeBlocks.
Pagina bibliotecii Koolplot — Pagina bibliotecii Koolplot - se bazeaza pe biblioteca WinBGIm. Traseaza grafice de functii.
Biblioteca Koolplot poate fi descarcata de aici. — Link de pe care se poate descarca biblioteca Koolplot.
Pagina bibliotecii WinBGIm — Pagina bibliotecii WinBGIm. Biblioteca ce poate fi folosita pentru a face usor grafica in C++.
Biblioteca WinBGIm poate fi descarcata de aici — Link de pe care se poate descarca biblioteca WinBGIm.
Lista functiilor din biblioteca WinBGIm — Lista functiilor din biblioteca WinBGIm cu link catre help si exemple pentru fiecare functie.
Facilitati suplimentare ale bibliotecii WinBGIm — Facilitati oferite suplimentar de biblioteca WinBGIm fata de vechea librarie BGI din Borland C++.
Cum se instaleaza biblioteca WinBGIm — Modul de instalare si configurare a bibliotecii WinBGIm in CodeBlocks.
Lectia suplimentara 03 - Biblioteci grafice in C++, FreeGLUT
exemplu_animatie_GLUT_2.txt — Un alt exemplu de animatie facuta cu FeeGLUT (necomentat).
exemplu_animatie_GLUT.txt — Exemplu comentat de animatie facuta cu FreeGLUT.
exemplu_dreptunghi_GLUT.txt — Exemplu comentat de grafica facuta cu FreeGLUT.
freeglut-MinGW-3.0.0-1.mp.zip — Biblioteca FreeGLUT precompilata
glew-2.1.0-win32.zip — Biblioteca GLEW precompilata
Grafica in CodeBlocks cu FreeGLUT — Tutorial pregatire pentru programarea grafica cu FreeGLUT.
Lectia suplimentara 04 - Metode de sortare
Program demonstrativ de vizualizare a modului de lucru al diversilor algoritmi de sortare — Program demonstrativ de vizualizare a modului de lucru al diversilor algoritmi de sortare. Mai multe despre program pe http://panthema.net/2013/sound-of-sorting/
Tehnici de sortare ilustrate pe un vizualizator de matrici — Tehnici de sortare ilustrate pe un vizualizator de matrici