SylabUZ

Wygeneruj PDF dla tej strony

Programowanie komputerów 2 - opis przedmiotu

Informacje ogólne
Nazwa przedmiotu Programowanie komputerów 2
Kod przedmiotu 11.3-WK-IiEP-PK2-W-S14_pNadGen3JVWA
Wydział Wydział Matematyki, Informatyki i Ekonometrii
Kierunek Informatyka i ekonometria
Profil ogólnoakademicki
Rodzaj studiów pierwszego stopnia z tyt. licencjata
Semestr rozpoczęcia semestr zimowy 2017/2018
Informacje o przedmiocie
Semestr 2
Liczba punktów ECTS do zdobycia 5
Typ przedmiotu obowiązkowy
Język nauczania polski
Sylabus opracował
  • dr Florian Fabiś
Formy zajęć
Forma zajęć Liczba godzin w semestrze (stacjonarne) Liczba godzin w tygodniu (stacjonarne) Liczba godzin w semestrze (niestacjonarne) Liczba godzin w tygodniu (niestacjonarne) Forma zaliczenia
Wykład 30 2 - - Egzamin
Laboratorium 30 2 - - Zaliczenie na ocenę

Cel przedmiotu

Opanowanie umiejętności pisania programów z wykorzystaniem złożonych struktur danych. Umiejętność implementacji w programach algorytmów sortowania, selekcji i wyszukiwania. Znajomość w zakresie podstawowym problemu NP-zupełnosci (klasy P, NP, NP-zupełne). Zapoznanie studenta z podstawowymi pojęciami programowania zorientowanego obiektowego.

Wymagania wstępne

Programowanie komputerów 1.

Zakres tematyczny

Wykład

  1. Programowanie strukturalne w języku C++. Struktury w C++. Zmienne dynamiczne: definicje, procedury tworzenia i usuwania zmiennych dynamicznych, operacje określone na elementach typu wskaźnikowego. Dynamiczne struktury danych:  listy, stosy, kolejki. Podstawowe operacje na plikach w C++. Kontenery w C++
  2. Paradygmat programowania obiektowego.
  3. Metody konstruowania efektywnych algorytmów. Rekurencja, metoda „dziel i zwyciężaj”, algorytmy zachłanne.
  4. Podstawowe algorytmy wyszukiwania. Wyszukiwanie liniowe, binarne, interpolacyjne. Samoorganizujące się pliki.
  5. Podstawowe algorytmy sortowania i selekcji.
  6. Klasy złożoności obliczeniowej problemów. Problemy decyzyjne i optymalizacyjne. Modele obliczeń: deterministyczna i niedeterministyczna maszyna Turinga. Klasy złożoności obliczeniowej problemów decyzyjnych: P, NP, NP-zupełne.

Laboratorium

  1. Pisanie i uruchamianie programów zawierających tablice struktur.
  2. Przetwarzanie plików.
  3. Stosowanie w programach zmiennych dynamicznych i tablic dynamicznych.
  4. Dynamiczne struktury danych (stosy, kolejki, listy). 
  5. Pisanie programu będącego prostą bazą danych.

Metody kształcenia

Wykład: wykład problemowy.

Laboratorium: ćwiczenia laboratoryjne w pracowni komputerowej – pisanie i uruchamianie samo-dzielnie napisanych programów w C++, na zadane przez prowadzącego tematy,  analiza tych programów i analiza stosowanych algorytmów. Nad niektórymi programami studenci będą pracowali w grupach 2–3 osobowych. Na ostatnich trzech ćwiczeniach każdy student pracuje nad samodzielnie zaprojektowaną aplikacją będącą prostą bazą danych, zawierającą wszystkie zdobyte na zajęciach umiejętności. Do aplikacji musi być dołączona  dokumentacja zgodna z zadaną specyfikacją.

Efekty uczenia się i metody weryfikacji osiągania efektów uczenia się

Opis efektu Symbole efektów Metody weryfikacji Forma zajęć

Warunki zaliczenia

Wykład. Egzamin weryfikujący efekty kształcenia w zakresie wiedzy i umiejętności. Egzamin składa się z dwóch części, pisemnej i ustnej. Warunkiem przystąpienia do części ustnej jest uzyskanie 30% punktów z części pisemnej. Uzyskanie 50% punktów z części pisemnej gwarantuje uzyskanie pozytywnej oceny.

Laboratorium. Ocena końcowa  jest wystawiana na podstawie punktów uzyskanych na zajęciach. Punkty uzyskuje się za napisane na zajęciach sprawdziany, przedstawioną na ostatnich zajęciach aplikację, aktywność na zajęciach.

Na ocenę z przedmiotu składa się ocena z laboratorium (50%) oraz ocena z egzaminu (50%). Warunkiem przystąpienia do egzaminu jest pozytywna ocena z laboratorium. Warunkiem zaliczenia przedmiotu jest pozytywna ocena z egzaminu.

Literatura podstawowa

  1. L. Banachowski, K. Diks, W. Rytter : Algorytmy i struktury danych, WNT, W-wa 1996.
  2. J. Grebosz, Symfonia C++, Wydawnictwo Edition 2000, Kraków, 2010
  3. A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice, 2010. 
  4. A. Stasiewicz, C++. Ćwiczenia praktyczne, Helion, Gliwice, 2008.

Literatura uzupełniająca

1.        T.H. Cormen, Ch.E. Leiserson, R.L. Rivest: Wprowadzenie do algorytmów, WNT, 1997.

2.        P. Wróblewski: Algorytmy, struktury danych i techniki programowania, wyd. II popr., Helion, 2001.

Uwagi


Zmodyfikowane przez dr Robert Dylewski, prof. UZ (ostatnia modyfikacja: 14-07-2017 13:27)