Zarządzenie rektora nr



Pobieranie 91,99 Kb.
Data25.06.2018
Rozmiar91,99 Kb.


SYLABUS MODUŁU (PRZEDMIOTU)


Kod modułu

ITI-1-116-s

Nazwa modułu

Podstawy informatyki

Osoba odpowiedzialna za moduł

Tomasz Zieliński

Osoby prowadzące zajęcia

Jarosław Bułat, Jacek Dańda, Tomasz Orzechowski, Jacek Wszołek

Wydział

B - Informatyki, Elektroniki i Telekomunikacji

Kierunek

Teleinformatyka

Specjalność

--

Profil kształcenia

ogólnoakademicki

Strona internetowa




Poziom kształcenia (studiów)

1 stopień

Forma i tryb prowadzenia studiów

Wykład i laboratorium

Semestr

1

Język prowadzenia zajęć

Polski



Opis efektów kształcenia dla modułu (przedmiotu)

numer efektu kształcenia

Student, który zaliczył moduł (przedmiot)

wie/umie/potrafi:



SYMBOL

(odniesienie do)

EKK


Sposób weryfikacji efektów kształcenia

(forma zaliczeń)



W1

Zna i rozumie podstawowe pojęcia informatyki, zna architekturę i działanie prostego komputera, zna podstawowe zadania systemu operacyjnego

K_W10

Kolokwium z wykładu

W2

Zna i rozumie proceduralny język programowania

K_W10

Kolokwium z wykładu

W3

Zna i rozumie podstawowe mechanizmy budowy algorytmów

K_W10

Kolokwium z wykładu

W4

Zna i rozumie podstawowe klasyczne algorytmy

K_W10

Kolokwium z wykładu

U1

Potrafi rozwiązywać proste zadania algorytmiczne

K_U21

Projekt laboratoryjny

U2

Potrafi zapisywać algorytmy w proceduralnym języku programowania

K_U21

Projekt laboratoryjny

U3

Potrafi stosować proste i strukturalne typy danych

K_U21

Projekt laboratoryjny

U4

Potrafi stosować dekompozycję problemu

K_U21

Projekt laboratoryjny

K1

Rozumie potrzebę uczenia się

K_K01




Macierz efektów kształcenia dla modułu (przedmiotu) w odniesieniu do form zajęć

numer efektu kształcenia

Student, który zaliczył moduł (przedmiot)

wie/umie/potrafi:

Forma zajęć dydaktycznych

Wykład

Ćw. audyt.

Ćw. laborat.

Ćw. projektowe

Konwersatorium

Zajęcia seminaryjne

Zajęcia praktyczne

inne ...

W1

Zna i rozumie podstawowe pojęcia informatyki, zna architekturę i działanie prostego komputera, zna podstawowe zadania systemu operacyjnego

+






















W2

Zna i rozumie proceduralny język programowania

+






















W3

Zna i rozumie podstawowe mechanizmy budowy algorytmów

+






















W4

Zna i rozumie podstawowe klasyczne algorytmy

+






















U1

Potrafi rozwiązywać proste zadania algorytmiczne







+
















U2

Potrafi zapisywać algorytmy w proceduralnym języku programowania







+
















U3


Potrafi stosować proste i strukturalne typy danych







+
















U4

Potrafi stosować dekompozycję problemu







+
















K1

Rozumie potrzebę uczenia się

+




+
















Treść modułu (przedmiotu) kształcenia (program wykładów i pozostałych zajęć)

Zajęcia w ramach modułu prowadzone są w postaci wykładu (30 godzin) oraz ćwiczeń laboratoryjnych (30 godzin)


WYKŁADY
1. Praktyczne korzystanie z systemu UNIX: rola systemu operacyjnego, wielozadaniowość, wielodostęp, podstawowe polecenia, powłoki, skrypty.

2. Architektura prostego komputera: procesor, pamięć, urządzenia we/wy, przerwania, stos. Cykl rozkazowy procesora, instrukcje kodu maszynowego, język niskiego poziomu, język wysokiego poziomu. Reprezentacja liczb w komputerze, strony kodowe znaków.

3. Język programowania, składnia, semantyka, pragmatyka języka programowania. Sposoby opisu składni i semantyki. Programowanie proceduralne: preprocesor, kompilacja, konsolidacja, pakiety, moduły, biblioteki. Pierwszy program w języku C.

