150 likes | 308 Views
Jak uczę programowania?. Joanna Śmigielska XIV LO im. Stanisława Staszica W Warszawie. O szkole. Profile i rozkład godzin w 3_letnim cyklu kształcenia: Matematyczno-informatyczny 3 + 2 + 3 Matematyczno-fizyczny 1 + 1 + 1 Matematyczny 1 + 1 +1. Grupa i cele.
E N D
Jak uczę programowania? Joanna Śmigielska XIV LO im. Stanisława Staszica W Warszawie
O szkole Profile i rozkład godzin w 3_letnim cyklu kształcenia: • Matematyczno-informatyczny 3 + 2 + 3 • Matematyczno-fizyczny 1 + 1 + 1 • Matematyczny 1 + 1 +1
Grupa i cele • Klasy nie informatyczne – 18 godzin nauki programowania w 1 semestrze klasy pierwszej • Zachęcić do dalszego uczenia się samodzielnego lub na kółkach • Rozpocząć przygotowanie do matury nie przygotowuję do olimpiady
Język C++ (C z wybranymi elementami C++) • Podstawowe typy danych:int, float, char, klasa string • Typy złożone: tablice • Instrukcje:warunkowa: ifiteracyjne: for, while, do while • Czytanie i wypisywanie danych strumieniami cin i cout zamiast printf i scanf
Na co zwracać uwagę? • Czytelność kodu • Znaczące nazwy zmiennych • Komentarze - przed ważnymi fragmentami programu, co przechowują ważne zmienne • Testowanie - wypisywanie częściowych wyników przykład programu ucznia - nominaly.cpp
Skąd biorę zadania na podstawy programowania • http://main.edu.pl/ • http://pl.spoj.pl/ • Mistrzostwa Wielkopolski w Programowaniu Zespołowym (zadania próbne) • Zadania z OIG I etap
Typowe zadanie • Opis zadanie • Specyfikacja wejścia • Specyfikacja wyjścia • Przykład
Zadania na podstawy programowania – na co zwracać uwagę uczniom • Zrozumienie treści i problemu • Czytanie danych i wypisanie wyniku zgodne ze specyfikacją • Przekierowanie wejścia / wyjścia podczas testowania • Działanie automatycznej sprawdzarki
Zadania na podstawy programowania – jakie? • Proste zadania, których jedyną trudnością jest zrozumienie treści, a rozwiązanie ogranicza się do elementarnych operacji np. odjęcia dwóch liczb Przykłady zadań i rozwiązań uczniów: jablka.pdf - jab.cppskladka.pdf - skl.cpp
Zadania na podstawy programowania – jakie? • Zadania, które po przeanalizowaniu na „kartce” redukują się do kilku przypadków np. dla podanego n znaleźć ostatnia cyfrę 2n lub znaleźć ostatnią cyfrę n! Przykład zadania i rozwiazania ucznia: autobusy.pdf - aut.cpp
Problemy algorytmiczne • Minimum, maksimum • Liczby pierwsze - sito Eratostenesa • Problem wyszukiwania – liniowe, binarne • Problem flagi holenderskiej • Problem sortowania – przez wybór, przez wstawianie, bąbelkowe
Dlaczego warto uczyć programować? • Programowanie to nie wiedza tajemna – pomaga rozwiązywać problemy • Algorytmika to nie bułka z masłem
Problem 1 Wykonano dodawanie, odejmowanie, mnożenie i dzielenie pewnych dwóch liczb naturalnych. Analizując zapis, w którym literą P oznaczona cyfrę parzystą, a literą N - nieparzystą, oraz wiedząc, że PP i NP po lewej stronie każdej równości to ta sama para liczb, znajdź te liczby. PP : NP = P PP + NP = PP PP - NP = NP PP * NP = NNP matematyka.cpp – rozwiązanie ucznia
Problem 2 Napisanie programu rozwiązującego proste łamigłówki sudoku to jest takie, do których rozwiązania wystarcza analiza pojedynczych kolumn, wierszy lub kwadratów. sudoku.cpp – rozwiązanie ucznia
Warto uczyć programowania na TI w klasach o profilach ścisłych.