- Nazwa przedmiotu:
- Zasady programowania strukturalnego I
- Koordynator przedmiotu:
- dr inż. Maciej Przybylski
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Automatyka Robotyka i Informatyka Przemysłowa
- Grupa przedmiotów:
- Obowiązkowe
- Kod przedmiotu:
- ZAP
- Semestr nominalny:
- 1 / rok ak. 2020/2021
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 1) Liczba godzin bezpośrednich : 51, w tym:
• wykład 15 godz.
• zajęcia komputerowe 30 godz.
• egzamin – 1 godz.
• konsultacje – 5 godz.
2). Praca własna: 85 godz., w tym:
• studia literaturowe 20 godz.,
• przygotowanie do zajęć komputerowych 15 godz.,
• rozwiązywanie zadań domowych 30 godz.,
• przygotowanie do sprawdzianów 10 godz.,
• przygotowanie do egzaminu 10 godz.
Razem – 136 godz.
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 2 punkty ECTS - liczba godzin bezpośrednich : 51, w tym:
• wykład 15 godz.
• zajęcia komputerowe 30 godz.
• egzamin – 1 godz.
• konsultacje – 5 godz.
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 3 punkty ECTS = 85 godz., w tym: zajęcia komputerowe 30 godz., przygotowanie do zajęć komputerowych 15 godz., rozwiązywanie zadań domowych 30 godz., przygotowanie do sprawdzianów 10 godz..
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład15h
- Ćwiczenia0h
- Laboratorium0h
- Projekt0h
- Lekcje komputerowe30h
- Wymagania wstępne:
- Z wyjątkiem matematyki w zakresie szkoły średniej, przedmiot nie wymaga od studentów wiadomości z innych przedmiotów.
- Limit liczby studentów:
- 15 osób w grupie laboratoryjnej
- Cel przedmiotu:
- Uzyskana wiedza pozwala studentom na konstruowanie algorytmów i tworzenie programów komputerowych. Implementacja algorytmów w trakcie ćwiczeń i realizacja indywidualnych projektów pozwoli na nabycie praktycznych umiejętności.
- Treści kształcenia:
- ===WYKŁAD===
CZĘŚĆ 1. Podstawowe pojęcia: algorytm i program. Proste instrukcje i wyrażenia, instrukcje warunkowe. Pętle while, do-while i pętla for. Tablice jednowymiarowe i algorytmy ich sortowania. Tablice dwuwymiarowe. Uzupełnienia: zapis wyrażeń, formaty wydruku. Struktury i rekordy. Definiowanie plików tekstowych, operacje wejścia - wyjścia.
CZĘŚĆ 2. Funkcje - definicja, wywołanie, wiązanie parametrów. Zasięg zmiennych. Rekurencja - zasada działania, przykłady algorytmów. Zmienne dynamiczne i wskaźniki. Tablice dynamiczne jedno- i dwuwymiarowe. Listy dynamiczne jednokierunkowe: tworzenie, wstawianie i usuwanie elementów.
CZĘŚĆ 3. Drzewa binarne i drzewa BST. Drzewa zrównoważone (AVL i czerwono-czarne), kopce, B-drzewa, złożoność obliczeniowa. Grafy i algorytmy grafowe: Floyda, Dijkstry i Kruskala. Przegląd rodzajów i zasad konstruowania algorytmów. Modułowa budowa programów. Podstawowe pojęcia programowania obiektowego jako wprowadzenie do aplikacji okienkowych. Przykłady zadań egzaminacyjnych.
===ZAJĘCIA KOMPUTEROWE===
Pierwsze programy w wersji konsolowej. Środowisko programistyczne: edycja, kompilacja i wykonanie programu. Pętle i zaawansowane rozgałęzienia. Tablice - operacje na wektorach i tablicach dwuwymiarowych. Struktury, rekordy i tablice rekordów. Pliki tekstowe, operacje wejścia - wyjścia. Funkcje - deklaracja i wywołanie, parametry formalne i aktualne. Wskaźniki i tablice dynamiczne. Listy jednokierunkowe i podstawowe operacje na nich. Funkcje rekurencyjne.
- Metody oceny:
- ===WYKŁAD===
Test (15 min) z zakresu algorytmów i struktur danych [20pkt.] + Egzamin ustny (minimum 10 min) z całości materiału [zal/nzal].
===ZAJĘCIA KOMPUTEROWE===
5 sprawdzianów (30 pkt. = 4 + 4 + 6 + 8 + 8) polegające na samodzielnym napisaniu i uruchomieniu programów w trakcie zajęć. Z każdego sprawdzianu należy uzyskać co najmniej połowę punktów. Przewidziane są punkty za aktywność (2pkt.).
===OCENA KOŃCOWA===
Ocena końcowa wystawiana jest na podstawie sumy punktów z całego przedmiotu pod warunkiem uzyskania zaliczenia na egzaminie ustnym.
- Egzamin:
- tak
- Literatura:
- 1 Paweł Wnuk, Barbara Putz: Programowanie. Wersja w języku C/C++. OKNO PW, Warszawa 2005, dostępny online w wydziałowym systemie SKS.
2 Barbara Putz, Andrzej Putz jr, Paweł Wnuk: Algorytmy i Struktury Danych. OKNO PW, Warszawa 2008, dostępny online w wydziałowym systemie SKS.
3 Stephen Prata: Język C++. Szkoła programowania. Wydanie V. Helion 2006.
4.Jerzy Grębosz: Symfonia C++ standard. Tom I. Edition 2000 Kraków, 2005-2008
5 Niklaus Wirth: Algorytmy+struktury danych=programy. WNT 2002.
6 Piotr Wróblewski: Algorytmy, struktury danych i techniki programowania. Wyd. IV, Helion 2010.
7 Thomas H. Cormen et al.: Wprowadzenie do algorytmów. WNT 2007, PWN 2012 (nowe wydanie).
- Witryna www przedmiotu:
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka ZAP1_W01
- ma uporządkowaną wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu konstrukcji języka strukturalnego i programowania strukturalnego w języku C/C++
Weryfikacja: sprawdzian 1, sprawdzian 2, egzamin
Powiązane charakterystyki kierunkowe:
K_W04, K_W05
Powiązane charakterystyki obszarowe:
P6U_W, I.P6S_WG.o
- Charakterystyka ZAP1_W02
- ma uporządkowaną wiedzę ogólną obejmującą zagadnienia konstruowania algorytmów dla prostych zadań przetwarzania danych
Weryfikacja: sprawdzian 1, sprawdzian 2, egzamin
Powiązane charakterystyki kierunkowe:
K_W04, K_W05
Powiązane charakterystyki obszarowe:
P6U_W, I.P6S_WG.o
- Charakterystyka ZAP1_W03
- ma uporządkowaną wiedzę ogólną z zakresu klasyfikacji algorytmów i doboru struktur danych
Weryfikacja: egzamin
Powiązane charakterystyki kierunkowe:
K_W04, K_W05
Powiązane charakterystyki obszarowe:
P6U_W, I.P6S_WG.o
Profil ogólnoakademicki - umiejętności
- Charakterystyka ZAP1_U01
- ma praktyczną umiejętność opracowania algorytmu i wynikającego stąd programu strukturalnego w języku C/C++ (z wykorzystaniem struktur dynamicznych włącznie) dla prostego zadania programistycznego
Weryfikacja: sprawdzian 1, sprawdzian 2, egzamin
Powiązane charakterystyki kierunkowe:
K_U09, K_U01, K_U05
Powiązane charakterystyki obszarowe:
I.P6S_UW.o, III.P6S_UW.o, P6U_U, I.P6S_UK, I.P6S_UO, I.P6S_UU
- Charakterystyka ZAP1_U02
- ma praktyczną umiejętność napisania i uruchomienia w trakcie 45 min. zajęć programu w środowisku C/C++ na podstawie otrzymanego zadania
Weryfikacja: sprawdzian 1, sprawdzian 2
Powiązane charakterystyki kierunkowe:
K_U01, K_U05, K_U09
Powiązane charakterystyki obszarowe:
P6U_U, I.P6S_UW.o, I.P6S_UK, I.P6S_UO, I.P6S_UU, III.P6S_UW.o
- Charakterystyka ZAP1_U03
- ma umiejętność posługiwania się kompilatorem i debuggerem
Weryfikacja: sprawdzian 1, sprawdzian 2
Powiązane charakterystyki kierunkowe:
K_U01, K_U05, K_U09
Powiązane charakterystyki obszarowe:
P6U_U, I.P6S_UW.o, I.P6S_UK, I.P6S_UO, I.P6S_UU, III.P6S_UW.o
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka ZAP1_K01
- ma nawyk ustawicznego kształcenia się i wyszukiwania nowych informacji, aby radzić sobie z rozwiązywaniem nowych, nietypowych zadań
Weryfikacja: sprawdzian 1, sprawdzian 2, egzamin
Powiązane charakterystyki kierunkowe:
K_K01
Powiązane charakterystyki obszarowe:
P6U_K, I.P6S_KK, I.P6S_KO