Podstawy algorytmiki i programowania
1000-ZiPAPR
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 przećwiczenie w praktyce wiedzy z wykładu, w tym zdobycie praktycznych umiejętności implementacji w języku C++ prostych algorytmów.
Całkowity nakład pracy studenta
1. Godziny realizowane z udziałem nauczycieli
a) wykład – 30 godzin,
b) laboratorium – 34 godziny,
c) bieżące przygotowanie do zajęć, w tym rozwiązywanie zadań zleconych przez prowadzących, zapoznanie się z informacją zwrotną dotyczącą rozwiązanych zadań oraz konsultacje z prowadzącymi zajęcia – 60 godzin.
2. Czas poświęcony na pracę indywidualną studenta potrzebny do pomyślnego zaliczenia przedmiotu:
a) studiowanie literatury – 30 godzin,
b) zapoznanie się z materiałami dodatkowymi, m.in. dokumentacją bibliotek programistycznych – 45 godzin,
c) wykonanie zadań i projektów zaliczeniowych – 60 godzin.
3. Czas wymagany do przygotowania się do uczestnictwa w procesie oceniania (np. w egzaminach):
a) przygotowanie się do egzaminu – 45 godzin.
RAZEM: 304 godziny (12 punktów ECTS)
Efekty uczenia się - wiedza
Po ukończeniu kursu student osiąga następujące efekty (kody odnoszą się do efektów dla studiów 1 stopnia na kierunku informatyka - studia inżynierskie):
W1 - opisuje podstawowe pojęcia teorii algorytmów, ich złożoności i poprawności (K_W02),
W2 - zna podstawowe konstrukcje programistyczne (K_W03),
W3 - zna podstawową składnię języka C++, rozróżnia proste typy danych i typy złożone (K_W03, K_W10),
W4 - zna podstawowe metody i techniki projektowania, analizowania i programowania algorytmów (K_W04).
Efekty uczenia się - umiejętności
Po ukończeniu kursu student osiąga następujące efekty (kody odnoszą się do efektów dla studiów 1 stopnia na kierunku informatyka - studia inżynierskie):
U1 - projektuje algorytmy rozwiązujące typowe zadania i implementuje je w języku C++ w wybranym środowisku programistycznym (K_U05, K_U07),
U2 - poprawnie wykorzystuje proste i złożone typy danych stosownie do sytuacji, pamiętając o ich ograniczeniach (K_U08),
U3 - ocenia rząd złożoności czasowej algorytmu (K_U07, K_U01),
U4 - uzasadnia poprawność algorytmu oraz własnej implementacji (K_U07, K_U01),
U5 - umie czytać ze zrozumieniem schematy blokowe oraz programy zapisane w języku C++ (K_U06).
Efekty uczenia się - kompetencje społeczne
Po ukończeniu kursu student osiąga następujące efekty (kody odnoszą się do efektów dla studiów 1 stopnia na kierunku informatyka - studia inżynierskie):
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 (K_K02),
K2 - jest nastawiony na jak najlepsze wykonanie zadania; dba o szczegół; jest systematyczny (K_K04),
K3 - krytycznie ocenia swoją wiedzę i doskonali ją z wykorzystaniem różnych źródeł informacji (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 problemowy
- wykład konwersatoryjny
- wykład informacyjny (konwencjonalny)
Metody dydaktyczne poszukujące
- projektu
- laboratoryjna
Rodzaj przedmiotu
przedmiot obligatoryjny
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).
Koordynatorzy przedmiotu
W cyklu 2023/24Z: | W cyklu 2024/25Z: |
Kryteria oceniania
Egzamin z wykładu:
- Egzamin pisemny sprawdzający opanowanie zagadnień teoretycznych omawianych na wykładzie (efekty W1, W4, U1-U5, K1, K2).
Warunkiem koniecznym zdania egzaminu jest uzyskanie minimum 50% możliwych do zdobycia punktów.
Zaliczenie laboratoriów na ocenę. Elementami składowymi zaliczenia są:
- sprawdziany praktyczne „przy komputerze" weryfikujące umiejętność samodzielnego rozwiązywania problemów algorytmicznych i programowania w C/C++ (efekty W2-W4, U1, U2, K1, K2),
- 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. Bardziej szczegółowe zasady zaliczenia ćwiczeń mogą znajdować się w informacjach dla zajęć w konkretnym cyklu i będą podane przez prowadzących laboratoria.
Praktyki zawodowe
Literatura
Literatura podstawowa:
- N. Wirth, Algorytmy + struktury danych = programy, WNT, Warszawa,
- M. Sysło, Algorytmy, WSiP, Warszawa,
- J. Grębosz, Opus magnum C++11. Programowanie w języku C++, Gliwice, Helion 2018,
- Portal "Studia Informatyczne" - http://wazniak.mimuw.edu.pl/.
Literatura uzupełniająca:
- D. Harel, Rzecz o istocie informatyki: Algorytmika, WNT, Warszawa.
- L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, Warszawa.
- T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Wprowadzenie do algorytmów, WNT, Warszawa.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i
terminach zajęć) mogą być dostępne w serwisie USOSweb: