Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowaniaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Podstawy programowania

Informacje ogólne

Kod przedmiotu: 1000-I1PPR Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji
Nazwa przedmiotu: Podstawy programowania
Jednostka: Wydział Matematyki i Informatyki
Grupy: Informatyka, studia I stopnia, 1 rok
Informatyka, studia inżynierskie 1 stopnia, 1 rok
Przedmioty z polskim językiem wykładowym
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
Język prowadzenia: polski
Wymagania wstępne:

Znajomość matematyki szkolnej na poziomie podstawowym. Podstawowa obsługa komputera (uruchomienie aplikacji, korzystanie z serwisów www, obsługa prostego edytora tekstowego).

Rodzaj przedmiotu:

kanon

Całkowity nakład pracy studenta:

30h - wykład,

4h - egzamin,

45h - laboratoria,

20h - praca własna - bieżące przygotowanie do zajęć, studiowanie literatury

55h - praca własna - implementacja programów w języku C++

20h - praca własna - przygotowanie do egzaminu


Razem 174h,

6pkt. ECTS

Efekty uczenia się - wiedza:

Po zakończeniu przedmiotu student:

(W1) opisuje podstawowe pojęcia teorii algorytmów, ich złożoności i poprawności (por. K_W02 z Załącznika nr 1 do uchwały Nr 5 Senatu UMK z dnia 5 lutego 2019 r.),

(W2) zna podstawowe konstrukcje programistyczne (por. K_W03),

(W3) zna podstawową składnię języka C++, rozróżnia proste typy danych i typy złożone (por. K_W03, K_W10),

(W4) zna podstawowe metody i techniki projektowania, analizowania i programowania algorytmów (por. K_W04).


Efekty uczenia się - umiejętności:

Po zakończeniu przedmiotu student:

(U1) projektuje algorytmy na rozwiązanie typowych zadań i implementuje je w języku C++ w wybranym środowisku programistycznym np. Code::Blocks (por. K_U05, K_U07, K_U03),

(U2) poprawnie wykorzystuje proste i złożone typy danych stosownie do sytuacji, pamiętając o ich ograniczeniach, np. związanych z arytmetyką komputera (por. K_U08),

(U3) ocenia rząd złożoności czasowej algorytmu (por. K_U07, K_U01, K_U06),

(U4) uzasadnia poprawność algorytmu oraz własnej implementacji (por. K_U07, K_U01),

(U5) umie czytać ze zrozumieniem schematy blokowe oraz programy zapisane w języku C++ (por. K_U06).


Efekty uczenia się - kompetencje społeczne:

Po zakończeniu przedmiotu student:

(K1) służy swoją wiedzą i umiejętnościami, skutecznie przekazuje innym swoje myśli w zrozumiały sposób; właściwie posługuje się terminologią fachową w obrębie zagadnień związanych z podstawami programowania (por. K_K02),

(K2) jest nastawiony na jak najlepsze wykonanie zadania; dba o szczegół; jest systematyczny (por. K_K04),

(K3) krytycznie ocenia swoją wiedzę i doskonali ją z wykorzystaniem różnych źródeł informacji (por. K_K03).


Metody dydaktyczne:

Zagadnienia dyskutowane na tym przedmiocie podawane są studentom w formie wykładów informacyjnych i problemowych przeplatanych pokazami działania algorytmów na konkretnych, reprezentatywnych danych wejściowych. Wykłady uzupełnione są zajęciami laboratoryjnymi poświęconymi zarówno implementacji poznawanych algorytmów i struktur danych jak i rozwiązywaniu teoretycznych ćwiczeń problemowych pozwalających pogłębić wiedzę przyswojoną w czasie wykładów.

Metody dydaktyczne eksponujące:

- pokaz

Metody dydaktyczne podające:

- wykład informacyjny (konwencjonalny)
- wykład konwersatoryjny
- wykład problemowy

Metody dydaktyczne poszukujące:

- ćwiczeniowa
- klasyczna metoda problemowa
- laboratoryjna

Skrócony opis:

