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