Zajęcia
Informacje o przebiegu zajęć
Data Opis
2024-10-04 Tydzień 1
Wykład:
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisywanie algorytmu z wykorzystaniem schematu blokowego.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Zapisywać algorytm z wykorzystaniem schematu blokowego.
2024-10-11 Tydzień 2
Wykład:
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Zapisywać algorytm z wykorzystaniem pseudokodu.
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisywanie algorytmu z wykorzystaniem schematu blokowego.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Zapisywać algorytm z wykorzystaniem pseudokodu.
2024-10-18 Tydzień 3
Wykład:
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyminić typy proste i złożone.
    • Scharakteryzować tablicę, słownik, zbiór.
    • Wyjaśnić czym jest struktura (rekord) i w jaki sposób ułatwia organizację danych.
    • Wyjaśnić czym klasa różni się od struktury.
    • Podać przykładowe wykorzystanie każdego z rodzajów typów.
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisywanie algorytmu z wykorzystaniem pseudokodu (instrukcje warunkowe i pętle).
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wykorzystywać instrukcje warunkowe i pętle w prostych algorytmach iteracyjnych.
2024-10-25 Tydzień 4
Wykład:
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyminić typy proste i złożone.
    • Scharakteryzować stos, kolejkę, listę, drzewo.
    • Podać przykładowe wykorzystanie każdego z rodzajów typów.
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisywanie algorytmu z wykorzystaniem pseudokodu (instrukcje warunkowe i pętle + tablice).
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wykorzystywać instrukcje warunkowe i pętle w prostych algorytmach iteracyjnych (np. wykonujących określoną operację na wybranych elementach macierzy).
2024-11-08 Tydzień 5
Wykład:
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Czym różni się iteracja od rekurencji.
    • Umieć podać kilka przykładów problemów rozwiązanych w sposób rekurencyjny i iteracyjny.
    • Umieć określić wady i zalety rozwiązań iteracyjnych i rekurencyjnych.
    • Umieć wyjaśnić czym jest rekurencja ogonowa (tail recursion).
Ćwiczenia:
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wykorzystywać instrukcje warunkowe i pętle w prostych algorytmach iteracyjnych (np. wykonujących określoną operację na wybranych elementach macierzy).
2024-11-15 Tydzień 6
Wykład:
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Czym różni się addytywny system liczbowy od pozycyjnego.
    • Dlaczego pozycyjny system liczbowy jest "wygodny".
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisywanie algorytmu z wykorzystaniem pseudokodu (rekurencja).
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć rozwiązywać proste zadania rekurencyjne.
2024-11-22 Tydzień 7
Wykład: Konwersje pomiędzy pozycyjnymi systemami liczbowymi. Liczby rzeczywiste.
  • Zagadnienia i materiały
    • Systemy liczbowe
    • Systemy liczbowe (konwersja (2)=>(10), (10)=>(2), (10)=>(X) oraz (X)=>(10).
    • Konwersje pomiędzy systemami o dowolnych podstawach w szczególności o podstawach będącej potęgą liczby 2 (tj. 4, 8 i 16)).
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć wykonać konwersje pomiędzy pozycyjnymi systemami liczowymi, tj. (2)=>(10), (10)=>(2), (10)=>(X), (X)=>(10), (X) => (Y).
    • Umieć wykonywać konwersję (2) => (10) oraz (10) => (2) dla liczb rzeczywistych.
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisujemy różnorodne algorytmy.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć rozwiązywać proste zadania algorytmiczne.
2024-11-22 Tydzień 8
Wykład: Reprezentacja danych -- podstawowe pojęcia, ogólne uwagi na temat reprezentacji danych. Reprezentacja maszynowa liczb naturalnych (i ewentualnie całkowitych).
Ćwiczenia:
  • Zagadnienia i materiały
    • Zapisujemy różnorodne algorytmy.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć rozwiązywać proste zadania algorytmiczne.
2024-12-06 Tydzień 9
Wykład: Reprezentacja maszynowa liczb całkowitych - uzupełnienie dwójkowe i reprezentacja z przesunięciem.
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Kodowanie liczb całkowitych (reprezentacja uzupełnieniowa do dwóch i reprezentacja z przesunięciem).
Ćwiczenia:
  • Zagadnienia i materiały
    • Kolokwium I: kolokwium sprawdzające wiadomości z zakresu ćwiczeń 1-8.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
2024-12-13 Tydzień 10
Wykład: Reprezentacja maszynowa liczb rzeczywistych - reprezentacja stałoprzecinkowa, reprezentacja zmiennoprzecinkowa.
Ćwiczenia:
  • Zagadnienia i materiały
    • Omówienie wyników kolokwium.
    • Reprezentacja maszynowa liczb naturalnych i całkowitych.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć posługiwać się reprezentacją maszynową liczb naturalnych i całkowitych.
2024-12-20 Tydzień 11
Wykład: Kodowanie znaków i napisów (zagadnienia ogólne)
Omawiamy zasady kodowania na przykładzie wymyślonego kodowania PF1.
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Ogólna idea kodowania napisów.
Ćwiczenia:
  • Zagadnienia i materiały
    • Reprezentacja maszynowa liczb rzeczywistych.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć posługiwać się reprezentacją maszynową liczb rzeczywistych.
2024-12-20 Tydzień 12
Wykład: Kodowanie znaków i napisów (Unicode i UTF)
ASCII i strony kodowe, Unicode, UTF-8. Ćwiczenia:
  • Zagadnienia i materiały
    • Poprawa kolokwium I.
    • Reprezentacja innych rodzajów danych (napisy) - praca samodzielna, w razie pytań lub problemów zapraszam na konsultacje lub kontakt przez Teams-y.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Kodować napisy z wykorzystaniem własnego wymyślonego kodowania lub jednego z istniejących.
    • Kodować napisy przy użyciu kodów Unicode i kodowania UTF.
2025-01-10 Tydzień 13
Wykład: Maszyna Turinga.
  • Zagadnienia i materiały
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Budowa Maszyny Turinga.
    • Zasada działania Maszyny Turinga.
    • Dlaczego Maszyny Turinga jest ważnym modelem i co ona modeluje.
Ćwiczenia:
  • Zagadnienia i materiały
    • Reprezentacja innych rodzajów danych, np. obrazy.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć zaproponować reprezentację danych dla określonego problemu.
2025-01-17 Tydzień 14
Wykład: Notacja BNF i wyrażenia regularne.
  • Zagadnienia i materiały
    • Notacja BNF i wyrażenia regularne
    • Przykłady BNF w tym: przykład 2, przykład 3
    • Derivations and syntax trees - przykład wyprowadzenia. W szczególności zwracamy uwagę na fragment:
      A derivation of a string for a grammar is a sequence of grammar rule applications that transform the start symbol into the string. A derivation proves that the string belongs to the grammar's language.

      A derivation is fully determined by giving, for each step:
      • the rule applied in that step,
      • the occurrence of its left-hand side to which it is applied.
      For clarity, the intermediate string is usually given as well.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć wykazać dla prostych przypadków przynależność napisu do zadanego języka określonego przez pewną gramatykę.
    • Posługiwać się notacją BNF w celu zweryfikowania poprawności zadanego napisu.
    • Znajomość podstawowej składni wyrażeń regularnych i jej wykorzystanie w elementarnych zadaniach.
Ćwiczenia:
  • Zagadnienia i materiały
    • Kolokwium II
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
2025-01-24 Tydzień 15
Wykład: Język a maszyna Turinga.
Ćwiczenia:
  • Zagadnienia i materiały
    • Praktyczne aspekty posługiwania się notacją BNF.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć posługiwać się notacją BNF.