Uniwersytet Warszawski, Wydział Matematyki, Informatyki i Mechaniki - Centralny System Uwierzytelniania
Strona główna

Wstęp do informatyki II (potok II)

Informacje ogólne

Kod przedmiotu: 1000-112bWI2b
Kod Erasmus / ISCED: 11.101 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0541) Matematyka Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
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 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

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 2021/22" (zakończony)

Okres: 2022-02-21 - 2022-06-15
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, Konrad Sakowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2022/23" (jeszcze nie rozpoczęty)

Okres: 2023-02-20 - 2023-06-18

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: Bartosz Bieganowski, 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, Wydział Matematyki, Informatyki i Mechaniki.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 6.8.0.0-0cee12404 (2022-08-03)