Informatyka dla klas II

Program własny nauczania przedmiotu

INFORMATYKA

IV etap edukacyjny

zakres rozszerzony

Autor: mgr Jerzy Wałaszek, nauczyciel dyplomowany
Przeznaczenie: klasy II i III liceum ogólnokształcącego
Zakres przedmiotu: rozszerzony
Liczba godzin: 180 (w klasie II 120, w klasie III 60)
Podstawa prawna: Rozporządzenie Ministra Edukacji Narodowej z dnia 6 stycznia 2009 r. w sprawie dopuszczania do użytku szkolnego programów wychowania przedszkolnego, programów nauczania i podręczników oraz cofania dopuszczenia
Podstawa programowa: Rozporządzenie Ministra Edukacji Narodowej z dnia 23 grudnia 2008 r. w sprawie podstawy programowej wychowania przedszkolnego oraz kształcenia ogólnego w poszczególnych typach szkół (Dziennik Ustaw 15 stycznia 2009 r. Nr 4, poz. 17).

 

Cele wychowania

  1. Przygotowanie do świadomego wyboru kierunku i zakresu dalszego kształcenia informatycznego:
    • Dążenie do wszechstronnego rozwoju osobowego i społecznego oraz do osią-gania wyznaczonych celów życiowych.
    • Kształcenie samodzielności w podejmowaniu decyzji dotyczących własnego rozwoju intelektualnego.
    • Rozwijanie umiejętności funkcjonowania w skomputeryzowanym świecie. Traktowanie wiadomości z informatyki w sposób integralny z innymi naukami, jako wartości poznawczej samej w sobie, prowadzącej do lepszego rozumienia świata, ludzi i siebie.
  2. Zdolność do samodzielnego korzystania z komputera dla realizacji części zadań edukacyjnych oraz innych celów poznawczych:
    • Rozwijanie osobistych zainteresowań i dociekliwości poznawczej, ukierunkowanej na poszukiwanie informacji w różnych źródłach.
    • Przewidywanie użyteczności informatyki dla życia zawodowego i społecznego.
    • Przygotowywanie do podejmowania i rozwiązywania złożonych zadań, z uwzględnieniem środków i metod informatyki.
    • Organizowanie i ocenianie własnej nauki, przyjmowanie odpowiedzialności za jej poziom.
    • Kształtowanie w sobie postawy dialogu, umiejętności współdziałania w zespole, słuchania innych, rozumienia i uwzględniania ich poglądów. Przygotowywanie prezentacji własnych poglądów.
    • Podejmowanie wyzwań współczesnego świata związanych z ogromną ekspansją środków i narzędzi informatyki.
    • Postrzeganie wpływu informatyki na zachowania społeczne. Rozumienie zalet i zagrożeń, wynikających z korzystania z nowoczesnych technologii.
    • Uświadomienie wagi prawnych i społecznych aspektów zastosowań informatyki.
    • Przestrzeganie zasad regulaminu pracowni komputerowej. Poszanowanie mienia.

Cele kształcenia

  1. Poznanie podstaw działania komputerów oraz wykorzystywanych przez nie struktur danych. Poznanie podstawowej terminologii informatycznej w języku angielskim.
  2. Bezpieczne posługiwanie się komputerem i jego oprogramowaniem, poznanie zasad profilaktyki antywirusowej, bezpieczne korzystanie z sieci komputerowej i jej zasobów.
  3. Tworzenie baz danych oraz gromadzenie, przetwarzanie i wyszukiwanie w nich informacji za pomocą narzędzi dostępnych w oprogramowaniu bazy danych oraz języka SQL.
  4. Wykorzystywanie różnych źródeł informacji, poznanie sposobów zabezpieczania informacji przed niepowołanym dostępem, w tym szyfrowania oraz środków ochrony komputera.
  5. Komunikowanie się za pomocą komputera i technologii informacyjno-komunikacyjnych, korzystanie z usług sieciowych.
  6. Opracowywanie danych za pomocą komputera, tworzenie grafiki, tekstów, tabel, animacji, prezentacji multimedialnych oraz filmów.
  7. Rozwiązywanie problemów i podejmowanie decyzji za pomocą komputera, zastosowanie algorytmiki oraz różnych struktur danych, które są odpowiednie dla napotkanego problemu.
  8. Wykorzystanie komputera, zasobów sieci Internet, programów i gier edukacyjnych do poszerzania wiedzy i umiejętności z różnych dziedzin nauki oraz do rozwijania własnych zainteresowań.
  9. Wykorzystanie metod i narzędzi informatycznych. Korzystanie z zasobów serwisu edukacyjnego I LO w Tarnowie.
  10. Opanowanie podstawowej terminologii informatycznej w języku angielskim.

Metody kontroli i oceniania pracy uczniów

W trakcie realizacji programu nauczania uczniowie są oceniani za:

