Informatyka - klasa I

 

Cele wychowania

  1. Przygotowanie do świadomego wyboru kierunku i zakresu dalszego kształcenia informatycznego:

  2. Zdolność do samodzielnego korzystania z komputera dla realizacji części zadań edukacyjnych oraz innych celów poznawczych:

Cele kształcenia

  1. Przygotowanie do świadomego wyboru kierunku i zakresu dalszego kształcenia informatycznego:

  2. Zdolność do samodzielnego korzystania z komputera dla realizacji części zadań edukacyjnych oraz innych celów poznawczych:

Treści nauczania

  1. Metody rozwiązywania problemów algorytmicznych.

  2. Realizacja algorytmów w wybranym języku programowania.

  3. Zasady działania komputera i sieci komputerowych.

  4. Przetwarzanie danych w bazach danych.

  5. Wśród multimediów.

Rozkład materiału dla klasy I

Tematy główne i tematy lekcji w semestrze I Liczba
godzin
Stanowisko komputerowe
Lekcja 1
Temat: Organizacja zajęć w pracowni komputerowej
  • BHP w pracowni informatycznej.
  • Regulamin pracowni.
  • Wymagania programowe.
  • Organizacja zajęć.
  • Rozkład materiału.
  • Przydział stanowisk
1
Algorytmika i programowanie w języku C++
Lekcja 2
Temat: Wprowadzenie do informatyki
  • Czym zajmuje się informatyka jako dziedzina naukowa
  • Co to jest informacja
  • Jak komputery przetwarzają informację
  • Pojęcie bitu
  • Kody binarne
1
Lekcja 3-4
Temat: Język programowania C++
  • Klasyfikacja i rozwój języków programowania
  • Skąd pobrać narzędzia do programowania: Dev-C++ lub Borland C++ Builder 6.0
  • Pierwszy program
  • Na czym polega kompilacja - fazy kompilacji
  • Zbiory nagłówkowe - dyrektywy preprocesora
  • Standardowe wyjście - cout
  • Pojęcie zmiennej, reguły tworzenia nazw
  • Deklaracja zmiennych całkowitych - int
  • Tworzenie przykładowego programu
2
Lekcja 5-6
Temat: Struktury danych - liczba całkowita bez znaku
  • Systemy pozycyjne zapisu liczb - rys historyczny
  • Od systemu dziesiętnego do dwójkowego
  • Obliczanie wartości liczby dwójkowej
  • Obliczanie zakresu liczby dwójkowej
  • Algorytmy przeliczania liczby dziesiętnej na dwójkową
  • Deklaracja zmiennych całkowitych bez znaku - unsigned int
  • Tworzenie przykładowego programu
2
Lekcja 7-8
Temat: System ósemkowy i szesnastkowy
  • Obliczanie wartości liczby w systemie ósemkowym i szesnastkowym
  • Przeliczanie liczb dziesiętnych na ósemkowe i szesnastkowe - uogólnienie algorytmu podanego na wcześniejszej lekcji na dowolny system pozycyjny
  • Konwersje dwójkowo ósemkowe i dwójkowo szesnastkowe
  • Pojęcie stałej w programie
  • Zapis stałych ósemkowych i szesnastkowych
  • Tworzenie przykładowego programu
2
Lekcja 9
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 2-8

1
Lekcja 10
Temat: Algorytmy
  • Pojęcie algorytmu
  • Własności algorytmu
  • Specyfikacja algorytmu
  • Sposoby przedstawiania algorytmów - opis słowny, lista kroków, schemat blokowy, program w języku C++
1
Lekcja 11-12
Temat: Struktury danych - liczba całkowita ze znakiem
  • System U2
  • Obliczanie wartości liczby w systemie U2
  • Algorytmy przeliczania liczby dziesiętnej na U2
  • Zakres liczb U2
  • Deklaracja zmiennych całkowitych ze znakiem - int
  • Tworzenie przykładowych programów
2
Lekcja 13-14
Temat: Algorytmy z rozgałęzieniami
  • Algorytm liniowy i algorytm z rozgałęzieniami
  • Instrukcje warunkowe if oraz switch
  • Przykładowe algorytmy: znajdowanie większej z dwóch liczb, porządkowanie dwóch, trzech liczb, określanie znaku liczby
  • Prezentacja algorytmu w postaci drzewa decyzyjnego
2
Lekcja 15-16-17
Temat: Pętle warunkowe
  • Co to jest pętla warunkowa
  • Jak zapisujemy pętle za pomocą listy kroków i schematu blokowego
  • Instrukcje while, do while, break, continue
  • Pętla nieskończona i jej zastosowania
  • Przykładowe programy wykorzystujące pętle warunkowe
  • Algorytm Euklidesa - NWP
