Wybierz swój język
Kurs algorytmów i struktur danych w Pythonie
Ponad 2 miliony studentów na całym świecie

Kurs algorytmów i struktur danych w Pythonie

4,5

Opanuj Pythona oraz struktury danych i algorytmy od podstaw — bez skrótów i zbędnych treści. Ten kurs poprowadzi cię od napisania pierwszego skryptu w Pythonie do rozwiązywania złożonych problemów z grafami i programowaniem dynamicznym. Niezależnie od tego, czy celujesz w najlepsze firmy technologiczne, czy podnosisz swoje umiejętności inżynierskie, to jest kompletna techniczna podstawa, której potrzebujesz.

Dedika dla firm

Czego się nauczysz:

Zbudujesz solidne podstawy Pythona obejmujące składnię, kolekcje i projektowanie obiektowe, zanim przejdziesz do głównych tematów DSA. Od podstaw zaimplementujesz tablice, listy powiązane, stosy, kolejki, drzewa i grafy. Dla każdego ważnego algorytmu przeanalizujesz złożoność czasową i pamięciową za pomocą notacji Big-O. Opanujesz sortowanie, wyszukiwanie, rekurencję i programowanie dynamiczne na prawdziwym kodzie. Będziesz również ćwiczyć wzorce programowania konkurencyjnego i techniki symulowanych rozmów kwalifikacyjnych, przygotowujące do procesów rekrutacyjnych w czołowych firmach technologicznych.

Jak uczysz się w praktyce Kurs algorytmów i struktur danych w Pythonie

Jak ćwiczysz Kurs algorytmów i struktur danych w Pythonie

Dla firm, które chcą szkolić swój zespół

W Dedika dla firm kurs zawiera ćwiczenia i przykłady dostosowane do Twojego biznesu i potrzeb Twojej firmy.

Kliknij tutaj

Treść kursu

8 Rozdziały • 40 LekcjeCzas trwania od 4 do 360 godzin (Ty decydujesz)

Rozdział 1Zobacz szczegóły

Podstawy programowania w Pythonie

  • Lekcja 1 • Funkcje i zakres widoczności

    Definiuje funkcje wielokrotnego użytku z parametrami, wartościami zwracanymi i regułami zakresu widoczności. Przygotowuje studentów do hermetyzacji logiki DSA w czystych, testowalnych jednostkach.

  • Lekcja 2 • Sterowanie przepływem i iteracja

    Uczy rozgałęzień if/elif/else, pętli for i while oraz instrukcji sterowania pętlami. Umożliwia studentom wyrażanie logiki algorytmicznej w Pythonie.

  • Lekcja 3 • Obsługa błędów i debugowanie

    Wprowadza wyjątki, bloki try/except i narzędzia do debugowania. Wyposaża studentów w umiejętność pisania odpornego na błędy kodu i diagnozowania awarii w złożonych programach.

  • Lekcja 4 • Podstawowe typy danych i zmienne

    Obejmuje liczby całkowite, zmiennoprzecinkowe, łańcuchy znaków, wartości logiczne i rzutowanie typów. Dostarcza prymitywów danych używanych w każdej implementacji algorytmu.

  • Lekcja 5 • Konfiguracja środowiska Python

    Zainstaluj Pythona, skonfiguruj środowisko wirtualne i wybierz IDE. Ustanawia zestaw narzędzi, od którego zależą wszystkie kolejne rozdziały.

Rozdział 2Zobacz szczegóły

