Wydział Informatyki - Zarządzanie i inżynieria produkcji (S1)
Sylabus przedmiotu Podstawy informatyki i algorytmizacji II:
Informacje podstawowe
Kierunek studiów | Zarządzanie i inżynieria produkcji | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | nauk technicznych, studiów inżynierskich | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Podstawy informatyki i algorytmizacji II | ||
Specjalność | przedmiot wspólny | ||
Jednostka prowadząca | Katedra Inżynierii Oprogramowania | ||
Nauczyciel odpowiedzialny | Valery Rogoza <wrogoza@zut.edu.pl> | ||
Inni nauczyciele | Dariusz Frejlichowski <dfrejlichowski@wi.zut.edu.pl>, Wojciech Maleika <Wojciech.Maleika@zut.edu.pl>, Edward Półrolniczak <Edward.polrolniczak@zut.edu.pl>, Valery Rogoza <wrogoza@zut.edu.pl> | ||
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 | Zapoznanie studentów z tematyką pierwszej części danego przedmiotu |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z zasadami budowy algorytmów i napisaniem kodów w językach programowania wysokiego poziomu (na przykładzie języka C), z teorią budowy algorytmów iteracyjnych i rekurencyjnych, metodami oceny jakości algorytmów, sposobami lakonicznego przedstawiena projektu programu z wykorzystaniem pseudokodu, schematów blokowych i opisów słownych, a także zapoznanie studentów z koncepcjami paradygmatów programowania, w tym paradygmatu programowania obiektowego. |
C-2 | Ogólne wymaganie wstępne: wiedza pierwszej części danego przedmiotu. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Wprowadzenie do zajęć laboratoryjnych. Instrukcja laboratoryjna. Sformułowanie celów zajęć, ich planu, treści oraz oczekiwań względem studentów. Określenie zasad zaliczenia. Wstęp do języka C. Główne składniki programy w języku C. | 2 |
T-L-2 | Typy danych w języku C. Zmienne i stałe, słowa kluczowe, identyfikatory, Tworzenie prostych kodów. | 2 |
T-L-3 | Łańsuchy znakowe i formatowane wejście-wyjście. Funkcje printf() i scanf(). Stałe i preprocesor | 2 |
T-L-4 | Operatory, wyrażenia i instrukcje. Podstawowe operatory, wyrażenia i instrukcje, konwersja typów, funkcje z argumentami. | 2 |
T-L-5 | Instrukcje sterujące C, pętle. Instrukcja while. Korzystanie z operatorów i wyrażeń relacyjnych. Pętla for. Skrócone operatory przypisania. Pętla do-while. Pętle zagnieżdżone. Tablice jedno- i wielowymiaroewe. | 2 |
T-L-6 | Instrukcje sterujące. Pętla if-else. Operator warunkowy. Posługiwanie się słowami kluczowymi switch, break, continue oraz goto. | 2 |
T-L-7 | Znakowe wejście-wyjście. Funkcje getchar() i putchar() | 2 |
T-L-8 | Funkcje. Prototypy ANSI C. Używanie adresów, modyfikacja zmiennych w funkcji wywołującej. Posługiwanie się wskaźnikami | 2 |
T-L-9 | Tablice i wskażniki. Wskażniki do tablic. Funkcje, tablice, wskażniki. Działania na wskażnikach. Posługiwanie się wskażnikami podczas wykorzystania tavlic | 2 |
T-L-10 | Łańcuchy znakowe i funkcje znakowe. Tabklice znakowe, tablice łańcuchów i inicjalizacja łańcuchów. Wyświetlaniw łańcuchów. Funkcje łańcuchowe | 2 |
T-L-11 | Obsługa plików. Wymiana informacji z plikami. Standardowe wejście-wyjście. Plikowe wejsie-wyjscie | 2 |
T-L-12 | Struktuty i inne formy danych. Deklaracja struktury, dostęp do składników struktury. Struktury a funkcje. Unie. Posługiwanie się słowem typedef. Posługiwanie się funkcjami a wskaźnikami | 2 |
T-L-13 | Operacje bitowe. Liczby binarne, bity a bajty. Inne systemy liczbowe. Operatory a pola bitowe | 2 |
T-L-14 | Preprocesor i biblioteka C. Stałe symboliczne: #define. Posługiwanie się makrami. Dołączenie plików: #include. Typy wyliczeniowe. Podstawy posługiwania się biblioteką C | 2 |
T-L-15 | Kolokwium końcowe | 2 |
30 | ||
wykłady | ||
T-W-1 | Podstawowe pojęcia teorii algorytmów i metody opisu algorytmów Wprowadzenie do przedmiotu Podstawowe pojęcia i definicje teorii algorytmów Elementy opisu algorytmów Algorytmy i języki programowania Wprowadzenie do teorii systemów operacyjnychi | 2 |
T-W-2 | Podstawowe struktury danych Struktury liniowe (listy, stos, kolejki) Przykłady zastosowania struktur liniowych (turniej, sito Eratostenesa, obliczanie wartości wyrażeń) Inne struktury danych | 2 |
T-W-3 | Algorytmy iteracyjne Niezmiennik pętli Poprawność algorytmu Projektowanie algorytmu iteracyjnego (przykład sortowania przez wstawianie, przykład poszukiwania binarnego) | 2 |
T-W-4 | Analiza sprawności algorytmów Złożonośc praktyczna algorytmu Złożoność teoretyczna algorytmu Uwagi na temat złożoności Analiza sprawności algorytmów rekurencyjnych | 2 |
T-W-5 | Algorytmy rekurencyjne Algorytm MULT Usprawnienie algorytmu MULT Reprezentacja algorytmów rekurencyjnych Zaawansowane przykłady rekurencji | 2 |
T-W-6 | Algorytmy sortujące Sortowanie bąbelkowe Sortowanie przy użyciu kolejek priorytetowych Sortowanie metodą "dziel i zwyciężaj" Sortowanie w czasie liniowym | 2 |
T-W-7 | Paradygmat programowania obiektowego (na przykładzie języka C# i platformy Microsoft.NET Framework) Platforma projektowania Microsoft.NET Framework i zasady programowania obiektowego Klasy i obiekty języka C# Kapsułkowanie Polimorfizm Dziedziczenie Przykłady prostych kodów w języku C# | 3 |
15 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w zajęciach laboratoryjnych | 30 |
A-L-2 | Samodzielne przygotowanie studenta do realizacji zajęć ćwiczeniowych, laboratoryjnych przy komputerze, a także zaliczeń w postaci realizacji sprawozdań na zajęciach oraz kolokwium | 60 |
A-L-3 | Udział w konsultacjach do laboratoriów | 2 |
92 | ||
wykłady | ||
A-W-1 | Udział w wykładach | 15 |
A-W-2 | Konsultacje dotyczące materiałw prezentowanych na wykładach | 1 |
A-W-3 | Samodzielne przygotowanie do egzaminu końcowego | 29 |
A-W-4 | Udział w egzaminie | 2 |
47 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny, zajęcia laboratoryjne |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena podsumowująca: Egzamin testowy |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
ZIP_1A_C/3-2_W01 W wyniku przeprowadzonych zajęć student powinien mieć wiedzę podstaw teorii algorytmów (zasad tworzenia i opisu algorytmów w sposób lakoniczny z wykorzystaniem pseudokodu i diagramów strukturalnych), a także mieć wiedzę podstawowych metod teorii algorytmów określonych w tematach wykłądów i zajęć laboratoryjnych (np. sortowania danych, tworzenia procesów rekurencyjnych i iteracyjnych do realizacji programów, posługiwania się instrukcjami i operatorami języka programowania C oraz najważniejszych klasycznych algorytmów, jak np. algorytm Euklidesa, i innych). | ZIP_1A_W16, ZIP_1A_W15 | T1A_W04, T1A_W05 | — | C-1 | T-W-1 | M-1 | S-1 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
ZIP_1A_C/3-2_U01 W wyniku przeprowadzonych zajęć student powinien umieć obiaśniać zasady budowy istniejących algorytmów i tworzyć nowe algorytmy na podstawie słownego opisu istoty problemu ulegającemu rozwiązaniu, umieć sformulować zadanie w postaci lakonicznej i przydatnej do realizacji kodu programowego w języku C, napisać kod w języku C i umieć testować tworzony program. | ZIP_1A_U07, ZIP_1A_U05 | T1A_U09, T1A_U12 | InzA_U02, InzA_U04 | C-2, C-1 | — | M-1 | S-1 |
Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
ZIP_1A_C/3-2_K01 Student powinien mieć kompetencję w analizię gotowych rozwiązań konkretnych problemów, wyjawjać kreatywność podczas rozwiązania sfiormulowanych problemów i nieść odpowiedzialność za podejmowane decyzje. | ZIP_1A_K03, ZIP_1A_K01 | T1A_K01, T1A_K03, T1A_K04, T1A_K05 | — | C-1, C-2 | — | M-1 | S-1 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
ZIP_1A_C/3-2_W01 W wyniku przeprowadzonych zajęć student powinien mieć wiedzę podstaw teorii algorytmów (zasad tworzenia i opisu algorytmów w sposób lakoniczny z wykorzystaniem pseudokodu i diagramów strukturalnych), a także mieć wiedzę podstawowych metod teorii algorytmów określonych w tematach wykłądów i zajęć laboratoryjnych (np. sortowania danych, tworzenia procesów rekurencyjnych i iteracyjnych do realizacji programów, posługiwania się instrukcjami i operatorami języka programowania C oraz najważniejszych klasycznych algorytmów, jak np. algorytm Euklidesa, i innych). | 2,0 | Student bardzo słabo orientuje się w teorii z danego przedmiotu, nie w stanie przedstawić objaśnienie proponowanych przez wykładowcę gotowego algorytmu (z tych, które były analizowane na wykładach i zajęciach laboratyoryjnych), i nie w stanie odjaśnić, w jaki sposób działa kod w języku C, proponowany przez wykładowcą do analizy. |
3,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, ale nie w stanie napisać algorytm i kod programowy do rozwiązania proponowanego przez wykładowca problemu. | |
3,5 | Student wyjawia umiejętności do rozwiązania niektórych problemów na podstawie istniejących metod i algorytmów, ale nie w stanie napisać swój własny algorytm i kod programowy. | |
4,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, ale nie może stworzyć algorytm rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem. | |
4,5 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, może stworzyć algorytm do rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem, ale nie w stanie ocenić, o ile efektywna metoda została wybrana do rozwiązania posrawionego problemu (czyli ocenić jej efektywność w porównaniu z innymi istniejącymi metodami). | |
5,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, może stworzyć algorytm do rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem, i w stanie ocenić, o ile efektywna metoda została wybrana do rozwiązania posrawionego problemu (czyli ocenić jej efektywność w porównaniu z innymi istniejącymi metodami). |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
ZIP_1A_C/3-2_U01 W wyniku przeprowadzonych zajęć student powinien umieć obiaśniać zasady budowy istniejących algorytmów i tworzyć nowe algorytmy na podstawie słownego opisu istoty problemu ulegającemu rozwiązaniu, umieć sformulować zadanie w postaci lakonicznej i przydatnej do realizacji kodu programowego w języku C, napisać kod w języku C i umieć testować tworzony program. | 2,0 | Student bardzo słabo orientuje się w teorii z danego przedmiotu, nie w stanie przedstawić objaśnienie proponowanych przez wykładowcę gotowego algorytmu (z tych, które były analizowane na wykładach i zajęciach laboratyoryjnych), i nie w stanie odjaśnić, w jaki sposób działa kod w języku C, proponowany przez wykładowcą do analizy. |
3,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, ale nie w stanie napisać algorytm i kod programowy do rozwiązania proponowanego przez wykładowca problemu. | |
3,5 | Student wyjawia umiejętności do rozwiązania niektórych problemów na podstawie istniejących metod i algorytmów, ale nie w stanie napisać swój własny algorytm i kod programowy. | |
4,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, ale nie może stworzyć algorytm rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem. | |
4,5 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, może stworzyć algorytm do rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem, ale nie w stanie ocenić, o ile efektywna metoda została wybrana do rozwiązania posrawionego problemu (czyli ocenić jej efektywność w porównaniu z innymi istniejącymi metodami). | |
5,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, może stworzyć algorytm do rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem, i w stanie ocenić, o ile efektywna metoda została wybrana do rozwiązania posrawionego problemu (czyli ocenić jej efektywność w porównaniu z innymi istniejącymi metodami). |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
ZIP_1A_C/3-2_K01 Student powinien mieć kompetencję w analizię gotowych rozwiązań konkretnych problemów, wyjawjać kreatywność podczas rozwiązania sfiormulowanych problemów i nieść odpowiedzialność za podejmowane decyzje. | 2,0 | Student bardzo słabo orientuje się w teorii z danego przedmiotu, nie w stanie przedstawić objaśnienie proponowanych przez wykładowcę gotowego algorytmu (z tych, które były analizowane na wykładach i zajęciach laboratyoryjnych), i nie w stanie odjaśnić, w jaki sposób działa kod w języku C, proponowany przez wykładowcą do analizy. |
3,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, ale nie w stanie napisać algorytm i kod programowy do rozwiązania proponowanego przez wykładowca problemu. | |
3,5 | Student wyjawia umiejętności do rozwiązania niektórych problemów na podstawie istniejących metod i algorytmów, ale nie w stanie napisać swój własny algorytm i kod programowy. | |
4,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, ale nie może stworzyć algorytm rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem. | |
4,5 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, może stworzyć algorytm do rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem, ale nie w stanie ocenić, o ile efektywna metoda została wybrana do rozwiązania posrawionego problemu (czyli ocenić jej efektywność w porównaniu z innymi istniejącymi metodami). | |
5,0 | Student może objaśnić teoretyczne zasady ze wszystkich rozdziałów przedmiotu dyskutowanych na wykładach i zajęciach laboratoryjnych, w stanie obiaśnić, w jaki sposób działa proponowany algorytm, może zaproponować skuteczny algorytm wybierając go wśród istniejących algorytmów, może zmodyfikować (w razie potrzeby) i uruchomić gotowy program w C, może stworzyć algorytm do rozwiązania postawionego problemu zawierający pełny cykł od formulowania problemu do realizacji metody rozwiązującej dany problem, i w stanie ocenić, o ile efektywna metoda została wybrana do rozwiązania posrawionego problemu (czyli ocenić jej efektywność w porównaniu z innymi istniejącymi metodami). |
Literatura podstawowa
- Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, Algorytmy i struktury danych, Wydawnictwo Helion, Gliwice, 2005
- Kyle Loudon, Algorytmy w C, Wydawnictwo Helion, Gliwice, 2007
- Harel D., Rzecz o istocie informatyki - algorytmika, Wydawnictwa Naukowo Techniczne, 2008
- T.H.Cormen, Ch.E.Leiserson, R.L.Rivest, C.Stein, Wprowadzenie do algorytmów, Naukowo-Techniczne, Warszawa, 2005
- David Harel, Rzecz o istocie informatyki, Naukowo-Techniczne, Warszawa, 2006
Literatura dodatkowa
- Richard Neapolitan, Kumarss Naimipour, Podstawy algorytmów z przykładami w C++, Helion, Gliwice, 2005
- Adam Drozdek, C++. Algorytmy i struktury danych, Helion, Gliwice, 2008
- Stephen Prata, Szkoła programowania. Język C, Robomatic, Wrocław, 1999