Celem wykładu jest wprowadzenie słuchaczy w podstawowe zagadnienia teoretyczne i praktyczne programowania. W szczególności, zapoznanie ich z terminologią i wybranymi zagadnieniami teorii algorytmów oraz elementami języków programowania C/C++.

Głównym celem ćwiczeń laboratoryjnych jest zdobycie praktycznych umiejętności implementacji w tym języku prostych algorytmów.

Pełny opis:

  1. Algorytmy - wstęp. Pojęcie algorytmu, definicja algorytmu. Przykłady algorytmów rozwiązujących proste zadania. Języki zapisu algorytmów: schematy blokowe, pseudokod, języki programowania. Syntaktyka i semantyka programów.
  2. Język programowania. Przegląd podstawowych typów prostych (typy całkowite, rzeczywiste, logiczny, znakowy). Zmienne i stałe. Podstawowe struktury sterujące (instrukcje: warunkowe, pętla repetycyjna i iteracyjna). Syntaktyka i semantyka instrukcji. Zapisywanie algorytmów za pomocą instrukcji. Struktura programu. Kompilacja programów. Obsługa wejścia i wyjścia. Środowiska programistyczne.
  3. Dane i ich struktury. Reprezentacja liczb całkowitych i rzeczywistych w komputerze. Przegląd podstawowych struktur danych. Deklaracje typów strukturalnych: tablice, łańcuchy (napisy), struktury, typy wyliczeniowe. Przykłady użycia poszczególnych typów.
  4. Funkcje - definicja i deklaracja. Przekazywanie parametrów przez wartość i przez nazwę (referencję). Zmienne lokalne i globalne. Biblioteki.
  5. Rekurencja w programowaniu. Funkcje rekurencyjne. Wady i zalety stosowania rekurencji. Przykłady algorytmów rekurencyjnych.
  6. Złożoność obliczeniowa algorytmów. Funkcja kosztu - funkcja pesymistycznej czasowej złożoności algorytmu, jej rząd wielkości. Notacja asymptotyczna. Wyznaczanie pesymistycznej złożoności czasowej algorytmu.
  7. Typowe metody algorytmiczne. Przegląd metod tworzenia algorytmów: metoda zachłanna, metoda „dziel i zwyciężaj”, programowanie dynamiczne. Przegląd algorytmicznych rozwiązań wybranych problemów obliczeniowych (w tym, algorytmy wyszukujące oraz algorytmy sortowania).
  8. Poprawność algorytmów (programów). Dowodzenia częściowej poprawności algorytmów. Problem stopu, sposoby sprawdzania własności stopu.
  9. Praca z plikami i napisami.
  10. Wskaźniki i podstawowe dynamiczne struktury danych.
Literatura:

Literatura podstawowa:

  1. N. Wirth, Algorytmy + struktury danych = programy, WNT, Warszawa,
  2. M. Sysło, Algorytmy, WSiP, Warszawa,
  3. J. Grębosz, Symfonia C++ Standard, t.1, Edition 2000,
  4. J. Grębosz, Opus magnum C++11. Programowanie w języku C++, Gliwice, Helion 2018,
  5. Portal "Studia Informatyczne" - http://wazniak.mimuw.edu.pl/.

Literatura uzupełniająca:

  1. D. Harel, Rzecz o istocie informatyki: Algorytmika, WNT, Warszawa.
  2. L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, Warszawa.
  3. T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Wprowadzenie do algorytmów, WNT, Warszawa.
Metody i kryteria oceniania:

Zaliczenie ćwiczeń laboratoryjnych na ocenę oraz egzamin z wykładu.

Elementami składowymi zaliczenia ćwiczeń są:

  • sprawdzian praktyczny „przy komputerze" weryfikujący umiejętność samodzielnego rozwiązywania problemów algorytmicznych i programowania w C/C++ (efekty W2-W4, U1, U2, K1, K2),
  • sprawdzian teoretyczny weryfikujący przyswojenie wiedzy i umiejętności z zakresu złożoności i poprawności algorytmów (efekty W1, W4, U3-U5, K1, K2),
  • samodzielny projekt programistyczny (efekty W2-W4, U1, U2, K1-K3),
  • aktywność na zajęciach i samodzielne przygotowanie rozwiązań prostych zadań programistycznych i teoretycznych (efekt W1-W4, U1-U5, K1-K3).

