Wydział Elektryczny - Teleinformatyka (S1)
Sylabus przedmiotu Struktury danych i techniki programowania:
Informacje podstawowe
Kierunek studiów | Teleinformatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | charakterystyki PRK, kompetencje inżynierskie PRK | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Struktury danych i techniki programowania | ||
Specjalność | przedmiot wspólny | ||
Jednostka prowadząca | Katedra Elektrotechniki Teoretycznej i Informatyki Stosowanej | ||
Nauczyciel odpowiedzialny | Barbara Grochowalska <Barbara.Szymanik@zut.edu.pl> | ||
Inni nauczyciele | |||
ECTS (planowane) | 5,0 | ECTS (formy) | 5,0 |
Forma zaliczenia | egzamin | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Ukończony moduł Matematyka |
W-2 | Ukończony moduł Podstawy algorytmizacji i programowania. |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z podstawami programowania w języku C++ ze szczególnym uwzględnieniem programowania obiektowego. |
C-2 | Zapoznanie studentów z podstawowymi strukturami danych w języku C++. |
C-3 | Ukształtowanie umiejętności związanych z programowaniem w języku C++ w paradygmacie obiektowym. |
C-4 | Ukształtowanie umiejętności z zakresu implementacji algorytmów wykorzystujących dynamiczne struktury danych. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Wstęp do programowania w języku C++. Podstawowa składnia, instrukcje warunkowe, pętle, tablice statyczne. | 2 |
T-L-2 | Wskaźniki, dynamiczna alokacja pamięci. Funkcje, przekazywanie parametru do funkcji przez wskaźnik i referencję. | 2 |
T-L-3 | Programowanie obiektowe. Budowanie własnych klas i obiektów. | 2 |
T-L-4 | Programowanie obiektowe. Funkcje zaprzyjaźnione z klasami, przeciążanie operatorów. | 2 |
T-L-5 | Programowanie obiektowe. Dziedziczenie, funkcje wirtualne, polimorfizm. | 2 |
T-L-6 | Kolokwium I | 2 |
T-L-7 | Szablony klas. Implementacja własnych szablonów. | 2 |
T-L-8 | Kontener vector. Implementacja własna i ćwiczenia z kontenerem z STL. | 2 |
T-L-9 | Listy. Implementacja na tablicy statycznej. Ćwiczenia z kontenerem list z STL. | 2 |
T-L-10 | Stos. Rekurencja. | 2 |
T-L-11 | Kolejka FIFO. Implementacja własna na tablicy cyklicznej, ćwiczenia z wykorzystaniem kontenera deque i adaptera queue z STL. | 2 |
T-L-12 | Drzewa binarne. Implementacja wybranego algorytmu przechodzenia po drzewie. | 2 |
T-L-13 | Kontenery map, multimap, set, multiset z STL | 2 |
T-L-14 | Implementacja algorytmów sortowania. | 2 |
T-L-15 | Kolokwium II | 2 |
30 | ||
wykłady | ||
T-W-1 | Elementy języka C++. Pierwszy program. Zapoznanie ze środowiskiem Visual Studio. | 2 |
T-W-2 | Programowanie obiektowe. Klasy - pola, metody, konstruktor, destruktor. Obiekty, wskaźniki na obiekty. | 2 |
T-W-3 | Programowanie obiektowe. Dziedziczenie, metody wirtualne, klasy abstrakcyjne. Polimorfizm. | 2 |
T-W-4 | Deklaracje przyjaźni. Przyjaźń funkcji z klasą, metody z klasą i klasy z klasą. Operatory - klasyfikacja. Przeciążanie operatorów. | 2 |
T-W-5 | Szablony funkcji i szablony klas. Specyfikacja szablonu. | 2 |
T-W-6 | Złożoność obliczeniowa i czasowa algorytmu. Obliczanie złożoności czasowej i klasy złożoności. | 2 |
T-W-7 | Wprowadzenie do STL. Kontenery, iteratory i algorytmy. Listy jednokierunkowe i dwukierunkowe. Implementacja, przykłady. | 2 |
T-W-8 | Stos. Implementacja i przykłady. Stos procesora. Dynamiczna alokacja danych na stercie. Wskaźniki intelignetne. | 2 |
T-W-9 | Rekurencja. Rekurencyjne algorytmy sortowania - mergesort i quicksort. | 2 |
T-W-10 | Kolejki FIFO. | 2 |
T-W-11 | Drzewa. Drzewa binarne. Algorytmy przechodzenia drzewa. Kontenery asocjacyjne - map, multimap, set, multiset. | 2 |
T-W-12 | Przeszukiwanie struktur danych. Wyszukiwanie w drzewie BST. Funktory. Kolejka priorytetowa w STL. Implementacja kolejki priorytetowej na kopcu. | 2 |
T-W-13 | Sortowanie przez kopcowanie. Porównanie wydajności różnych algorytmów sortowania. Równoważenie drzew. | 2 |
T-W-14 | Drzewa gier. Przykład gry - kółko i krzyżyk. Algorytm min-max. | 4 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w zajęciach | 30 |
A-L-2 | Przygotowanie do zajęć (utrwalenie wiadomości, przypomnienie treści wykładu) | 10 |
A-L-3 | Przygotowanie do zaliczenia. | 10 |
A-L-4 | Praca własna - realizacja własnych zadań programistycznych. Praca z materiałami źródłowymi. | 15 |
65 | ||
wykłady | ||
A-W-1 | Uczestnictwo w zajęciach | 30 |
A-W-2 | Przygotowanie do zajęć | 10 |
A-W-3 | Praca własna z materiałami źródłowymi | 10 |
A-W-4 | Przygotowanie do egzaminu. | 8 |
A-W-5 | Egzamin | 2 |
60 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny. |
M-2 | Wykład problemowy. |
M-3 | Prezentacja multimedialna. |
M-4 | Ćwiczenia laboratoryjne z wykorzystaniem stanowisk komputerowych. |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Zaliczenie laboratorium. Sprawdzian praktyczny. |
S-2 | Ocena podsumowująca: Wykład: egzamin pisemny (test) oraz ustny z całości materiału. |
S-3 | Ocena podsumowująca: Zaliczenie końcowe laboratorium. |
Zamierzone efekty uczenia się - wiedza
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
TI_1A_C07_W01 Student ma wiedzą w zakresie programowania w języku C++ w paradygmacie proceduralnym i obiektowym. | TI_1A_W08 | — | — | C-1 | T-W-1, T-W-6, T-W-2, T-W-3, T-W-4, T-W-5 | M-1, M-2, M-3 | S-2 |
TI_1A_C07_W02 Student ma wiedzę odnośnie podstawowych struktur danych w języku C++. | TI_1A_W09 | — | — | C-2 | T-W-14, T-W-8, T-W-7, T-W-9, T-W-13, T-W-11, T-W-10, T-W-12 | M-1, M-2, M-3 | S-2 |
Zamierzone efekty uczenia się - umiejętności
Zamierzone efekty uczenia się | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
TI_1A_C07_U01 Student potrafi napisać program w paradygmacie proceduralnym oraz obiektowym w języku C++. | TI_1A_U05 | — | — | C-3 | T-L-1, T-L-2, T-L-6, T-L-3, T-L-5, T-L-4 | M-4 | S-1 |
TI_1A_C07_U02 Student potrafi zaimplementować wybrane struktury danych. Student potrafi również wykorzystać znane struktury danych, również te zawarte w STL, w bardziej zaawansowanych programach. | TI_1A_U07 | — | — | C-4 | T-L-8, T-L-9, T-L-10, T-L-15, T-L-14, T-L-13, T-L-11, T-L-12, T-L-7 | M-4 | S-3 |
Kryterium oceny - wiedza
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
TI_1A_C07_W01 Student ma wiedzą w zakresie programowania w języku C++ w paradygmacie proceduralnym i obiektowym. | 2,0 | Student uzyskał punktację w zakresie poniżej 50% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. |
3,0 | Student uzyskał punktację w zakresie 50-60% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
3,5 | Student uzyskał punktację w zakresie 61-70% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
4,0 | Student uzyskał punktację w zakresie 71-80% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
4,5 | Student uzyskał punktację w zakresie 81-90% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
5,0 | Student uzyskał punktację w zakresie 91-100% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego | |
TI_1A_C07_W02 Student ma wiedzę odnośnie podstawowych struktur danych w języku C++. | 2,0 | Student uzyskał punktację w zakresie poniżej 50% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. |
3,0 | Student uzyskał punktację w zakresie 50-60% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
3,5 | Student uzyskał punktację w zakresie 61-70% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
4,0 | Student uzyskał punktację w zakresie 71-80% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
4,5 | Student uzyskał punktację w zakresie 81-90% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. | |
5,0 | Student uzyskał punktację w zakresie 91-100% z pytań egzaminacyjnych z tematyki dotyczącej ocenianego efektu przedmiotowego. |
Kryterium oceny - umiejętności
Efekt uczenia się | Ocena | Kryterium oceny |
---|---|---|
TI_1A_C07_U01 Student potrafi napisać program w paradygmacie proceduralnym oraz obiektowym w języku C++. | 2,0 | Student uzyskał punktację w zakresie poniżej 50% z pytań zadawanych podczas zaliczenia pierwszej części laboratorium. |
3,0 | Student uzyskał punktację w zakresie 50-60% z pytań zadawanych podczas zaliczenia pierwszej części laboratorium. | |
3,5 | Student uzyskał punktację w zakresie 61-70% z pytań zadawanych podczas zaliczenia pierwszej części laboratorium. | |
4,0 | Student uzyskał punktację w zakresie 71-80% z pytań zadawanych podczas zaliczenia pierwszej części laboratorium. | |
4,5 | Student uzyskał punktację w zakresie 81-90% z pytań zadawanych podczas zaliczenia pierwszej części laboratorium. | |
5,0 | Student uzyskał punktację w zakresie 91-100% z pytań zadawanych podczas zaliczenia pierwszej części laboratorium. | |
TI_1A_C07_U02 Student potrafi zaimplementować wybrane struktury danych. Student potrafi również wykorzystać znane struktury danych, również te zawarte w STL, w bardziej zaawansowanych programach. | 2,0 | Student uzyskał punktację w zakresie poniżej 50% z pytań zadawanych podczas zaliczenia drugiej części laboratorium. |
3,0 | Student uzyskał punktację w zakresie 50-60% z pytań zadawanych podczas zaliczenia drugiej części laboratorium.. | |
3,5 | Student uzyskał punktację w zakresie 61-70% z pytań zadawanych podczas zaliczenia drugiej części laboratorium. | |
4,0 | Student uzyskał punktację w zakresie 71-80% z pytań zadawanych podczas zaliczenia drugiej części laboratorium. | |
4,5 | Student uzyskał punktację w zakresie 81-90% z pytań zadawanych podczas zaliczenia drugiej części laboratorium. | |
5,0 | Student uzyskał punktację w zakresie 91-100% z pytań zadawanych podczas zaliczenia drugiej części laboratorium. |
Literatura podstawowa
- Piotr Wróblewski, Algorytmy struktury danych i techniki programowania, Helion, Gliwice, 2001, 2
- L.Banachowski, K.Diks, W.Rytter, Algorytmy i struktury danych, WNT-Wydawnictwa Naukowo-Techniczne Sp.z o.o., 2006
Literatura dodatkowa
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Wprowadzenie do algorytmów, Wydawnictwa Naukowo - Techniczne, 2004