SylabUZ

Generate PDF for this page

Computer Programming 2 - course description

General information
Course name Computer Programming 2
Course ID 11.3-WK-MATP-PK2-W-S14_pNadGenWTPHZ
Faculty Faculty of Mathematics, Computer Science and Econometrics
Field of study Mathematics
Education profile academic
Level of studies First-cycle studies leading to Bachelor's degree
Beginning semester winter term 2020/2021
Course information
Semester 2
ECTS credits to win 6
Course type obligatory
Teaching language polish
Author of syllabus
  • dr Florian Fabiś
Classes forms
The class form Hours per semester (full-time) Hours per week (full-time) Hours per semester (part-time) Hours per week (part-time) Form of assignment
Lecture 30 2 - - Exam
Laboratory 30 2 - - Credit with grade

Aim of the course

Opanowanie umiejętności pisania  zaawansowanych programów w języku C++, z zachowaniem zasad programowania strukturalnego. Poznanie w zakresie podstawowym problemu NP-zupełności.

Prerequisites

Programowanie komputerów 1 (z semestru 1).

Scope

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++.
  2. Metody konstruowania efektywnych algorytmów.
    Rekurencja, metoda „dziel i zwyciężaj”, algorytmy zachłanne.
  3.  Podstawowe algorytmy wyszukiwania.
    Wyszukiwanie liniowe, binarne, interpolacyjne. Samoorganizujące się pliki.
  4. Podstawowe algorytmy sortowania i selekcji.
  5. Kontenery w C++.
  6. Paradygmat programowania obiektowego.
  7. 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.

Teaching methods

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ą.

Learning outcomes and methods of theirs verification

Outcome description Outcome symbols Methods of verification The class form

Assignment conditions

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

Recommended reading

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

Further reading

  1. Cormen T. H., Leiserson Ch. E., Rivest R. L.: Wprowadzenie do algorytmów, WNT, 1997
  2. Kingsley-Hughes A. and K., Programowanie od podstaw, Helion, Gliwice, 2005.

Notes


Modified by dr Alina Szelecka (last modification: 05-06-2020 12:18)