Jak uczę programowania?
description
Transcript of Jak uczę programowania?
Jak uczę programowania?
Joanna ŚmigielskaXIV LO im. Stanisława StaszicaW 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
o Klasy nie informatyczne – 18 godzin nauki programowania w 1 semestrze klasy pierwszej
o Zachęcić do dalszego uczenia się samodzielnego lub na kółkach
o Rozpocząć przygotowanie do matury
nie przygotowuję do olimpiady
Język
C++ (C z wybranymi elementami C++)o Podstawowe typy danych:
int, float, char, klasa stringo Typy złożone: tabliceo Instrukcje:
warunkowa: ifiteracyjne: for, while, do while
o 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ówprzykł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
o Opis zadanieo Specyfikacja wejściao Specyfikacja wyjściao Przykład
Zadania na podstawy programowania – na co zwracać uwagę uczniom
Zrozumienie treści i problemu Czytanie danych i wypisanie wyniku
zgodne ze specyfikacjąo Przekierowanie wejścia / wyjścia
podczas testowaniao Działanie automatycznej
sprawdzarki
Zadania na podstawy programowania – jakie?
o 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?
o 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 = NNPmatematyka.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.