Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Wstęp do informatyki II (potok II)

Informacje ogólne

Kod przedmiotu: 1000-112bWI2b Kod Erasmus / ISCED: 11.101 / (0541) Matematyka
Nazwa przedmiotu: Wstęp do informatyki II (potok II)
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obowiązkowe dla I roku matematyki
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Skrócony opis:

Celem wykładu jest zapoznanie studentów z zasadami rozwiązywania problemów przy użyciu komputerów oraz praktyczna implementacja algorytmów.

Pełny opis:

  • Elementy analizy złożoności obliczeniowej: Rozmiar zadania. Złożoność czasowa i pamięciowa. Rząd złożoności. Wpływ rzędu złożoności na praktyczną przydatność algorytmu. Obliczanie złożoności prostych algorytmów (sortowanie i wyszukiwanie binarne). Obliczanie złożoności algorytmów rekurencyjnych (pamięciowej i czasowej).
  • Abstrakcyjne struktury danych i metody ich implementacji: Stosy, kolejki, kolejki priorytetowe. Przykłady użycia (algorytm Heap-Sort). Implementacja tablicowa. Wskaźniki. Dynamiczna alokacja pamięci. Listy. Listowa implementacja stosu, kolejki i kolejki priorytetowej. Drzewa binarnych wyszukiwań.
  • Grafy i algorytmy grafowe: Grafy i ich reprezentacje. Podstawowe algorytmy grafowe. Przeszukiwanie w głąb i wszerz.
  • Informacja o problemach NP-zupełnych i nierozstrzygalnych.
Literatura:

  • Cormen T.H., Leiserson C.E., Rivest R.L., Stein C. "Wprowadzenie do algorytmów", WNT, Warszawa, 2005.
  • L. Banachowski, K. Diks, W. Rytter, "Algorytmy i struktury danych", WNT, Warszawa 2002.
  • N. Wirth, "Algorytmy + struktury danych = programy".
  • N. Wirth, "Wstęp do programowania systematycznego".
  • D. Harel, "Rzecz o istocie informatyki".
  • Podręcznik do nauki wybranego języka programowania.
Efekty uczenia się:

Zna materiał wyłożony w trakcie wykładu i utrwalony na ćwiczeniach oraz laboratorium.

Potrafi wykorzystać zdobytą wiedzę do rozwiązywania zadań.

W szczególności:

  • Potrafi przeprowadzić analizę kosztu algorytmów, wykorzystując równania różnicowe oraz twierdzenie o rekurencji uniwersalnej, m.in. algorytmów sortowania: Quicksort, Mergesort, itp.
  • Rozumie wpływ kosztu na praktyczną przydatność algorytmu oraz różnicę między kosztem obliczeniowym a pamięciowym.
  • Potrafi wykorzystać abstrakcyjne struktury danych (stosy, kolejki, kolejki priorytetowe, kopce, listy jedno- i dwukierunkowe, drzewa, grafy), zna podstawowe algorytmy obsługi tych struktur oraz umie zaimplementować je w omawianym na wykładzie języku programowania imperatywnego.
  • Zna przykłady klasycznych zastosowań abstrakcyjnych struktur danych oraz koszty algorytmów na nich opartych.
  • Zna i potrafi wykorzystać w praktyce techniki programistyczne takie jak rekurencja, zasada "dziel i rządź", programowanie zachłanne i dynamiczne.

Zajęcia w cyklu "Semestr letni 2020/21" (jeszcze nie rozpoczęty)

Okres: 2021-02-22 - 2021-06-13
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Przemysław Kiciak
Prowadzący grup: Przemysław Kiciak, Anh Linh Nguyen
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.