Liceum Klasa III 45 minut PP: I, II | s. 342-343

Lekcja 14: Powtorzenie i sprawdzian - semestr I

Powtorzenie materialu semestru I: programowanie, struktury danych, sortowanie, bazy danych, projekty webowe

📋 Podstawa programowa: I+II
bazy danychegzaminpowtorzenieprogramowaniesortowaniesprawdzianstruktury danychtest
00:00
Powtorzenie
15 min
00:15
Sprawdzian
25 min
00:40
Podsumowanie
5 min
📚

Teoria - powtorzenie

Zakres materialu na sprawdzian

Sprawdzian obejmuje tematy z lekcji 1-13 semestru I klasy III. Ponizej znajdziesz podsumowanie najwazniejszych zagadnien z kazdego bloku tematycznego. Wykorzystaj to powtorzenie jako checkliste - zaznacz tematy, ktore dobrze znasz, i te, ktore wymagaja dodatkowej pracy.

Pamietaj, ze sprawdzian nie polega na pamieciowym odtwarzaniu - wazniejsze jest zrozumienie zasad i umiejetnosc zastosowania wiedzy w praktyce. Jesli rozumiesz logike algorytmow i potrafisz pisac programy, sprawdzian nie powinien byc trudny.

1. Programowanie w Pythonie (Lekcje 1-4)

Kluczowe zagadnienia:
- Zmienne i typy danych (int, float, str, bool, list, dict)
- Instrukcje warunkowe (if / elif / else)
- Petle (for z range(), while, break, continue)
- Funkcje (def, return, parametry, wartosci domyslne)
- Listy, krotki, slowniki, list comprehensions
- Sortowanie babelkowe i przez wstawianie
- Szyfr Cezara, wyszukiwanie wzorca
# Przypomnienie kluczowych konstrukcji Pythona:

# List comprehension
kwadraty = [x**2 for x in range(1, 11)]

# Slownik
uczen = {"imie": "Anna", "oceny": [5, 4, 6]}

# Funkcja
def srednia(lista):
    return sum(lista) / len(lista) if lista else 0

# Sortowanie babelkowe - zasada
# Porownujemy pary sasiadow, zamieniamy jesli w zlej kolejnosci
# Powtarzamy az do posortowania

# Szyfr Cezara - zasada
# C = (P + klucz) % 26  (szyfrowanie)
# P = (C - klucz) % 26  (deszyfrowanie)

2. Narzedzia i srodowisko pracy (Lekcje 5-6)

W tym bloku poznalismy rozne narzedzia wspierajace programowanie i prace z danymi. Warto pamietac o roznicach miedzy poszczegolnymi srodowiskami.

  • Mikrokontrolery: Arduino, micro:bit - czujniki, aktuatory, programowanie urzadzen
  • Srodowiska programistyczne: VS Code, Thonny, PyCharm, Replit, Google Colab
  • Biblioteki Python: math, random, matplotlib, pandas - rozszerzanie mozliwosci jezyka

3. Arkusz kalkulacyjny (Lekcje 7-8)

Arkusze kalkulacyjne to potezne narzedzie do analizy danych. Na sprawdzianie mozesz zostac poproszony o napisanie formuly lub wytlumaczenie dzialania funkcji.

Funkcje do pamietania:
=JEZELI(warunek; prawda; falsz)
=WYSZUKAJ.PIONOWO(szukana; tabela; kolumna; dokladnosc)
=LICZ.JEZELI(zakres; kryterium)
=SUMA.JEZELI(zakres_sumy; zakres_kryterium; kryterium)
=SREDNIA(), =MEDIANA(), =DOMINANTA()
=MIN(), =MAX(), =ILE.LICZB()

4. Bazy danych i SQL (Lekcja 9)

Bazy danych sa fundamentem wspolczesnych aplikacji. Jezyk SQL pozwala na efektywne wyszukiwanie, filtrowanie i analizowanie danych. Pamietaj o kluczowych poleceniach i ich skladni.

Kluczowe polecenia SQL:
SELECT kolumny FROM tabela WHERE warunek;
SELECT ... ORDER BY kolumna ASC/DESC;
SELECT ... GROUP BY kolumna HAVING warunek;
SELECT ... JOIN tabela2 ON warunek_laczenia;
INSERT INTO tabela VALUES (...);
CREATE TABLE nazwa (kolumna TYP, ...);

Pojecia: klucz glowny (PK), klucz obcy (FK),
         relacja, diagram ER, normalizacja

5. Strony internetowe i praca zespolowa (Lekcje 10-13)

W ostatnim bloku tematycznym pracowaliscie nad projektami zespolowymi. Najwazniejsze pojecia i umiejetnosci z tego bloku to:

  • Struktura HTML: header, nav, main, section, article, footer - semantyczny kod
  • CSS: Flexbox, Grid, Media Queries, responsywnosc, mobile-first
  • Publikacja: GitHub Pages - darmowy hosting stron statycznych
  • Praca zespolowa: role w zespole, podzial zadan, feedback, peer review
Wskazowka przed sprawdzianem: Nie probuj uczyc sie wszystkiego na ostatnia chwile. Skup sie na zrozumieniu zasad, a nie na pamieciowym uczeniu kodu. Jesli rozumiesz DLACZEGO algorytm dziala, latwo odtworzysz jego implementacje.
✏️

Zadania - przykladowe pytania sprawdzianu

Latwe (5 pkt)

Zadanie 1: Pytania teoretyczne

Odpowiedz na pytania (po 1 pkt):
a) Czym rozni sie lista od krotki w Pythonie?
b) Jaka jest zlozonosc obliczeniowa sortowania babelkowego?
c) Co robi funkcja WYSZUKAJ.PIONOWO w arkuszu kalkulacyjnym?
d) Co to jest klucz obcy (FOREIGN KEY) w bazie danych?
e) Co to jest wireframe i do czego sluzy?

Pokaz odpowiedzi
a) Lista jest MUTOWALNA (mozna zmieniac po utworzeniu),
   krotka jest NIEMUTOWALNA (nie mozna zmieniac).
   Lista: [1,2,3], krotka: (1,2,3).

b) Zlozonosc pesymistyczna: O(n^2) - kwadratowa.
   W najgorszym przypadku wykonuje n*(n-1)/2 porownan.

c) WYSZUKAJ.PIONOWO szuka wartosci w pierwszej kolumnie
   tabeli i zwraca wartosc z innej kolumny tego wiersza.

d) Klucz obcy to pole w tabeli odwolujace sie do
   klucza glownego w innej tabeli, tworzac relacje.

e) Wireframe to uproszczony szkielet strony WWW,
   pokazujacy rozmieszczenie elementow bez kolorow
   i grafik. Sluzy do planowania struktury strony.
Srednie (5 pkt)

Zadanie 2: Programowanie - analiza listy

Napisz funkcje analiza(lista), ktora dla listy liczb calkowitych zwraca slownik z kluczami: "suma", "srednia", "parzyste" (lista parzystych), "nieparzyste" (lista nieparzystych), "posortowana" (lista posortowana rosnaco).

Pokaz rozwiazanie
def analiza(lista):
    return {
        "suma": sum(lista),
        "srednia": sum(lista) / len(lista) if lista else 0,
        "parzyste": [x for x in lista if x % 2 == 0],
        "nieparzyste": [x for x in lista if x % 2 != 0],
        "posortowana": sorted(lista)
    }

# Test
dane = [7, 2, 9, 4, 1, 8, 3, 6, 5]
wynik = analiza(dane)
for klucz, wartosc in wynik.items():
    print(f"{klucz}: {wartosc}")
Srednie (5 pkt)

Zadanie 3: SQL - zapytania do bazy szkolnej

Tabele: uczniowie(id, imie, nazwisko, klasa), oceny(id, id_ucznia, przedmiot, ocena). Napisz zapytania:
a) Uczniowie z klasy "3a" posortowani po nazwisku
b) Srednia ocen ucznia o id=5
c) Uczniowie ze srednia powyzej 4.5
d) Ile ocen "6" z przedmiotu "Informatyka"

Pokaz rozwiazanie
-- a)
SELECT imie, nazwisko FROM uczniowie
WHERE klasa = '3a' ORDER BY nazwisko ASC;

-- b)
SELECT ROUND(AVG(ocena), 2) as srednia
FROM oceny WHERE id_ucznia = 5;

-- c)
SELECT u.imie, u.nazwisko, ROUND(AVG(o.ocena), 2) as sr
FROM uczniowie u JOIN oceny o ON u.id = o.id_ucznia
GROUP BY u.id HAVING AVG(o.ocena) > 4.5;

-- d)
SELECT COUNT(*) as liczba_szostek
FROM oceny
WHERE ocena = 6 AND przedmiot = 'Informatyka';
Trudne (5 pkt)

Zadanie 4: Sortowanie z analiza krokow

Zaimplementuj sortowanie przez wstawianie, ktore liczy i zwraca liczbe porownan i przesuniec. Wypisz stan listy po kazdym wstawieniu. Przetestuj na listach: losowej (10 elem.), rosnacej i malejacej. Ktora wymaga najmniej/najwiecej operacji i dlaczego?

Pokaz rozwiazanie
def insertion_sort_analiza(lista):
    n = len(lista)
    porownania = 0
    przesuniecia = 0
    print(f"Start: {lista}")

    for i in range(1, n):
        klucz = lista[i]
        j = i - 1
        while j >= 0:
            porownania += 1
            if lista[j] > klucz:
                lista[j + 1] = lista[j]
                przesuniecia += 1
                j -= 1
            else:
                break
        lista[j + 1] = klucz
        print(f"Krok {i}: {lista}")

    return porownania, przesuniecia

# Rosnaca - NAJMNIEJ operacji O(n)
# Malejaca - NAJWIECEJ operacji O(n^2)
🎥

Materialy wideo

Sesja z plusem klasa 6 - powtórka materiału
matematykagryzie
Sesja z plusem klasa 5 - powtórka materiału
matematykagryzie
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 13: Prezentacja projektow Lekcja 15: Algorytmy - powtorzenie →