Każdy uczeń otrzymuje w ciągu semestru przynajmniej 10 ocen. Na ich podstawie nauczyciel decyduje o ocenie semestralnej lub końcoworocznej.

 

obrazekKażdy uczeń ma obowiązek założyć zeszyt przedmiotowy zawierający co najmniej 60 kartek kratkowanych. Zeszyt jest obowiązkowy, a jego brak należy zgłaszać nauczycielowi przed rozpoczęciem lekcji, gdyż w przeciwnym razie uczeń może otrzymać ocenę niedostateczną z przygotowania się do lekcji. Zeszyt przedmiotowy musi być podpisany na pierwszej stronie nazwą przedmiotu (informatyka), imieniem i nazwiskiem ucznia oraz klasą, do której uczeń uczęszcza. Brak podpisu jest traktowany na równi z brakiem zeszytu i skutkuje oceną niedostateczną. Zeszyt przedmiotowy stanowi dokumentację pracy ucznia w trakcie nauki przedmiotu i jest oceniany pod koniec obu semestrów.

obrazekOprócz zeszytu pożądane jest, aby każdy uczeń zaopatrzył się w pamięć pendrive (przynajmniej 2GB), która posłuży mu do przechowywania materiałów. Komputery w pracowni są używane przez wiele różnych osób i trudno zapewnić bezpieczeństwo przechowywanych na nich danych – zdarzały się przypadki usuwania danych. Pamięć pendrive jest obecnie bardzo tania, a może być wykorzystywana również do gromadzenia danych na innych przedmiotach.


obrazekAlternatywą dla pamięci pendrive jest założenie konta pocztowego (np. w gmail.com) i przesyłanie w załącznikach listów utworzonych na lekcji danych.


W ciągu semestru uczeń ma prawo być dwa razy nieprzygotowany do zajęć. Nieprzygotowanie nie zwalnia z obowiązku pracy na lekcji. Nie uwzględnia się nieprzygotowania na zapowiedzianych sprawdzianach i testach oraz na zaliczeniach ocen niedostatecznych. Także pod koniec semestru nieprzygotowania uczniów nie będą respektowane - szczególnie odnosi się to do osobników unikających oceniania w trakcie semestru.

 

Skrócony regulamin pracowni informatycznej

  1. Do pracowni uczniowie wchodzą pod kierunkiem nauczyciela.
  2. Sprzęt komputerowy w pracowni należy używać zgodnie z jego przeznaczeniem.
  3. W pracowni uczeń ma obowiązek wykonywać polecenia nauczyciela.
  4. Bez wiedzy i zgody nauczyciela uczeń nie może uruchamiać lub instalować obcych programów.
  5. W pracowni informatycznej nie wolno spożywać posiłków oraz pić płynów.
  6. W przypadku zauważenia usterki sprzętu należy natychmiast zgłosić to nauczycielowi.

 

Rozkład materiału

Semestr I

Temat i  treść lekcji L. godz.

Lekcja 1: Organizacja zajęć w pracowni komputerowej

  • Przepisy BHP
  • Regulamin pracowni komputerowej
  • Rozkład materiału
  • Kryteria ocen
  • Przydział stanowisk

1

Lekcja 2: Wprowadzenie do informatyki

  • Czym zajmuje się informatyka jako dziedzina naukowa
  • Jak komputer przetwarza informację
  • Pojęcie bitu
  • Zastosowania bitów

1

Lekcja 3,4: Kodowanie liczb

  • Historia rozwoju systemów liczbowych: systemy rzymski, babiloński, arabski
  • Budowa liczby w systemie pozycyjnym
  • Obliczanie wartości liczby zapisanej w dowolnym systemie pozycyjnym
  • Przeliczanie liczb z systemu dziesiętnego na inny
  • Własności systemu dwójkowego
  • Konwersja na system szesnastkowy i ósemkowy

2

Lekcja 5,6: Dwójkowe liczby całkowite bez znaku i ze znakiem w kodzie U2

  • Dodawanie liczb dwójkowych
  • System uzupełnień do podstawy – maszyna Pascala
  • System U2
  • Dodawanie liczb U2
  • Tworzenie liczby przeciwnej w systemie U2
  • Przeliczanie z systemu dziesiętnego na system U2

2

Lekcja 7,8: Przykładowa maszyna cyfrowa

  • Architektura Johna Von Neumanna
  • Pamięć – rodzaje pamięci komputerowych, pamięć operacyjna i zewnętrzna, ROM, EPROM, FLASH, pamięć dyskowa, dyski CD/DVD/BlueRay
  • Urządzenia wejścia/wyjścia
  • Procesor
  • Cykl wykonania rozkazu
  • Rejestry procesora i ich funkcje: licznik rozkazów, rejestr instrukcji, akumulator

2

