Helion


Szczegóły kursu video

Algorytmy i struktury danych. Kurs video. Java, JavaScript, Python

Algorytmy i struktury danych. Kurs video. Java, JavaScript, Python


Obierz kurs na... myślenie algorytmiczne

Algorytm jest pojęciem ściśle związanym z programowaniem. Jak podaje definicja, algorytm to skończony ciąg jasno zdefiniowanych czynności koniecznych do wykonania pewnego rodzaju zadań. W efekcie ich wykonania następuje rozwiązanie postawionego problemu. Brzmi informatycznie? Oczywiście - wszak algorytm może zostać zaimplementowany w postaci programu komputerowego. Może, ale nie musi. Myślenie algorytmiczne jest przede wszystkim myśleniem matematycznym, nastawionym na rozwiązanie zadania. Dopiero potem informatycznym.

Czy wiesz, że jednym z pierwszych etapów rekrutacji do największych na świecie firm technologicznych, takich jak Google, Facebook, Microsoft czy Amazon, jest rozwiązywanie problemu algorytmicznego na tablicy? Bez użycia komputera... Nie dzieje się tak przypadkiem. Kto bowiem potrafi myśleć algorytmicznie i udowodnić to kredą czy mazakiem na tablicy, ten poradzi sobie z każdym zadaniem programistycznym. I ten może nazywać siebie programistą wszechstronnym. Programistą analitycznym. Bardzo pożądanym na rynku pracy.

Myślenia algorytmicznego można się nauczyć. W ramach tego kursu pokażemy Ci jak. Jesteś gotów wejść z nami na wyższy poziom programowania?

Co Cię czeka podczas naszego profesjonalnego szkolenia?

Ten kurs video:

  • Wprowadza w zagadnienia związane z myśleniem algorytmicznym
  • Przedstawia, jak mogą wyglądać struktury danych
  • Przybliża algorytmy sortowania
  • Zapoznaje z teorią grafów
  • Pozwala poćwiczyć programowanie dynamiczne

Co więcej...

  • Na koniec czeka Cię omówienie najczęstszych błędów popełnianych podczas rozwiązywania zadań na platformach rekrutacyjnych, a także poprawne rozwiązanie jednego z nich

Algorytmy i struktury danych. Kurs video. Java, JavaScript, Python ukończysz z podstawową znajomością algorytmów i struktur danych. Będziesz samodzielnie rozwiązywać podstawowe problemy algorytmiczne, a także szacować ich złożoność obliczeniową.

Algorytm najpierw, wdrożenie później

Jeśli myślisz, że w programowaniu najważniejsze są znajomość języków, operowanie frameworkami i myszkowanie po bibliotekach, to... masz rację i mylisz się równocześnie. Masz rację, ponieważ bez wymienionych umiejętności trudno być programistą „praktycznym”, czyli takim, który wyczarowuje kolejne linijki działającego kodu. Mylisz się, ponieważ nawet najdłuższy ciąg znaków jest bez sensu, jeśli... jest bez sensu. Celem pisania kodu jest stworzenie działających rozwiązań konkretnych problemów. Tworzone oprogramowanie ma być użytkowe. Reagować na zasadzie „jeśli wystąpi zdarzenie A, to zareagować należy B, w przypadku gdy X, albo C, w przypadku gdy Y”. To jest zrąb algorytmu. Napisać czy narysować można go dowolnie - na kartce, na tablicy, na komputerze. Ważne, by działał. By był skuteczny. Umiejętność tworzenia takich algorytmów to poziom wyżej w programowaniu. To zdolność, która odróżnia programistę wyjątkowego od przeciętnego i która nigdy się nie zdezaktualizuje - myślenie logiczne, analityczne jest zawsze w programistycznej modzie.

  • 1. Wprowadzenie
    • 1.1. Wstęp00:02:45
    • 1.2. Myślenie algorytmiczne00:03:30
    • 1.3. Złożoność obliczeniowa00:08:48
    • 1.4. Pseudokod00:01:41
    • 1.5. Wyszukiwanie binarne00:05:42
    • 1.6. Wyszukiwanie binarne - analiza implementacji00:01:24
    • 1.7. Podsumowanie00:01:07
  • 2. Struktury danych
    • 2.1. Wstęp00:01:04
    • 2.2. Lista00:09:02
    • 2.3. Kolejka00:02:16
    • 2.4. Stos00:01:56
    • 2.5. Drzewo binarne00:10:48
    • 2.6. Tablica z haszowaniem00:03:09
    • 2.7. Podsumowanie00:00:58
  • 3. Algorytmy sortowania
    • 3.1. Wstęp00:01:47
    • 3.2. Sortowanie bąbelkowe00:07:26
    • 3.3. Sortowanie bąbelkowe - analiza implementacji00:00:54
    • 3.4. Sortowanie przez wstawianie00:09:28
    • 3.5. Sortowanie przez wstawianie - analiza implementacji00:01:03
    • 3.6. Sortowanie przez scalanie00:07:15
    • 3.7. Sortowanie przez scalanie - analiza implementacji00:01:00
    • 3.8. Sortowanie szybkie00:08:35
    • 3.9. Sortowanie szybkie - analiza implementacji00:01:02
    • 3.10. Sortowanie przez zliczanie00:09:19
    • 3.11. Sortowanie przez zliczanie - analiza implementacji00:01:20
    • 3.12. Podsumowanie00:02:08
  • 4. Teoria grafów
    • 4.1. Wstęp00:02:57
    • 4.2. Przeszukiwanie wszerz (BFS)00:06:42
    • 4.3. Przeszukiwanie wszerz (BFS)00:00:35
    • 4.4. Przeszukiwanie wgłąb (DFS)00:05:33
    • 4.5. Przeszukiwanie wgłąb (DFS) - analiza implementacji00:00:35
    • 4.6. Grafy z wagami00:03:22
    • 4.7. Algorytm Djikstry00:08:37
    • 4.8. Algorytm Djikstry - analiza implementacji00:00:46
    • 4.9. Algorytm Bellmana-Forda00:09:33
    • 4.10. Algorytm Bellmana-Forda - analiza implementacji00:01:31
    • 4.11. Podsumowanie00:01:23
  • 5. Programowanie dynamiczne
    • 5.1. Wstęp00:00:50
    • 5.2. Liczby Fibonacciego00:06:10
    • 5.3. Liczby Fibonacciego - analiza implementacji00:01:46
    • 5.4. Problem rozmiany monet00:13:28
    • 5.5. Problem rozmiany monet - analiza implementacji00:00:38
    • 5.6. Problem plecakowy00:14:24
    • 5.7. Problem plecakowy - analiza implementacji00:00:58
    • 5.8. Podsumowanie00:01:02
  • 6. Przykładowe zadanie rekrutacyjne
    • 6.1. Wstęp00:03:40
    • 6.2. Przykładowe zadanie rekrutacyjne - rozwiązanie00:05:18
    • 6.3. Przykładowe zadanie rekrutacyjne - implementacja00:03:39
  • 7. Epilog
    • 7.1. Podsumowanie kursu00:01:39