3
Lekcja 18-19
Temat: Pętla iteracyjna
  • Pojęcie iteracji
  • Jak zapisujemy pętlę iteracyjną za pomocą listy kroków i schematu blokowego
  • Instrukcja for
  • Przykładowe programy wykorzystujące pętle iteracyjne - np. rysowanie kwadratów, drzewek, obliczanie wyrazów ciągów, itp.
2
Lekcja 20
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 10-19

1
Lekcja 21-22
Temat: Funkcje
  • Pojęcie funkcji jako fragmentu programu, który może być wielokrotnie wykorzystywany w programie
  • Sposoby definiowania funkcji w języku C++
  • Argumenty funkcji
  • Tworzenie przykładowych programów z funkcjami
2
Lekcja 23-24-25-26
Temat: Rekurencja
  • Pojęcie rekurencji, warunek zakończenia rekurencji
  • Ciągi rekurencyjne
  • Definicja ciągu rekurencyjnego
  • Pojęcie złożoności algorytmu - złożoność pesymistyczna, optymistyczna i średnia
  • Notacja omikron
  • Ciąg Fibbonacciego w wersji rekurencyjnej - analiza złożoności obliczeniowej
  • Ciąg Fibbonacciego w wersji iteracyjnej - analiza złożoności obliczeniowej
4
Lekcja 27-28-29-30
Temat: Liczby pierwsze
  • Pojęcie liczby pierwszej - twierdzenie Euklidesa
  • Generacja liczb pierwszych metodą naiwną
  • Optymalizacja algorytmu naiwnego
  • Tablice i sposoby ich deklaracji w języku C++
  • Sito Eratostenesa
4
Lekcja 31
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 21-30

1
Lekcja 32-33-34
Temat: Powtórzenie i utrwalenie materiału I semestru
  • lekcje do dyspozycji nauczyciela, sprawdziany uzupełniające, klasyfikacja
3

 

Tematy główne i tematy lekcji w semestrze II Liczba
godzin
Algorytmika i programowanie w języku C++
Lekcja 35-36-37-38
Temat: Liczby pseudolosowe
  • Pojęcie liczby losowej i pseudolosowej - zastosowania w symulacjach procesów ze świata rzeczywistego
  • Liniowe generatory liczb pseudolosowych - sposoby ich definiowania
  • Wewnętrzny generator liczb pseudolosowych w języku C++
  • Procedura srand() oraz funkcja rand()
  • Generacja liczb pseudolosowych bez powtórzeń - 2 metody
  • Program Multi-lotka
4
Lekcja 39-40
Temat: Struktury danych - liczby rzeczywiste
  • Pojęcie liczby rzeczywistej
  • Przykładowy system zmiennoprzecinkowy
  • Zakres i precyzja liczb zmiennoprzecinkowych
  • Deklaracja zmiennych rzeczywistych - float, double i long double
  • Przykładowy program z liczbami rzeczywistymi
  • Zasady porównywania liczb zmiennoprzecinkowych
2
Lekcja 41-42
Temat: Algorytm rozwiązywania równania kwadratowego
  • Specyfikacja danych dla algorytmu
  • Zapis algorytmu w postaci listy kroków, schematu blokowego
  • Funkcja sqrt() - plik nagłówkowy math
  • Tworzenie programu rozwiązywania równania kwadratowego
2
Lekcja 43-44
Temat: Badanie trójkąta - wzór Herona
  • Rozwiązywanie zadania o obliczającego pole i obwód trójkąta o wierzchołkach zadanych w postaci współrzędnych punktów na płaszczyźnie oraz określającego rodzaj trójkąta - równoboczny, różnoboczny, równoramienny, prostokątny itp.
2
Lekcja 45
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 35-44

1
Lekcja 46
Temat: Algorytm obliczania pierwiastka kwadratowego
  • Wzór obliczeniowy, warunek zakończenia obliczeń
  • Zapis algorytmu w postaci listy kroków, schematu blokowego
  • Tworzenie programu
1
Lekcja 47-48
Temat: Algorytm bisekcji
  • Definicja miejsca zerowego funkcji
  • Zasada bisekcji
  • Zapis algorytmu w postaci listy kroków oraz schematu blokowego
  • Tworzenie programu
2
Lekcja 49-50
Temat: Algorytm Regula Falsi
  • Wyprowadzenie wzoru na miejsce zerowe
  • Analiza algorytmu
  • Zapis algorytmu w postaci listy kroków oraz schematu blokowego
  • Tworzenie programu
2
Lekcja 51-52
Temat: Schemat Hornera
  • Obliczanie wartości wielomianu - analiza złożoności obliczeniowej
  • Wyprowadzenie schematu Hornera - analiza złożoności obliczeniowej
  • Zapis algorytmu w postaci listy kroków oraz schematu blokowego
  • Tworzenie programu
2
Lekcja 53
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 46-52