Lekcja 9,10,11,12: Programowanie przykładowej maszyny cyfrowej

  • Język asemblera: budowa instrukcji
  • Pojęcie trybu adresowania
  • Instrukcje przesłań
  • Instrukcje arytmetyczne
  • Instrukcje logiczne
  • Instrukcje skoków
  • Wejście i wyjście PMC
  • Tworzenie prostych programów i uruchamianie ich w symulatorze PMC

4

Lekcja 13,14: Program zaliczeniowy w asemblerze PMC

2

Lekcja 15,16: Wprowadzenie do języka C++

  • Języki niskiego poziomu (np. asembler PMC)
  • Języki wysokiego poziomu
  • Języki kompilowane, interpretowane
  • Środowisko Code::Blocks (lub inne, np. Visual C++, Borland C++ Builder)
  • Budowa programu w języku C++: pliki nagłówkowe, przestrzeń nazw, funkcja main(), wyjście na konsolę cin
  • Kompilacja i uruchomienie prostego programu

2

Lekcja 17,18: Zmienne całkowite w języku C++

  • Pojęcie typu danych: typy int oraz unsigned int
  • Deklaracja zmiennej: zasady tworzenia nazw zmiennych
  • Instrukcja przypisania
  • Odczyt zmiennej z obiektu cin
  • Działania arytmetyczne na zmiennych całkowitych – pojęcie wyrażenia
  • Instrukcja modyfikacji zmiennej
  • Proste programy obliczeniowe

2

Lekcja 19,20: Instrukcja warunkowa if

  • Pojęcie warunku w języku C++
  • Wyrażenia warunkowe z operatorami porównań
  • Wartości logiczne: true i false
  • Funkcje logiczne negacji, alternatywy i koniunkcji
  • Składnia instrukcji if
  • Pojęcie instrukcji blokowej
  • Zastosowanie instrukcji if: większa z dwóch, trzech liczb, znak liczby, porządkowanie dwóch liczb.

2

Lekcja 21,22: Liczby zmiennoprzecinkowe

  • Budowa liczby zmiennoprzecinkowej
  • Dwójkowe liczby zmiennoprzecinkowe
  • Precyzja liczby zmiennoprzecinkowej
  • Zmienne typów float, double i long double
  • Zasady porównywania liczb zmiennoprzecinkowych – plik nagłówkowy cmath, funkcja fabs()
  • Sprawdzanie przynależności liczby zmiennoprzecinkowej do przedziału
  • Obliczanie pierwiastków równania kwadratowego

2

Lekcja 23,24: Pętla warunkowa

  • Składnia i sposób działania pętli while
  • Składnia i sposób działania pętli dowhile
  • Zastosowania pętli: generacja ciągów arytmetycznych i geometrycznych, suma ciągów

2

Lekcja 25,26: Pętla iteracyjna for

  • Pojęcie iteracji – obieg zliczany
  • Zmienna zliczająca obiegi
  • Składnia i sposób działania pętli for
  • Ćwiczenia w tworzeniu różnych pętli iteracyjnych

2

Lekcja 27,28: Algorytmy

  • Pojęcie algorytmu
  • Własności algorytmu: określoność, jednoznaczność, skończoność, ogólność
  • Sposoby zapisu algorytmu: opis słowny, lista kroków, schemat blokowy, pseudokod, program
  • Specyfikacja algorytmu
  • Zapis poznanych algorytmów: obliczanie wartości liczby dwójkowej, tworzenie liczby przeciwnej U2, generacja ciągu liczbowego, obliczanie pierwiastków równania kwadratowego.

2

Lekcja 29,30: Algorytm Euklidesa obliczania największego wspólnego dzielnika

  • Wersja algorytmu Euklidesa z odejmowaniem – zapis algorytmu za pomocą listy kroków, schematu blokowego, programu
  • Wersja algorytmu Euklidesa z resztami z dzielenia – zapis algorytmu za pomocą listy kroków, schematu blokowego, programu
  • Zastosowania algorytmu Euklidesa: liczby względnie pierwsze, NWW, skracanie ułamków

2

Lekcja 31,32,33,34,: Funkcje

  • Pojęcie funkcji w języku C++
  • Definicja funkcji
  • Przekazywanie parametrów do funkcji przez wartość i przez wskazanie
  • Zmienne lokalne i globalne, przykrywanie nazw zmiennych
  • Tworzenie przykładowych programów z funkcjami: NWD, NWW
  • Ćwiczenia w programowaniu z wykorzystaniem funkcji

4

Lekcja 35,36: Rekurencja

  • Pojęcie rekurencji
  • Warunek zakończenia rekurencji
  • Rekurencyjne obliczanie silni
  • Rekurencyjne obliczanie NWD
  • Ciągi rekurencyjne
  • Rekurencyjne obliczanie liczb Fibonacciego – pojęcie czasowej złożoności obliczeniowej, notacja omikron, złożoność wykładnicza,
  • Iteracyjne obliczanie liczb Fibonacciego – złożoność liniowa, pojęcie programowania dynamicznego