Warunkiem koniecznym jest uzyskanie pozytywnej oceny dla każdego z powyższych elementów. Zalecane jest równe traktowanie każdego z nich. Bardziej szczegółowe zasady zaliczenia ćwiczeń mogą znajdować się w informacjach dla zajęć w konkretnym cyklu.

Uwaga: W zależności od rozwoju epidemii koronawirusa oraz obowiązujących reżimów sanitarnych, dopuszcza się realizację części (lub wszystkich) powyższych składowych zaliczenia w formie zdalnej.

Egzamin z wykładu:

W zależności od obowiązujących reżimów sanitarnych egzamin przyjmie jedną z dwóch poniższych form:

  1. Egzamin dwuczęściowy:
    • Część I (teoretyczna/pisemna) - sprawdzający opanowanie zagadnień teoretycznych omawianych na wykładzie (efekty W1, W4, U1-U5, K1, K2).
    • Część II (praktyczna/przy komputerze) - proste zadanie programistyczne sprawdzające umiejętność implementacji i omówienia podstawowych konstrukcji programistycznych (efekty W2, W3, U1-U5, K1-K3).

    • Warunkiem koniecznym zdania egzaminu jest pozytywne (minimum 50%) zaliczenie części teoretycznej, która stanowi główny czynnik kształtujący ocenę końcową oraz pozytywne zaliczenie części praktycznej (mogącej w nieznacznym stopniu zmodyfikować wynik uzyskany w części pisemnej: ±0,5 oceny).
    lub
  2. Egzamin pisemny jednoczęściowy:
    • sprawdzający opanowanie zagadnień teoretycznych i praktycznych omawianych na wykładzie (efekty W1-W4, U1-U5, K1-K3).

Uwaga: W zależności od rozwoju epidemii koronawirusa oraz obowiązujących reżimów sanitarnych, dopuszcza się realizację części (lub całości) egzaminu w formie zdalnej.

Praktyki zawodowe:

---

Zajęcia w cyklu "Semestr zimowy 2017/18" (zakończony)

Okres: 2017-10-01 - 2018-02-25
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 45 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 200 miejsc więcej informacji
Koordynatorzy: Łukasz Mikulski, Andrzej Mróz
Prowadzący grup: Bartosz Bieganowski, Anna Gogolińska, Jakub Kluczewski, Damian Kurpiewski, Łukasz Mikulski, Andrzej Polewczyński, Bartosz Ziemkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

Zajęcia w cyklu "Semestr zimowy 2018/19" (zakończony)

Okres: 2018-10-01 - 2019-02-24
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 45 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 200 miejsc więcej informacji
Koordynatorzy: Łukasz Mikulski, Andrzej Mróz
Prowadzący grup: Bartosz Bieganowski, Anna Gogolińska, Jakub Kluczewski, Witold Kraśkiewicz, Łukasz Mikulski, Andrzej Polewczyński, Bartosz Ziemkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

Zajęcia w cyklu "Semestr zimowy 2019/20" (zakończony)

Okres: 2019-10-01 - 2020-02-28
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 45 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 200 miejsc więcej informacji
Koordynatorzy: Andrzej Mróz
Prowadzący grup: Bartosz Bieganowski, Anna Gogolińska, Witold Kraśkiewicz, Damian Kurpiewski, Andrzej Mróz, Andrzej Polewczyński, Bartosz Ziemkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

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

Okres: 2020-10-01 - 2021-02-28
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 45 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 200 miejsc więcej informacji
Koordynatorzy: Andrzej Mróz
Prowadzący grup: Mariusz Kaniecki, Witold Kraśkiewicz, Damian Kurpiewski, Łukasz Mikulski, Andrzej Mróz, Andrzej Polewczyński, Bartosz Ziemkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.