4-5. Podstawy programowania w języku C: typy zmiennych, zmienne pojedyncze i tablice zmiennych, pliki. Instrukcje sterujące. Procedura, funkcja, przekazywanie parametrów do procedur i funkcji, zmienne lokalne, stos systemowy i jego rola przy wywoływaniu procedur i funkcji. Podejście zstępujące i wstępujące w programowaniu.

6. Wskaźniki. Deklaracja, inicjalizacja oraz wykorzystanie do pośredniej manipulacji zmiennymi. Relacja pomiędzy wskaźnikiem a tablicą. Przekazywanie argumentów funkcji przez wskaźnik. Dynamiczna alokacja pamięci i problemy związane z zarządzaniem pamięcią w systemach bez mechanizmu ,,garbage collection''.

7. Informacja, zadanie algorytmiczne, algorytm i sposoby jego zapisu w postaci schematu blokowego. Przykładowe proste algorytmy i ich implementacja programowa.

8. Funkcje rekurencyjne. Mechanizm rekurencji i jego realizacja na poziomie kodu maszynowego. Problemy rozwiązywane z użyciem rekurencji, celowość stosowania rozwiązań rekurencyjnych.

9. Podstawowe algorytmy sortowania i wyszukiwania (w tym rekurencyjne). Zasada "dziel-i-rządź" w algorytmach. Algorytm wyszukiwania połówkowego.

10. Statyczne struktury danych. Tablice struktur, dostęp do elementów struktur i tablic poprzez wskaźnik. Dynamiczne struktury danych. Lista jedno-, dwu-kierunkowa, drzewo, kolejka, stos.

11. Język C++: obiekt, klasa, dziedziczenie, hermetyzacja, polimorfizm, wirtualność. Przykładowe programy.

12. Język Matlab jako narzędzie do obliczeń inżynierskich. Przykłady obliczeń technicznych.

13. Paradygmaty w programowaniu. Kompilacja i wykonanie a interpretacja programu. Technologie programowania. Rodzaje języków programowania: proceduralne, obiektowe; interpretowane, kompilowane, mieszane; skryptowe; imperatywne, deklaratywne. Podstawowe pojęcia ze złożoności obliczeniowej algorytmów. Złożoność obliczeniowa, funkcja złożoności obliczeniowej, rząd złożoności obliczeniowej. Algorytmy wielomianowe i wykładnicze – przykłady problemów. Problemy nierozwiązywalne, problem stopu.

14. Analiza i testowanie kodu wynikowego za pomocą narzędzi gdb (GNU Debugger), gprof (Profiler), valgrind (wykrywanie wycieków pamięci).

15. Wybrane zagadnienia: środowiska programistyczne (IDE) – ułatwienie pracy. Wzorce projektowe (design patterns) a praca zespołowa. Standardy kodowania – nazewnictwo zmiennych/funkcji, formatowanie kodu źródłowego, podział programu na funkcje, moduły i biblioteki.


