Nazwa przedmiotu:
Zasady programowania strukturalnego I
Koordynator przedmiotu:
dr inż. Maciej Przybylski
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Mechatronika
Grupa przedmiotów:
Obowiązkowe
Kod przedmiotu:
ZAP
Semestr nominalny:
1 / rok ak. 2019/2020
Liczba punktów ECTS:
5
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
1) Liczba godzin bezpośrednich : 52, w tym: • wykład 15 godz. • zajęcia laboratoryjne 30 godz. • egzamin -2 godz. • konsultacje – 5 godz. 2). Praca własna: 85 godz., w tym: • studia literaturowe 20 godz., • przygotowanie do zajęć laboratoryjnych 15 godz., • rozwiązywanie zadań domowych 30 godz., • przygotowanie do sprawdzianów 10 godz., • przygotowanie do egzaminu - 10 godz. Razem – 137 godz.
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
2 punkty ECTS - liczba godzin bezpośrednich : 52, w tym: • wykład 15 godz. • zajęcia laboratoryjne 30 godz. • egzamin- 2 godz. • konsultacje – 5 godz.
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
3,5 punktu ECTS = 85 godz., w tym: zajęcia laboratoryjne 30 godz., przygotowanie do zajęć laboratoryjnych 15 godz., rozwiązywanie zadań domowych 30 godz., przygotowanie do sprawdzianów 10 godz..
Formy zajęć i ich wymiar w semestrze:
  • Wykład45h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt0h
  • Lekcje komputerowe0h
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. ===LABORATORIUM=== Pierwsze programy w wersji konsolowej. Środowisko kompilatora (Qt Creator): 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. SPRAWDZIAN NR 1 - opracowanie w rękopisie dwóch prostych programów (if-y, pętle, tablice, rekordy) - 45 min, opracowanie i uruchomienie trzeciego programu z tego zakresu na komputerze - 45 min. SPRAWDZIAN NR 2 - opracowanie w rękopisie dwóch programów z użyciem funkcji i list jednokierunkowych - 45 min, opracowanie i uruchomienie trzeciego programu z tego zakresu na komputerze - 45 min.
Metody oceny:
Wykład - egzamin złożony z części zadaniowej (18 pkt - 5 zadań wymagających napisania funkcji lub całych programów) oraz części testowej (8 pkt) z zakresu algorytmów i struktur danych. Laboratorium - dwa sprawdziany (24 pkt) polegające na samodzielnym napisaniu i uruchomieniu programów w trakcie zajęć.
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:
http://iair.mchtr.pw.edu.pl/studenci/witryna/index.php (wydziałowy system SKS, wymaga logowania)
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_U01, K_U05, K_U22
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_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_U02, K_U22
Powiązane charakterystyki obszarowe: P6U_U, I.P6S_UW.o, I.P6S_UK, I.P7S_UW.o, 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_U22
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