2

Lekcja 37,38: Tablice

  • Pojęcie danej złożonej
  • Budowa tablicy w języku C++ - pojęcie indeksu
  • Deklaracja tablicy
  • Dostęp do elementów tablicy
  • Podstawowe algorytmy tablicowe: odczyt tablicy, wyświetlanie zawartości tablicy, wypełnianie tablicy, sumowanie elementów tablicy, wstawianie nowego elementu do tablicy, usuwanie elementu z tablicy

2

Lekcja 39,40: Znajdowanie największego i najmniejszego elementu tablicy

  • Algorytm znajdowania min i max, złożoność obliczeniowa, program w C++
  • Algorytm jednoczesnego znajdowania min i max, złożoność obliczeniowa, program w C++, metoda dziel i zwyciężaj

2

Lekcja 41,42: Przeszukiwanie liniowe i liniowe z wartownikiem

  • Algorytm wyszukiwania liniowego, złożoność obliczeniowa, program w C++
  • Algorytm wyszukiwania z wartownikiem, złożoność obliczeniowa, program w C++
  • Wyszukiwanie różnych danych w zbiorach

2

Lekcja 43,44: Wyszukiwanie binarne i interpolacyjne

  • Zbiory uporządkowane
  • Algorytm wyszukiwania binarnego, złożoność obliczeniowa, program w C++
  • Algorytm wyszukiwania interpolacyjnego, złożoność obliczeniowa, program w C++

2

Lekcja 45,46: Wyszukiwanie k-tego największego elementu w zbiorze

  • Algorytm naiwny, program C++
  • Algorytm wyszukiwania szybkiego, program C++
  • Pojęcie mediany zbioru

2

Lekcja 47,48: Wyszukiwanie najczęstszej wartości, wyszukiwanie lidera

  • Algorytm wyszukiwania wartości najczęstszej, program C++
  • Pojęcie lidera – dominanta zbioru
  • Algorytm wyszukiwania lidera, program C++

2

Lekcja 49,50: Liczby pierwsze

  • Pojęcie liczby pierwszej
  • Dowód Euklidesa na nieskończoność zbioru liczb pierwszych
  • Generacja liczb pierwszych metodą próbnych dzieleń, program w C++
  • Ulepszenie metody generacji liczb pierwszych, program w C++
  • Algorytm sita Eratostenesa, program w C++
  • Porównanie obu metod generacji liczb pierwszych

2

Lekcja 51,52: Rozkład liczby naturalnej na czynniki pierwsze

  • Algorytm rozkładu na czynniki pierwsze metodą próbnych dzieleń, program w C++
  • Algorytm Fermata rozkładu na czynniki pierwsze, wersja rekurencyjna, program w C++
  • Porównanie obu metod

2

Lekcja 53,54,55,56: Znaki i łańcuchy znakowe

  • Typ char
  • Łańcuch znaków w C++, tablica znakowa
  • Zliczanie słów w tekście, program w C++
  • Wyszukiwanie wzorca w tekście, algorytm naiwny, program C++
  • Test na palindrom, program w C++
  • Sprawdzanie, czy dane słowa są anagramami, program C++
  • Gra w odgadywanie wyrazów

4

Lekcja 57,58,59,60: Liczby pseudolosowe

  • Pojęcie liczby losowej i pseudolosowej
  • Zastosowania liczb losowych przy symulacjach procesów zachodzących w świecie rzeczywistym
  • Liniowe generatory liczb pseudolosowych, własności, definiowanie generatorów LCG, pojęcie ziarna pseudolosowego i jego wpływ na ciąg generowanych liczb, okres generatora.
  • Wewnętrzny generator pseudolosowy w języku C++, funkcje srand() i rand()
  • Generowanie liczb pseudolosowych w określonym zakresie – program rzutów kością
  • Generowanie liczb pseudolosowych bez powtórzeń, pseudolosowe mieszanie tablicy,  program totolotek, rozdawanie kart
  • Rzeczywiste liczby pseudolosowe

4

Powtórzenie i utrwalenie materiału, klasyfikacja semestralna

 

Semestr II

Temat i  treść lekcji L. godz.

Lekcja 61: Szyfr Cezara

  • Pojęcie szyfru i cel stosowania
  • Algorytm szyfrowania szyfrem Cezara, program C++

1

Lekcja 62: Szyfr przestawieniowy

  • Zasada szyfru przestawieniowego
  • Algorytm szyfrowania szyfrem przestawieniowym, program C++

1

Lekcja 63,64: Szyfr podstawieniowy

  • Niemiecka maszyna Enigma
  • Szyfry podstawieniowy o pseudolosowym alfabecie, pojęcie klucza
  • Dobór odpowiedniego generatora LCG
  • Algorytm szyfrowania szyfrem podstawieniowym, program C++

