Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

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

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

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-1Wprowadzenie 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-2Typy 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 preprocesor2
T-L-4Operatory, wyrażenia i instrukcje. Podstawowe operatory, wyrażenia i instrukcje, konwersja typów, funkcje z argumentami.2
T-L-5Instrukcje 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-6Instrukcje sterujące. Pętla if-else. Operator warunkowy. Posługiwanie się słowami kluczowymi switch, break, continue oraz goto.2
T-L-7Znakowe wejście-wyjście. Funkcje getchar() i putchar()2
T-L-8Funkcje. Prototypy ANSI C. Używanie adresów, modyfikacja zmiennych w funkcji wywołującej. Posługiwanie się wskaźnikami2
T-L-9Tablice i wskażniki. Wskażniki do tablic. Funkcje, tablice, wskażniki. Działania na wskażnikach. Posługiwanie się wskażnikami podczas wykorzystania tavlic2
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ńcuchowe2
T-L-11Obsługa plików. Wymiana informacji z plikami. Standardowe wejście-wyjście. Plikowe wejsie-wyjscie2
T-L-12Struktuty 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źnikami2
T-L-13Operacje bitowe. Liczby binarne, bity a bajty. Inne systemy liczbowe. Operatory a pola bitowe2
T-L-14Preprocesor i biblioteka C. Stałe symboliczne: #define. Posługiwanie się makrami. Dołączenie plików: #include. Typy wyliczeniowe. Podstawy posługiwania się biblioteką C2
T-L-15Kolokwium końcowe2
30
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 operacyjnychi2
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 danych2
T-W-3Algorytmy iteracyjne Niezmiennik pętli Poprawność algorytmu Projektowanie algorytmu iteracyjnego (przykład sortowania przez wstawianie, przykład poszukiwania binarnego)2
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 rekurencji2
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#3
15

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

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

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/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_W15T1A_W04, T1A_W05C-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/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_U05T1A_U09, T1A_U12InzA_U02, InzA_U04C-2, C-1M-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/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_K01T1A_K01, T1A_K03, T1A_K04, T1A_K05C-1, C-2M-1S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium 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,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/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,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/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,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-1Wprowadzenie 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-2Typy 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 preprocesor2
T-L-4Operatory, wyrażenia i instrukcje. Podstawowe operatory, wyrażenia i instrukcje, konwersja typów, funkcje z argumentami.2
T-L-5Instrukcje 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-6Instrukcje sterujące. Pętla if-else. Operator warunkowy. Posługiwanie się słowami kluczowymi switch, break, continue oraz goto.2
T-L-7Znakowe wejście-wyjście. Funkcje getchar() i putchar()2
T-L-8Funkcje. Prototypy ANSI C. Używanie adresów, modyfikacja zmiennych w funkcji wywołującej. Posługiwanie się wskaźnikami2
T-L-9Tablice i wskażniki. Wskażniki do tablic. Funkcje, tablice, wskażniki. Działania na wskażnikach. Posługiwanie się wskażnikami podczas wykorzystania tavlic2
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ńcuchowe2
T-L-11Obsługa plików. Wymiana informacji z plikami. Standardowe wejście-wyjście. Plikowe wejsie-wyjscie2
T-L-12Struktuty 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źnikami2
T-L-13Operacje bitowe. Liczby binarne, bity a bajty. Inne systemy liczbowe. Operatory a pola bitowe2
T-L-14Preprocesor i biblioteka C. Stałe symboliczne: #define. Posługiwanie się makrami. Dołączenie plików: #include. Typy wyliczeniowe. Podstawy posługiwania się biblioteką C2
T-L-15Kolokwium końcowe2
30

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 operacyjnychi2
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 danych2
T-W-3Algorytmy iteracyjne Niezmiennik pętli Poprawność algorytmu Projektowanie algorytmu iteracyjnego (przykład sortowania przez wstawianie, przykład poszukiwania binarnego)2
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 rekurencji2
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#3
15

Formy aktywności - laboratoria

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

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach15
A-W-2Konsultacje dotyczące materiałw prezentowanych na wykładach1
A-W-3Samodzielne przygotowanie do egzaminu końcowego29
A-W-4Udział w egzaminie2
47
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaZIP_1A_C/3-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).
Odniesienie do efektów kształcenia dla kierunku studiówZIP_1A_W16ma podstawową wiedzę o trendach rozwojowych w obszarze reprezentowanej dyscypliny inżynierskiej
ZIP_1A_W15ma szczegółową wiedzę związaną z niektórymi obszarami reprezentowanej dyscypliny inżynierskiej
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W04ma szczegółową wiedzę związaną z wybranymi zagadnieniami z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
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/3-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.
Odniesienie do efektów kształcenia dla kierunku studiówZIP_1A_U07ma umiejętności w zakresie uwzględniania zasad zarządzania w różnych formach aktywności zawodowej
ZIP_1A_U05ma umiejętności w zakresie realizacji i wdrażania prac badawczo-rozwojowych w zakresie innowacji technologicznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
T1A_U12potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działań inżynierskich
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U04potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działań inżynierskich
Cel przedmiotuC-2Ogólne wymaganie wstępne: wiedza pierwszej części danego 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.
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/3-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.
Odniesienie do efektów kształcenia dla kierunku studiówZIP_1A_K03ma kompetencje w zakresie świadomej odpowiedzialności za wspólnie realizowane zadania
ZIP_1A_K01ma świadomość potrzeby dokształcania ze szczególnym uwzględnieniem samokształcenia się
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_K01rozumie potrzebę uczenia się przez całe życie; potrafi inspirować i organizować proces uczenia się innych osób
T1A_K03potrafi współdziałać i pracować w grupie, przyjmując w niej różne role
T1A_K04potrafi odpowiednio określić priorytety służące realizacji określonego przez siebie lub innych zadania
T1A_K05prawidłowo identyfikuje i rozstrzyga dylematy związane z wykonywaniem zawodu
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).