Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Zarządzanie i inżynieria produkcji (N1)

Sylabus przedmiotu Podstawy informatyki i algorytmizacji II:

Informacje podstawowe

Kierunek studiów Zarządzanie i inżynieria produkcji
Forma studiów studia niestacjonarne 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 Systemów Multimedialnych
Nauczyciel odpowiedzialny Valery Rogoza <wrogoza@zut.edu.pl>
Inni nauczyciele Dariusz Frejlichowski <dfrejlichowski@wi.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

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL2 10 3,40,38zaliczenie
wykładyW2 10 1,60,62egzamin

Wymagania wstępne

KODWymaganie wstępne
W-1Zapoznanie studentów z tematyką pierwszej części danego przedmiotu

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie 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-2Ogólne wymaganie wstępne: wiedza pierwszej części danego przedmiotu.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Typy danych w języku C. Zmienne i stałe, słowa kluczowe, identyfikatory, Tworzenie prostych kodów.1
T-L-2Łańsuchy znakowe i formatowane wejście-wyjście. Funkcje printf() i scanf(). Stałe i preprocesor1
T-L-3Operatory, wyrażenia i instrukcje. Podstawowe operatory, wyrażenia i instrukcje, konwersja typów, funkcje z argumentami.1
T-L-4Instrukcje 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.1
T-L-5Instrukcje sterujące. Pętla if-else. Operator warunkowy. Posługiwanie się słowami kluczowymi switch, break, continue oraz goto.1
T-L-6Znakowe wejście-wyjście. Funkcje getchar() i putchar()1
T-L-7Funkcje. Prototypy ANSI C. Używanie adresów, modyfikacja zmiennych w funkcji wywołującej. Posługiwanie się wskaźnikami1
T-L-8Tablice i wskażniki. Wskażniki do tablic. Funkcje, tablice, wskażniki. Działania na wskażnikach. Posługiwanie się wskażnikami podczas wykorzystania tavlic1
T-L-9Łańcuchy znakowe i funkcje znakowe. Tabklice znakowe, tablice łańcuchów i inicjalizacja łańcuchów. Wyświetlaniw łańcuchów. Funkcje łańcuchowe1
T-L-10Obsługa plików. Wymiana informacji z plikami. Standardowe wejście-wyjście. Plikowe wejsie-wyjscie1
10
wykłady
T-W-1Podstawowe 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 operacyjnychi1
T-W-2Podstawowe struktury danych Struktury liniowe (listy, stos, kolejki) Przykłady zastosowania struktur liniowych (turniej, sito Eratostenesa, obliczanie wartości wyrażeń) Inne struktury danych1
T-W-3Algorytmy iteracyjne Niezmiennik pętli Poprawność algorytmu Projektowanie algorytmu iteracyjnego (przykład sortowania przez wstawianie, przykład poszukiwania binarnego)1
T-W-4Analiza 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 rekurencyjnych2
T-W-5Algorytmy rekurencyjne Algorytm MULT Usprawnienie algorytmu MULT Reprezentacja algorytmów rekurencyjnych Zaawansowane przykłady rekurencji1
T-W-6Algorytmy sortujące Sortowanie bąbelkowe Sortowanie przy użyciu kolejek priorytetowych Sortowanie metodą "dziel i zwyciężaj" Sortowanie w czasie liniowym2
T-W-7Paradygmat 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#2
10

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach laboratoryjnych10
A-L-2Samodzielne przygotowanie studenta do realizacji zajęć ćwiczeniowych, laboratoryjnych przy komputerze, a także zaliczeń w postaci realizacji sprawozdań na zajęciach oraz kolokwium85
A-L-3Udział w konsultacjach do laboratoriów2
97
wykłady
A-W-1Udział w wykładach10
A-W-2Konsultacje dotyczące materiałw prezentowanych na wykładach2
A-W-3Samodzielne przygotowanie do egzaminu końcowego32
A-W-4Udział w egzaminie2
46

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny, zajęcia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena podsumowująca: Egzamin testowy

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
ZIP_1A_C/03-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).
C-1T-W-1M-1S-1

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
ZIP_1A_C/03-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.
C-1, C-2M-1S-1

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
ZIP_1A_C/03-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.
C-1, C-2M-1S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
ZIP_1A_C/03-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,0Student 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,0Student 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,5Student 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,0Student 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,5Student 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,0Student 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łceniaOcenaKryterium oceny
ZIP_1A_C/03-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,0Student 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,0Student 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,5Student 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,0Student 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,5Student 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,0Student 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łceniaOcenaKryterium oceny
ZIP_1A_C/03-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,0Student 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,0Student 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,5Student 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,0Student 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,5Student 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,0Student 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

  1. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, Algorytmy i struktury danych, Wydawnictwo Helion, Gliwice, 2005
  2. Kyle Loudon, Algorytmy w C, Wydawnictwo Helion, Gliwice, 2007
  3. Harel D., Rzecz o istocie informatyki - algorytmika, Wydawnictwa Naukowo Techniczne, 2008
  4. T.H.Cormen, Ch.E.Leiserson, R.L.Rivest, C.Stein, Wprowadzenie do algorytmów, Naukowo-Techniczne, Warszawa, 2005
  5. David Harel, Rzecz o istocie informatyki, Naukowo-Techniczne, Warszawa, 2006