2

Lekcja 65,66: Szyfrowanie niesymetryczne RSA

  • Wady szyfrów symetrycznych
  • Niesymetryczny system szyfrowania RSA
  • Tworzenie klucza prywatnego i publicznego
  • Zasada szyfrowania i rozszyfrowywania RSA
  • Ćwiczenia z prostą aplikacją RSA w języku C++
  • Zastosowania RSA: bezpieczne połączenie internetowe, podpis elektroniczny dokumentów

2

Lekcja 67,68: Obliczanie pierwiastka, szybkie obliczanie potęg

  • Pierwiastek całkowity, algorytm, program C++
  • Pierwiastek rzeczywisty, wzór Newtona i jego zbieżność, algorytm, program C++
  • Obliczanie potęgi przez rozkład wykładnika na ciąg potęg liczby 2, algorytm, program C++

2

Lekcja 69,70: Miejsca zerowe funkcji

  • Definicja miejsca zerowego
  • Warunki numerycznego obliczania miejsc zerowych funkcji
  • Metoda połowienia – bisekcji, algorytm, program C++
  • Metoda fałszywej prostej – regula falsi, algorytm, program C++

2

Lekcja 71,72: Wzór Herona

  • Obliczanie pola trójkąta wzorem Herona
  • Obliczanie pola trójkąta zadanego współrzędnymi wierzchołków
  • Badanie warunków na: trójkąt prostokątny, równoboczny, równoramienny i różnoramienny.

2

Lekcja 73,74: Schemat Hornera

  • Obliczanie wartości wielomianu – analiza złożoności obliczeniowej
  • Wprowadzenie wzoru Hornera – analiza złożoności obliczeniowej
  • Algorytm i program C++
  • Zastosowanie wzoru Hornera – obliczanie wartości liczb pozycyjnych przy różnych podstawach, algorytm, program C++

2

Lekcja 75,76,77,78: Sortowanie

  • Definicja problemu sortowania
  • Rodzaje uporządkowań zbiorów
  • Sortowanie bąbelkowe, algorytm, program C++
  • Sortowanie przez wybór, algorytm, program C++
  • Sortowanie przez wstawianie, algorytm, program C++
  • Analiza złożoności algorytmów sortujących

4

Lekcja 79,80: Sortowanie przez scalanie i sortowanie szybkie

  • Algorytm sortowania przez scalanie, program C++, analiza złożoności
  • Algorytm sortowania szybkiego, program C++, analiza złożoności – degradacja złożoności algorytmu do O(n2)

2

Lekcja 81,82: Sortowanie stogowe

  • Pojęcie stogu
  • Budowa stogu, algorytm, program C++
  • Rozbiór stogu, algorytm, program C++
  • Sortowanie stogowe, algorytm, program C++

2

Lekcja 83,84: Sortowanie kubełkowe i przez zliczanie

  • Ograniczenia algorytmów sortujących
  • Sortowanie w czasie O(n)
  • Sortowanie kubełkowe, algorytm, program C++
  • Sortowanie przez zliczanie, algorytm, program C++

2

Lekcja 85,86: Algorytmy geometryczne

  • Położenie punktów względem prostej
  • Przynależność punktu do odcinka
  • Znajdowanie punktu przecięcia się dwóch odcinków

2

Lekcje 87,88: Stos i ONP

  • Pojęcie stosu
  • Tworzenie stosu w tablicy, operacje pop i push
  • Algorytm zamiany wyrażenia arytmetycznego na ONP
  • Algorytm obliczania wartości wyrażenia ONP

2

Lekcje 89,90: Kompresja danych

  • Pojęcie kompresji stratnej i bezstratnej – pliki JPG, GIF
  • Algorytm RLE, program C++
  • Kody bezprzystankowe – kod Huffmana

2

Lekcje 91,92: Programowanie obiektowe

  • Pojęcie klasy, funkcje składowe, części prywatne i publiczne, konstruktor i destruktor
  • Definiowanie klasy
  • Tworzenie zmiennej typu klasa

2

Lekcja 93,94: Struktury dynamiczne

  • Pojęcie wskaźnika
  • Przydział pamięci operatorem new i zwalnianie poleceniem delete
  • Tablica jako wskaźnik i wskaźnik jako tablica

2

Lekcja 95,96: Lista jednokierunkowa

  • Rodzaje list
  • Budowa elementu listy
  • Klasa list
  • Dodawanie elementu do listy
  • Usuwanie elementu z listy
  • Przechodzenie listy
  • Wyszukiwanie danych na liście

2

Lekcja 97,98: Zastosowania list

  • Stos
  • Kolejka

2

Lekcja 99,100: Proste algorytmy na listach

  • Odwracanie listy
  • Usuwanie duplikatów
  • Sortowanie list