1
Lekcja 54-55-56
Temat: Wyszukiwanie informacji
  • Algorytm N wyszukiwania danych
  • Wyszukiwanie z wartownikiem
  • Jednoczesne wyszukiwanie elementu największego i najmniejszego - zasada dziel i zwyciężaj - analiza złożoności obliczeniowej
3
Lekcja 57-58-59-60
Temat: Sortowanie - algorytm Bubble Sort, Insertion Sort
  • Definicja problemu sortowania
  • Określenie porządku w zbiorze
  • Algorytm sortowania bąbelkowego, analiza złożoności, ulepszenia
  • Algorytm sortowania przez wstawianie, analiza złożoności obliczeniowej
4
Lekcja 61-62
Temat: Sortowanie przez scalanie
  • Szybkie algorytmy sortujące
  • Zasada scalania zbiorów uporządkowanych
  • Algorytm sortowania przez scalanie - analiza złożoności obliczeniowej
2
Lekcja 63
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 54-62

1
Lekcja 64-65-66
Temat: Szyfrowanie danych - szyfr Cezara i szyfr podstawieniowy
  • Zasada szyfrowania informacji
  • Szyfr Cezara - algorytm oraz działająca aplikacja
  • Szyfry o pseudolosowym odstępie - algorytm oraz działająca aplikacja
3
Lekcja 67-68
Temat: Szyfr niesymetryczny RSA
  • Wady szyfrów symetrycznych
  • Algorytm RSA - generacja kluczy, szyfrowanie, rozszyfrowywanie
  • Przykładowe zastosowania szyfrów rodziny RSA - bezpieczne połączenia internetowe, SSL, bezpieczna poczta, usługi bankowe, podpis elektroniczny
2
Lekcja 69
Temat: Test sprawdzający

Materiał testu obejmuje lekcje 64-68

1
Lekcja 70-71-72-73-74
  • Lekcje do dyspozycji nauczyciela - powtórzenie materiału, utrwalenie wiadomości, uzupełnienia, sytuacje losowe (wycieczki, dni wolne itp).
5

 

Kryteria ocen

Poniżej znajdują się kryteria, które musi spełnić uczeń, aby otrzymać daną ocenę z informatyki w klasie I. Pamiętaj jednakże, że podane kryteria są jedynie elementem wyjściowym przy ustalaniu oceny, o której decyduje również twoja aktywność w czasie CAŁEGO roku szkolnego i zaangażowanie w naukę przedmiotu.

Wymagania na poszczególne oceny szkolne
1. Metody rozwiązywania problemów algorytmicznych
dopuszczający dostateczny dobry bardzo dobry celujący
1.1. Sposoby prezentacji algorytmów
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 (w stopniu podstawowym) 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 (postać instrukcji i zasady składni).
1.2. Przegląd technik algorytmicznych i algorytmów klasycznych
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ą powtórzenia (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.
Zna metodę „dziel i zwyciężaj” , algorytm generowania liczb Fibbonacciego, 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. algorytm trwałego małżeństwa, 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.
1.3. Elementy analizy algorytmów
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.
2. Realizacja algorytmów w wybranym języku programowania
dopuszczający dostateczny dobry bardzo dobry celujący
2.1. Zasady programowania
Zna klasyfikację języków programowania. Zna ogólną budowę programu i najważniejsze elementy języka – słowa kluczowe, instrukcje, wyrażenia, zasady składni. Potrafi zrealizować prosty algorytm liniowy w języku wysokiego poziomu; 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 programowania wysokiego poziomu. Rozróżnia i poprawia błędy kompilacji i błędy wykonania. Potrafi zrealizować algorytmy iteracyjne w języku wysokiego poziomu.
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 wybranym języku programowania. Zna rekurencyjne realizacje prostych algorytmów. Rozumie i stosuje zasady programowania strukturalnego. Wie, na czym polega różnica pomiędzy przekazywaniem parametrów przez zmienną i przez wartość w procedurach. 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. Zna podstawowe procedury graficzne, potrafi narysować na ekranie wykres funkcji i podstawowe figury geometryczne.
Wie, jaka jest różnica między językiem wysokiego poziomu a językiem wewnętrznym; potrafi określić rolę procesora i pamięci operacyjnej w działaniu programów. Potrafi realizować nawet bardzo złożone algorytmy, stosować procedury graficzne w realizacji skomplikowanych zadań – np. tworzyć własne animacje. 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. Zabezpiecza tworzone programy przed wprowadzeniem przez użytkownika błędnych danych.
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.
2.2. Dobór struktur danych do rozwiązywanego problemu
Wymienia przykłady prostych struktur danych. Potrafi zadeklarować zmienne typu liczbowego (całkowite, rzeczywiste) 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ć rekordowy typ danych. Zna dynamiczne struktury danych. Potrafi zastosować zmienne typu wskaźnikowego w zadaniach. Zna struktury listowe, np. stos, kolejkę, listę. Rozumie i potrafi zastosować typ obiektowy.

 


   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