Literatura dodatkowa

  1. Richard Neapolitan, Kumarss Naimipour, Podstawy algorytmów z przykładami w C++, Helion, Gliwice, 2005
  2. Adam Drozdek, C++. Algorytmy i struktury danych, Helion, Gliwice, 2008
  3. Stephen Prata, Szkoła programowania. Język C, Robomatic, Wrocław, 1999

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Typy danych w języku C. Zmienne i stałe, słowa kluczowe, identyfikatory, Tworzenie prostych kodów.1
T-L-2Łańsuchy znakowe i formatowane wejście-wyjście. Funkcje printf() i scanf(). Stałe i preprocesor1
T-L-3Operatory, wyrażenia i instrukcje. Podstawowe operatory, wyrażenia i instrukcje, konwersja typów, funkcje z argumentami.1
T-L-4Instrukcje 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.1
T-L-5Instrukcje sterujące. Pętla if-else. Operator warunkowy. Posługiwanie się słowami kluczowymi switch, break, continue oraz goto.1
T-L-6Znakowe wejście-wyjście. Funkcje getchar() i putchar()1
T-L-7Funkcje. Prototypy ANSI C. Używanie adresów, modyfikacja zmiennych w funkcji wywołującej. Posługiwanie się wskaźnikami1
T-L-8Tablice i wskażniki. Wskażniki do tablic. Funkcje, tablice, wskażniki. Działania na wskażnikach. Posługiwanie się wskażnikami podczas wykorzystania tavlic1
T-L-9Łańcuchy znakowe i funkcje znakowe. Tabklice znakowe, tablice łańcuchów i inicjalizacja łańcuchów. Wyświetlaniw łańcuchów. Funkcje łańcuchowe1
T-L-10Obsługa plików. Wymiana informacji z plikami. Standardowe wejście-wyjście. Plikowe wejsie-wyjscie1
10

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Podstawowe 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 operacyjnychi1
T-W-2Podstawowe struktury danych Struktury liniowe (listy, stos, kolejki) Przykłady zastosowania struktur liniowych (turniej, sito Eratostenesa, obliczanie wartości wyrażeń) Inne struktury danych1
T-W-3Algorytmy iteracyjne Niezmiennik pętli Poprawność algorytmu Projektowanie algorytmu iteracyjnego (przykład sortowania przez wstawianie, przykład poszukiwania binarnego)1
T-W-4Analiza 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 rekurencyjnych2
T-W-5Algorytmy rekurencyjne Algorytm MULT Usprawnienie algorytmu MULT Reprezentacja algorytmów rekurencyjnych Zaawansowane przykłady rekurencji1
T-W-6Algorytmy sortujące Sortowanie bąbelkowe Sortowanie przy użyciu kolejek priorytetowych Sortowanie metodą "dziel i zwyciężaj" Sortowanie w czasie liniowym2
T-W-7Paradygmat 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#2
10

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach laboratoryjnych10
A-L-2Samodzielne przygotowanie studenta do realizacji zajęć ćwiczeniowych, laboratoryjnych przy komputerze, a także zaliczeń w postaci realizacji sprawozdań na zajęciach oraz kolokwium85
A-L-3Udział w konsultacjach do laboratoriów2
97
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach10
A-W-2Konsultacje dotyczące materiałw prezentowanych na wykładach2
A-W-3Samodzielne przygotowanie do egzaminu końcowego32
A-W-4Udział w egzaminie2
46
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_C/03-2_W01W 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).
Cel przedmiotuC-1Zapoznanie 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.
Treści programoweT-W-1Podstawowe 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
Metody nauczaniaM-1Wykład informacyjny, zajęcia laboratoryjne
Sposób ocenyS-1Ocena podsumowująca: Egzamin testowy
Kryteria ocenyOcenaKryterium oceny
2,0Student 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,0Student 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,5Student 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,0Student 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,5Student 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,0Student 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).
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_C/03-2_U01W 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.
Cel przedmiotuC-1Zapoznanie 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-2Ogólne wymaganie wstępne: wiedza pierwszej części danego przedmiotu.
Metody nauczaniaM-1Wykład informacyjny, zajęcia laboratoryjne
Sposób ocenyS-1Ocena podsumowująca: Egzamin testowy
Kryteria ocenyOcenaKryterium oceny
2,0Student 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,0Student 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,5Student 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,0Student 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,5Student 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,0Student 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).
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_C/03-2_K01Student 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.
Cel przedmiotuC-1Zapoznanie 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-2Ogólne wymaganie wstępne: wiedza pierwszej części danego przedmiotu.
Metody nauczaniaM-1Wykład informacyjny, zajęcia laboratoryjne
Sposób ocenyS-1Ocena podsumowująca: Egzamin testowy
Kryteria ocenyOcenaKryterium oceny
2,0Student 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,0Student 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,5Student 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,0Student 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,5Student 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,0Student 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).