2

Lekcja 101,102,103,104: Drzewa

  • Rodzaje drzew
  • Drzewo binarne zrównoważone – reprezentacja w tablicy
  • Drzewo binarne – reprezentacja dynamiczna
  • Przechodzenie drzewa, metody DFS i BFS

4

Lekcja 105,106,107,108: Grafy

  • Rodzaje grafów: skierowane, nieskierowane, ważone
  • Sposoby reprezentacji grafów: macierz sąsiedztwa, macierz incydencji, listy sąsiedztwa
  • Przechodzenie grafu: metody DFS i BFS
  • Zastosowania metod DFS i BFS (sprawdzanie spójności grafu, wyszukiwanie najkrótszej ścieżki)

4

Lekcja 109,110: Metody zachłanne

  • Definicja metody zachłannej
  • Wydawanie reszty
  • Problem plecakowy

2

Lekcja 111,112,113,114: Algorytmy rekurencyjne

  • Rekurencja a iteracja
  • Rekurencyjne rozwiązywanie problemu wież Hanoi
  • Algorytm rekurencyjny z wycofywaniem się
  • Rekurencyjne rozwiązywanie problemu n hetmanów

4

Lekcja 115,116: Obliczanie całek oznaczonych

  • Pojęcie całki oznaczonej jako pola ze znakiem pod wykresem funkcji.
  • Metoda prostokątów, algorytm, program C++
  • Metoda trapezów, algorytm, program C++
  • Porównanie obu metod.

2

Lekcja 117,118,119,120: Projekt wybranej aplikacji

Uczniowie realizują w grupach projekt aplikacji rozwiązującej określony problem. Projekt jest na koniec prezentowany i oceniany.

4

Klasyfikacja końcoworoczna

 

 

Kryteria ocen

Wymagane umiejętności na poszczególne oceny szkolne

Zasady działania komputera

dopuszczający

dostateczny

dobry

bardzo dobry

celujący

Określa następujące po-jęcia: bit, bajt. Zna pojęcie systemu pozy­cyjne-go. Wymienia części składowe zestawu komputerowego, podaje ich parametry i przezna­czenie. Rozróżnia ro­dzaje pamięci kompu­tera, określa ich własno­ści i przeznaczenie. Wie, co to jest system opera­cyjny, i korzysta z jego podstawowych funkcji. Wykonuje podstawowe operacje na plikach i fol-derach.

Wie, co to jest system binarny, i potrafi doko­nać zamiany liczby z systemu dziesiętnego na binarny i odwrotnie. Potrafi sklasyfikować środki (urządzenia) i narzędzia (oprogramo­wanie) technologii informacyjnej. Wie, jak działa komputer. Wyja­śnia rolę procesora. Rozumie organizację pamięci komputero­wych. Potrafi omówić funkcje systemu opera­cyjnego. Zna zasady ochrony plików. Potrafi nadać podstawowe atrybuty plikom, jak też wyszukać poszczególne pliki.

Potrafi wykonać działa­nia arytmetyczne na liczbach binarnych (dodawanie i odejmowa­nie). Zna system szes­nastkowy i potrafi wy­konać konwersję liczb binarnych na liczby w systemie szesnastkowym i odwrotnie. Analizuje model logiczny kompu­tera. Wie, co to jest kod ASCII. Potrafi wymienić rodzaje aktualnie uży­wanych komputerów. Zna metody wyszukiwa­nia plików.

Potrafi omówić dokład­nie działanie procesora. Potrafi wykonać do­wolną konwersję pomię­dzy systemem dziesięt­nym, dwójkowym i szesnastkowym. Zna sposób zapisu liczby całkowitej i rzeczywistej (zmiennoprzecinkowej). Umie wymienić przy­najmniej dwa systemy operacyjne i podać ich najważniejsze funkcje. Zna zaawansowane metody wyszukiwania i odzyskiwania plików. Zna przynajmniej jeden algorytm szyfrowania danych. Potrafi zaszy­frować i odszyfrować prosty tekst.

Zna operacje logiczne na liczbach binarnych i przesunięcia bitowe. Potrafi zapisać w języku programowania wyso­kiego poziomu algorytm konwersji liczb z dowol­nego systemu pozycyj­nego na inny. Wykonuje sprawnie operacje na liczbach zapisanych w różnych systemach pozycyjnych. Potrafi odzyskać utracony plik, stosując zaawansowane metody. Potrafi omówić różne systemy opera­cyjne, wskazać ich najważniejsze funkcje. Samodzielnie wyszukuje informacje na temat kompresji i szyfrowania danych. Zna kilka spo­sobów szyfrowania informacji. Potrafi zapisać algorytm szy­frowania w postaci programu. Zna działanie algorytmu kompresji.

Rozwiązywanie problemów algorytmicznych

dopuszczający

dostateczny

dobry

bardzo dobry

