Metody programowania: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Daria (dyskusja | edycje)
Linia 52: Linia 52:


=== Moduły ===
=== Moduły ===
# [[MP_Rekursja|Rekursja]]
# [[MP_Rekursja|Rekursja]] ([[Metody_programowania_/_Ćwiczenia_1|Ćwiczenia]])
# [[MP_Listy|Moduł 2]] [[MP_Ćwiczenia1|Ćwiczenia do modułu 2]] (listy)
# Moduł 2 ([[Metody_programowania_/_Ćwiczenia_2|Ćwiczenia:listy]])
# [[MP_Listy|Moduł 3]] [[MP_Ćwiczenia2|Ćwiczenia do modułu 3]] (drzewa)
# Moduł 3 ([[Metody_programowania_/_Ćwiczenia_3|Ćwiczenia:drzewa]])
# Moduł 4 [[MP_Ćwiczenia3|Ćwiczenia do modułu 4]] (stosy i kolejki)
# Moduł 4 ([[Metody_programowania_/_Ćwiczenia_4|Ćwiczenia:stosy i kolejki]])
# Moduł 5 [[MP_Ćwiczenia5|Ćwiczenia do modułu 5]] (programowanie zachłanne)
# Moduł 5 ([[Metody_programowania_/_Ćwiczenia_5|Ćwiczenia:programowanie zachłanne]])
# Moduł 6 [[MP_Ćwiczenia6|Ćwiczenia do modułu 6]] (programowanie dynamiczne)
# Moduł 6 ([[Metody_programowania_/_Ćwiczenia_6|Ćwiczenia:programowanie dynamiczne]])

Wersja z 23:18, 28 wrz 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Celem zajęć jest prezentacja technik programistycznych i struktur danych wykorzystywanych w programowaniu w małej i średniej skali.

Sylabus

Autor

  • Piotr Chrząstowski-Wachtel — Uniwersytet Warszawski

Wymagania wstępne

  • Wstęp do programowania

Zawartość

  • Rekurencja:
    • rekurencyjne wyrażanie pojęć
    • zastosowania i implementacja
    • dowodzenie poprawności procedur rekurencyjnych
  • Programowanie z nawrotami:
    • przeszukiwanie pełnej przestrzeni stanów
    • ucinanie rekursji
  • Metoda dziel i rządź:
    • metoda inkrementacyjna
    • podział binarny
  • Dynamiczne struktury danych:
    • typy wskaźnikowe
    • wskaźnikowa realizacja list
    • podstawowe operacje na listach
    • listy jednokierunkowe, dwukierunkowe i cykliczne
    • atrapy i strażnicy
  • Liniowe struktury danych: stosy i kolejki:
    • implementacja tablicowa i listowa
    • implementacja grafu za pomocą list sąsiedztwa
    • algorytmy DFS i BFS
  • Drzewa:
    • implementacja drzew dowolnego rzędu
    • drzewa binarne
    • obiegi drzew
    • konwersja wyrażeń z postaci infiksowej na prefiksową i postfiksową (ONP)
  • Programowanie zachłanne:
    • algorytm Huffmana
  • Metoda spamiętywania:
    • programowanie dynamiczne
    • problem plecakowy
    • optymalne mnożenie wielu macierzy

Literatura

  1. N.Wirth, Algorytmy+Struktury danych=Programy, Wydawnictwa Naukowo-Techniczne, Warszawa 2001.
  2. T.H.Cormen, Ch.E.Leiserson, R.L.Rivest, Wprowadzenie do algorytmiki, Wydawnictwa Naukowo-Techniczne, Warszawa 2004.
  3. D.E.Knuth, Sztuka programowania komputerów tom 3, Wydawnictwa Naukowo-Techniczne, Warszawa 2002.

Moduły

  1. Rekursja (Ćwiczenia)
  2. Moduł 2 (Ćwiczenia:listy)
  3. Moduł 3 (Ćwiczenia:drzewa)
  4. Moduł 4 (Ćwiczenia:stosy i kolejki)
  5. Moduł 5 (Ćwiczenia:programowanie zachłanne)
  6. Moduł 6 (Ćwiczenia:programowanie dynamiczne)