ĆWICZENIA LABORATORYJNE
W module prowadzone są zajęcia laboratoryjne (komputerowe), w trakcie których studenci piszą skrypty komend systemu operacyjnego LINUX w języku wybranej powłoki oraz programy w języku C/C++ (bez Matlaba). Treści tych zajęć ugruntowują i rozszerzają wiedzę przekazywaną podczas wykładów.


  1. Wprowadzenie do rodziny systemów uniksopodobnych (Linux). Podstawowe komendy powłoki, wyrażenia regularne, zmienne środowiskowe, zmienne powłoki.

  2. Zarządzanie prawami dostępu, struktura katalogów. Pisanie skryptów w powłokach z rodziny csh i sh. Operacje na plikach i strumieniach w powłoce systemów uniksopodobnych.

  3. Wprowadzenie do języka C, deklaracja, definicja, podstawowa struktura programu.

  4. Różne rodzaje pętli, operacje wejścia-wyjścia, obliczenia numeryczne w języku C.

  5. Instrukcje sterujące, proste i złożone warunki logiczne, operatory binarne.

  6. Wskaźniki. Deklaracja, inicjalizacja, zmiana wartości wskaźnika i wskazywanych przez nie zmiennych. Podstawowe operacje na danych za pomocą wskaźników.

  7. Tablice jedno i wielowymiarowe. Operacje na tablicach. Łańcuchy znakowe, stałe znakowe. Operacje wejścia wyjścia oraz manipulacje łańcuchami znakowymi.

  8. Złożone typy danych - struktury i unie. Manipulacja polami struktur uporządkowanych w tablicach.

  9. Operacje na plikach. Różne metody dostępu do danych zapisanych w systemie plików systemu operacyjnego..

  10. Funkcje. Definicje, deklaracje, przekazywanie danych przez wartość i wskaźnik.

  11. Funkcje rekurencyjne. Ilustracja korzyści i zagrożeń wynikających z wykorzystania funkcji rekurencyjnych. Praktyczne wykorzystanie w implementacji algorytmów obliczeniowych.

  12. Dynamiczne struktury danych, rezerwowanie i zwalnianie pamięci pod zmienne dowolnego typu. Problem zarządzania pamięcią w językach bez mechanizmu ,,garbage collection''.

  13. Algorytmy sortowania: bąbelkowy, QuickSort, qsort(). Algorytm wyszukiwania połówkowego

  14. Algorytmy sortowania i wyszukiwania w strukturach drzewiastych.

  15. Sprawdzenie wiadomości. Wystawienie ocen.




Sposób obliczania oceny końcowej




  1. Aby uzyskać pozytywną ocenę końcową niezbędne jest uzyskanie pozytywnej oceny z ćwiczeń laboratoryjnych oraz kolokwium z wykładu.

  2. Obliczamy średnią arytmetyczną z ocen zaliczenia i kolokwium uzyskanych we wszystkich terminach.

  3. Wyznaczmy ocenę końcową na podstawie zależności:
    if sr>4.75 then OK:=5.0 else
    if sr>4.25 then OK:=4.5 else
    if sr>3.75 then OK:=4.0 else
    if sr>3.25 then OK:=3.5 else OK:=3


  4. Jeżeli pozytywną ocenę z ćwiczeń i kolokwium z wykładu uzyskano w pierwszym terminie oraz ocena końcowa jest mniejsza niż 5.0 to ocena końcowa jest podnoszona o 0.5




Wymagania wstępne i dodatkowe

Znajomość matematyki (systemy pozycyjne, kombinatoryka, logarytmy, itp.)




Zalecana literatura i pomoce naukowe

  1. G. Brookshear: Informatyka w ogólnym zarysie, WNT, 2003

  2. W. Stallings: Organizacja i architektura systemu komputerowego. WNT, Warszawa 2004.

  3. P. P. Silvester: System operacyjny UNIX. WNT, Warszawa 1990.

  4. B.W. Kernighan, D.M. Ritchie: Język C. WNT, Warszawa 1988.

  5. J. Grębosz: Symfonia C++ standard. Wydawnictwo Edition 2000, Kraków 2005.

  6. S. Prata: Język C. Szkoła programowania. wyd. 5, Helion, Gliwice 2006.

  7. D. Harel, F.Yishai: Rzecz o istocie informatyki – algorytmika, WNT, 2008

  8. N. Wirth: Algorytmy + Struktury danych = Programy. WNT, Warszawa 1989.

  9. P. Wróblewski: Algorytmy, struktury danych i techniki programowania. Helion, Gliwice 2003.

  10. P. Rudra: Matlab 7 dla naukowców i inżynierów. PWN, 2007.

  11. J. Brzózka, L. Dorobczyński: Matlab środowisko obliczeń naukowo-technicznych. PWN, 2008.

Nakład pracy studenta (bilans punktów ECTS)

Forma nakładu pracy studenta

(udział w zajęciach, aktywność, przygotowanie sprawozdania, itp.)



Obciążenie studenta [h]

Udział w wykładach

30

Samodzielne studiowanie tematyki wykładów

15

Udział w ćwiczeniach laboratoryjnych

30

Realizacja samodzielnie wykonywanych zadań

15

Przygotowanie do kolokwium z wykładu

10

Sumaryczne obciążenie pracą studenta

100

Punkty ECTS za moduł

4

Uwagi




Strona z





©operacji.org 2017
wyślij wiadomość

    Strona główna