celujący

Wie, co to jest algorytm. Określa dane do zadania oraz wyniki. Zna podstawowe zasady graficznego prezentowania algorytmów: podstawowe rodzaje bloków, ich przeznaczenie i sposoby umieszczania w schemacie blokowym. Potrafi narysować (odręcznie) schemat blokowy algorytmu liniowego.

Wymienia przykłady czynności i działań w życiu codziennym oraz zadań szkolnych, które uważa się za algorytmy. Zna pojęcie specyfikacji zadania. Zna wybrane sposoby prezentacji algorytmów. Przedstawia algorytm w postaci listy kroków. Tworzy schemat blokowy algorytmu z warunkiem prostym i pętlą. Podczas rysowania schematów blokowych potrafi wykorzystać Autokształty z edytora tekstu. Korzysta z programu edukacyjnego do symulacji działania algorytmu skonstruowanego w postaci schematu blokowego.

Określa zależności między problemem, algorytmem a programem komputerowym. Potrafi odpowiedzieć na pytanie, czy istnieją działania, które nie mają cech algorytmów. Przedstawia dokładną specyfikację dowolnego zadania. Zna znaczenie i działanie instrukcji symbolicznego języka programowania (pseudojęzyka). Potrafi zapisać algorytm z warunkami zagnieżdżonymi i pętlą w wybranej postaci. Potrafi skonstruować algorytm z warunkami zagnieżdżonymi i pętlą za pomocą programu edukacyjnego.

Zapisuje dowolny algorytm w wybranej przez siebie postaci (notacji), m.in. w pseudojęzyku. Zapisuje algorytmy z pętlą zagnieżdżoną. Potrafi przeprowadzić szczegółową analizę poprawności konstrukcji schematu blokowego. Analizuje działanie algorytmu dla przykładowych danych. Stosuje swobodnie oprogramowanie edukacyjne do graficznej prezentacji i analizy algorytmów.

Przestrzega zasad zapisu algorytmów w zadanej postaci (notacji). Potrafi trafnie dobrać do algorytmu sposób prezentacji. Stosuje poznane metody prezentacji algorytmów w opisie zadań (problemów) z innych przedmiotów szkolnych oraz różnych dziedzin życia. Potrafi samodzielnie zapoznać się z nowym programem edukacyjnym przeznaczonym do konstrukcji schematów blokowych. Potrafi zaproponować własny pseudojęzyk.

Techniki algorytmiczne i algorytmy klasyczne

dopuszczający

dostateczny

dobry

bardzo dobry

celujący

Określa sytuacje warunkowe. Podaje przykłady zadań, w których występują sytuacje warunkowe. Wie, na czym polega powtarzanie tych samych operacji. Potrafi omówić, na przykładzie, algorytm znajdowania najmniejszego z trzech elementów.

Potrafi odróżnić algorytm liniowy od algorytmu z warunkami (z rozgałęzieniami). Zna pojęcie iteracji i rozumie pojęcie algorytmu iteracyjnego. Podaje ich przykłady. Wie, od czego zależy liczba powtórzeń.

Potrafi omówić algorytm porządkowania elementów (metodą przez wybór) na praktycznym przykładzie, np. wybierając najwyższego ucznia z grupy. Omawia i analizuje wybrane techniki sortowania w postaci gotowych schematów blokowych, skonstruowanych w programie edukacyjnym.

Analizuje algorytmy, w których występują iteracje. Zna sposoby zakończenia iteracji. Określa kroki iteracji. Potrafi zapisać w wybranej notacji np. algorytm sumowania n liczb, algorytm obliczania silni, znajdowania minimum w ciągu n liczb, algorytm rozwiązywania równania liniowego.

Zna iteracyjną postać algorytmu Euklidesa. Zna przynajmniej dwie techniki sortowania, np. bąbelkowe i przez wybór. Określa problemy, w których występuje rekurencja i podaje przykłady „zjawisk rekurencyjnych” – wziętych z życia i zadań szkolnych. Zna rekurencyjną realizację wybranego algorytmu, np. silni, liczb Fibonacciego, NWD.

Zna metodę „dziel i zwyciężaj” , algorytm generowania liczb Fibonacciego, schemat Hornera. Omawia ich iteracyjną realizację i potrafi przedstawić jeden z nich w wybranej notacji. Zna inne algorytmy sortowania, np. kubełkowe, przez wstawianie. Zna przynajmniej jeden algorytm numeryczny, np. obliczanie wartości pierwiastka kwadratowego.

Wskazuje różnicę między rekurencją a iteracją. Zna rekurencyjną realizację wybranych algorytmów, np. silnię i algorytm Euklidesa. Potrafi zamienić algorytm zapisany iteracyjnie na postać rekurencyjną.

 