Kolekcje Pythona i wyrażenia składane

  • Lekcja 1 • Iteratory, generatory i leniwa ewaluacja

    Wyjaśnia protokół iteratora, funkcje generatora i instrukcję yield. Umożliwia wydajną pamięciowo nawigację po dużych zbiorach danych w problemach DSA.

  • Lekcja 2 • Listy i krotki w szczegółach

    Bada indeksowanie, wycinanie, mutację i niezmienność krotek. Te typy sekwencyjne stanowią podstawę tablicowych struktur danych omawianych później.

  • Lekcja 3 • Słowniki i zbiory

    Obejmuje przechowywanie oparte na haszowaniu, operacje klucz-wartość i algebrę zbiorów. Bezpośrednio wspiera implementacje tablic mieszających i list sąsiedztwa grafów.

  • Lekcja 4 • Wyrażenia składane list i słowników

    Uczy zwięzłej składni wyrażeń składanych do filtrowania i przekształcania kolekcji. Redukuje kod szablonowy w implementacjach algorytmów w trakcie kursu.

  • Lekcja 5 • Sortowanie, wyszukiwanie i wbudowane algorytmy

    Używa funkcji sorted(), min(), max() i funkcji klucza do przetwarzania kolekcji. Łączy wbudowane funkcje Pythona z niestandardowymi algorytmami sortowania omawianymi w dalszej części.

Rozdział 3Zobacz szczegóły

Analiza algorytmów i złożoność

  • Lekcja 1 • Wprowadzenie do analizy algorytmów

    Definiuje poprawność algorytmów, wydajność i potrzebę formalnej analizy. Kładzie nastawienie analityczne stosowane do każdej struktury danych i algorytmu w dalszej części kursu.

  • Lekcja 2 • Big-O, Big-Omega i Big-Theta

    Formalizuje notację asymptotyczną i typowe klasy złożoności. Zapewnia słownictwo używane do opisu każdego algorytmu w kolejnych rozdziałach.

  • Lekcja 3 • Analiza pętli i wywołań rekurencyjnych

    Uczy zliczania kroków dla pętli i relacji rekurencyjnych dla rekurencji. Bezpośrednio przygotowuje studentów do analizy algorytmów sortowania i drzewiastych.

  • Lekcja 4 • Profilowanie kodu w Pythonie

    Używa modułów timeit, cProfile i memory_profiler do mierzenia rzeczywistej wydajności. Łączy teoretyczną złożoność z mierzalnym zachowaniem wykonania Pythona.

  • Lekcja 5 • Złożoność pamięciowa i kompromisy

    Rozróżnia pamięć pomocniczą od całkowitej i bada kompromisy czas-pamięć. Kieruje decyzjami projektowymi, gdy ograniczenia pamięciowe mają znaczenie.

Rozdział 4Zobacz szczegóły

Liniowe struktury danych

  • Lekcja 1 • Porównanie złożoności struktur liniowych

    Porównuje złożoność czasową i pamięciową wszystkich badanych struktur liniowych. Umożliwia świadomy wybór struktury do problemów projektowania algorytmów.

  • Lekcja 2 • Listy powiązane pojedyncze i podwójne

    Buduje klasy węzłów i operacje na listach, w tym wstawianie, usuwanie i przechodzenie. Wprowadza myślenie wskaźnikowe niezbędne dla drzew i grafów.

  • Lekcja 3 • Stosy: implementacja i zastosowania

    Implementuje stosy za pomocą list i list powiązanych, a następnie stosuje je do rzeczywistych problemów. Demonstruje semantykę LIFO używaną w rekurencji, parsowaniu i cofaniu.

  • Lekcja 4 • Kolejki, deki i kolejki priorytetowe

    Obejmuje kolejki FIFO, deki dwustronne i kolejki priorytetowe oparte na kopcu. Przygotowuje studentów do problemów BFS, szeregowania i algorytmów zachłannych.

  • Lekcja 5 • Tablice i tablice dynamiczne

    Obejmuje tablice statyczne, listy Pythona jako tablice dynamiczne i amortyzowane skalowanie. Ustanawia strukturę bazową, którą rozwijają wszystkie inne typy liniowe.

Rozdział 5Zobacz szczegóły

Rekurencja i algorytmy sortowania

  • Lekcja 1 • Kwadratowe algorytmy sortowania

    Implementuje sortowanie bąbelkowe, przez wybór i przez wstawianie z analizą krok po kroku. Zapewnia punkt odniesienia O(n²), względem którego mierzone są szybsze sortowania.

  • Lekcja 2 • Algorytmy wyszukiwania

    Implementuje wyszukiwanie liniowe i binarne z dowodami złożoności. Łączy wyszukiwanie z wymaganiami dotyczącymi posortowanych danych i rzeczywistymi problemami rekrutacyjnymi.

  • Lekcja 3 • Podstawy rekurencji

    Definiuje przypadki bazowe, przypadki rekurencyjne i stos wywołań. Buduje model myślowy wymagany dla przechodzenia drzew i algorytmów dziel i zwyciężaj.

  • Lekcja 4 • Sortowanie liniowe i hybrydowe

    Obejmuje sortowanie przez zliczanie, sortowanie pozycyjne i Timsort używany we wbudowanym sortowaniu Pythona. Poszerza zestaw narzędzi studentów poza sortowanie oparte na porównaniach.

  • Lekcja 5 • Sortowanie metodą dziel i zwyciężaj

    Implementuje sortowanie przez scalanie i szybkie, wyprowadzając ich złożoność O(n log n). Pokazuje, jak rekurencja umożliwia wydajne sortowanie dużych zbiorów danych.

Rozdział 6Zobacz szczegóły

Drzewa i hierarchiczne struktury danych

  • Lekcja 1 • Drzewa poszukiwań binarnych (BST)

    Implementuje wstawianie, wyszukiwanie i usuwanie w BST ze średnią analizą O(log n). Pokazuje przechowywanie i wyszukiwanie uporządkowanych danych za pomocą struktury drzewa.

  • Lekcja 2 • Drzewa trie i drzewa prefiksowe

    Konstruuje drzewo trie do wstawiania, wyszukiwania i dopasowywania prefiksów łańcuchów. Umożliwia wydajne rozwiązania autouzupełniania i wyszukiwania w słowniku.

  • Lekcja 3 • Drzewa binarne i przechodzenie

    Definiuje terminologię drzew i implementuje przechodzenie inorder, preorder i postorder. Ustanawia wzorzec rekurencyjnego przechodzenia używany we wszystkich algorytmach drzewiastych.

  • Lekcja 4 • Kopce i operacje na kopcach

    Buduje kopiec maksymalny i minimalny, implementuje operacje heapify i sortowanie kopcowe. Bezpośrednio wspiera implementacje kolejki priorytetowej i algorytmów zachłannych.

  • Lekcja 5 • Drzewa zrównoważone: AVL i czerwono-czarne

    Wyjaśnia równoważenie oparte na rotacjach w drzewach AVL i reguły kolorów w drzewach czerwono-czarnych. Gwarantuje wydajność O(log n) w najgorszym przypadku dla dynamicznych zbiorów danych.

Rozdział 7Zobacz szczegóły

Grafy i algorytmy grafowe

  • Lekcja 1 • Zaawansowane problemy grafowe

    Obejmuje silnie spójne składowe, sprawdzanie dwudzielności i podstawy przepływu w sieci. Rozszerza umiejętności grafowe na złożone kategorie problemów ze świata rzeczywistego.

  • Lekcja 2 • Reprezentacje grafów i terminologia

    Definiuje grafy skierowane, nieskierowane, ważone i cykliczne za pomocą list i macierzy sąsiedztwa. Ustanawia fundament dla wszystkich implementacji algorytmów grafowych.

  • Lekcja 3 • Algorytmy najkrótszej ścieżki

    Implementuje algorytmy Dijkstry i Bellmana-Forda dla grafów ważonych. Wyposaża studentów w umiejętność rozwiązywania problemów routingu i minimalizacji kosztów.

  • Lekcja 4 • Minimalne drzewa rozpinające

    Implementuje algorytmy Kruskala i Prima z użyciem union-find i kolejek priorytetowych. Rozwiązuje problemy projektowania sieci wymagające łączności o minimalnym koszcie.

  • Lekcja 5 • Przeszukiwanie wszerz (BFS) i w głąb (DFS)

    Implementuje BFS z kolejką oraz DFS z rekurencją i stosem. Obejmuje składowe spójności, wykrywanie cykli i sortowanie topologiczne.

Rozdział 8Zobacz szczegóły

Programowanie dynamiczne i zaawansowane techniki

  • Lekcja 1 • Algorytmy zachłanne i z powrotami (backtracking)

    Implementuje strategie zachłanne dla szeregowania zadań i kodowania Huffmana oraz backtracking dla problemu N-Hetmanów i podzbiorów. Uzupełnia podstawowy zestaw narzędzi do projektowania algorytmów.

  • Lekcja 2 • Tablicowanie i DP oddolne

    Buduje tablice DP iteracyjnie dla problemów wymiany monet, wchodzenia po schodach i ścieżek w siatce. Eliminuje narzut rekurencji i wyjaśnia logikę przejść między stanami.

  • Lekcja 3 • Wprowadzenie do programowania dynamicznego

    Definiuje nakładające się podproblemy i optymalną podstrukturę jako warunki wstępne DP. Porównuje DP z metodą dziel i zwyciężaj, aby wyjaśnić, kiedy każda z nich ma zastosowanie.

  • Lekcja 4 • Memoizacja i DP odgórne

    Konwertuje naiwną rekurencję na rozwiązania z memoizacją za pomocą słowników i functools.lru_cache. Pokazuje dramatyczną redukcję złożoności na przykładzie ciągu Fibonacciego i podobnych problemów.

  • Lekcja 5 • Klasyczne wzorce DP

    Rozwiązuje problem plecakowy, najdłuższego wspólnego podciągu i odległości edycyjnej. Uczy wielokrotnie używalnych szablonów DP mających zastosowanie do szerokiego zakresu pytań rekrutacyjnych.

Certyfikacja

Twój ważny certyfikat ukończenia

Ten kurs jest dla Ciebie:

  • Osoba zmieniająca ścieżkę kariery: chce zdobyć uporządkowane podstawy techniczne, aby wejść na stanowiska inżyniera oprogramowania.

  • Student informatyki: potrzebuje praktycznego ćwiczenia kodowania wykraczającego poza to, co zapewniają wykłady.

  • Samouk w programowaniu: potrafi tworzyć aplikacje, ale ma trudności z rozwiązywaniem problemów algorytmicznych pod presją.

  • Analityk danych: gotowy do pogłębienia umiejętności programowania w kierunku obowiązków na poziomie inżynierskim.

  • Ostatni absolwent: przygotowuje się do rozmów technicznych w konkurencyjnych firmach technologicznych już wkrótce.

  • Programista hobbysta: ciekawy, jak wewnętrznie projektuje się profesjonalne systemy oprogramowania.

Co mówią nasi uczniowie

Wasze lekcje są doskonałe. Kupiłem pakiet roczny i w końcu mam możliwość śledzenia różnych tematów, które mnie interesują, bez konieczności zmiany platformy... dziękuję za wszystko, co robicie, już polecałem was innym osobom...
Giulio Carlo
Giulio CarloStudent Marketingu Cyfrowego
Podoba mi się, jak lekcje są konkretne i jak mogę przełączać rozdziały i pomijać treści, których nie potrzebuję.
Mariana Ferres
Mariana FerresStudentka Fotografii
Podoba mi się treść i sposób prezentacji oraz transkrypcja filmów, co przyspiesza proces!
Luciana Alvarenga
Luciana AlvarengaStudentka Stylizacji Paznokci
Platforma jest szybka, prosta w użyciu. Różnorodność treści i filmy uzupełniające bardzo pomagają w nauce.
André Felipe
André FelipeStudent Inżynierii Promptów

Najważniejsze szkolenia

FAQ

Kim jest Dedika?

Czy certyfikat jest ważny w Polska?

Czy kursy są darmowe?

Jaki jest wymiar godzinowy kursu?

Jak wyglądają kursy?

Jak działają kursy?

Jaki jest czas trwania kursów?

Jaki jest koszt lub cena kursów?

Czym jest kurs EAD lub kurs online i jak działa?

Kurs PDF