Rozumie dokładnie technikę rekurencji (znaczenie stosu). Potrafi ocenić, kiedy warto stosować iterację, a kiedy rekurencję. Zna trudniejsze algorytmy, np. wieże Hanoi, problem ośmiu hetmanów.

Zna inne techniki sortowania, np. sortowanie przez scalanie ciągów i metodę szybką. Potrafi zapisać je w różnych notacjach (również w języku programowania wysokiego poziomu). Zna inne algorytmy numeryczne, np. wyznaczanie miejsca zerowego funkcji. Korzysta samodzielnie z dodatkowej literatury.

Analiza algorytmów

dopuszczający

dostateczny

dobry

bardzo dobry

celujący

Potrafi zanalizować przebieg algorytmu dla przykładowych danych i ocenić w ten sposób jego poprawność.

Potrafi ocenić poprawność działania algorytmu i jego zgodność ze specyfikacją. Określa liczbę prostych działań zawartych w algorytmie.

Rozumie, co to jest złożoność algorytmu i potrafi określić liczbę operacji wykonywanych na elementach zbioru w wybranym algorytmie sortowania.

Potrafi porównać złożoność różnych algorytmów tego samego zadania dla tych samych danych. Wie, kiedy algorytm jest uniwersalny.

Ocenia złożoność czasową i pamięciową algorytmu. Zna odpowiednie wzory.

Zasady programowania w języku C++

dopuszczający

dostateczny

dobry

bardzo dobry

celujący

Zna klasyfikację języków programowania. Zna ogólną budowę programu w języku C++ i najważniejsze elementy języka – słowa kluczowe, instrukcje, wyrażenia, zasady składni. Potrafi zrealizować prosty algorytm liniowy w języku C++; potrafi skompilować i uruchomić gotowy program.

Zapisuje program w czytelnej postaci – stosuje wcięcia, komentarze. Rozumie pojęcia: implementacja, kompilacja, uruchomienie, testowanie. Rozumie znaczenie i działanie podstawowych instrukcji wybranego języka C++. Rozróżnia i poprawia błędy kompilacji i błędy wykonania. Potrafi zrealizować algorytmy iteracyjne w języku C++.

Zna podstawowe zasady poprawnego programowania; testuje tworzone programy; wie, jak uniknąć problemów, takich jak np. zapętlenie się programu.

Potrafi prezentować złożone algorytmy (z podprogramami) w C++. Zna rekurencyjne realizacje prostych algorytmów. Rozumie i stosuje zasady programowania strukturalnego. Wie, na czym polega różnica pomiędzy przekazywaniem parametrów przez referencję i przez wartość w funkcjach C++. Wie, jakie znaczenie ma zasięg działania zmiennej. Rozumie zasady postępowania przy rozwiązywaniu problemu metodą zstępującą.

Zna zasady działania wybranych algorytmów sortowania.

Wie, jaka jest różnica między językiem wysokiego poziomu a językiem maszynowym; potrafi określić rolę procesora i pamięci operacyjnej w działaniu programów. Potrafi realizować nawet bardzo złożone algorytmy. Potrafi prezentować algorytmy rekurencyjne w postaci programu; potrafi zamienić rozwiązanie iteracyjne algorytmu na rekurencyjne. Zapisuje w postaci programu wybrane algorytmy sortowania.

Opracowuje złożony program w kilkuosobowej grupie – umie podzielić zadania, ustalić sposoby przekazywania danych pomiędzy procedurami.

Ocenia efektywność działania programu. Wie, na czym polega programowanie obiektowe i zdarzeniowe. Potrafi stosować techniki programowania dynamicznego lub programowania obiektowego. Zna i rozumie podobieństwa i różnice w strukturze programu zapisanego w różnych językach programowania – w deklaracji zmiennych i procedur, w składni i zasadach działania poszczególnych procedur. Sprawnie korzysta z dodatkowej, fachowej literatury.

Dobór struktur danych do rozwiązywanego problemu

dopuszczający

dostateczny

dobry

bardzo dobry

celujący

Wymienia przykłady prostych struktur danych. Potrafi zadeklarować zmienne typu liczbowego (całkowite, zmiennoprzecinkowe) i stosować je w zadaniach.

Wie, czym jest zmienna w programie i co oznacza przypisanie jej konkretnej wartości. Rozróżnia struktury danych: proste i złożone. Podaje przykłady. Deklaruje typy złożone.

Potrafi zastosować łańcuchowy i tablicowy typ danych w zadaniach.

Rozumie, na czym polega dobór struktur danych do algorytmu. Potrafi zastosować strukturalny typ danych.

Zna dynamiczne struktury danych. Potrafi zastosować zmienne typu wskaźnikowego w zadaniach. Zna struktury listowe, np. stos, kolejkę, listę, drzewo, graf. Potrafi je wykorzystać przy rozwiązywaniu określonych problemów, Rozumie i potrafi zastosować klasy obiektowe języka C++

 

   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe