Jak zbudowany jest arkusz praktyczny INF.03: polecenie otwierające, konto Egzamin, archiwum ZIP, folder z numerem PESEL, pięć ocenianych rezultatów, cztery bloki zadania w 150 minutach, nazwy plików i zrzuty ekranu. Lekcja 13.1 kursu INF.03.
Po tej lekcji umiesz rozplanować 150 minut egzaminu praktycznego i wiesz, co musi znaleźć się w folderze z wynikami, żeby wszystkie pięć ocenianych rezultatów miało z czego być ocenione. Zadanie ma za każdym razem ten sam szkielet: to samo polecenie otwierające, ten sam zestaw czterech bloków, te same nazwy plików. Kolejne lekcje działu wchodzą w te bloki po kolei: baza i kwerendy, strona i styl, skrypty PHP i JavaScript. Polecenie, konto Egzamin i folder z numerem PESEL
Arkusz otwiera jedno zdanie i od lat wygląda ono tak samo. W zadaniu z informatora CKE brzmi: „Wykonaj aplikację internetową biura turystycznego, wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię." W przykładowym arkuszu opublikowanym przez CKE zmienia się wyłącznie temat: „Wykonaj aplikację internetową portalu dla wędkarzy, wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię." Zmienna jest branża, stałe są narzędzia: pakiet XAMPP i edytor kolorujący składnię, czyli to, co akurat stoi na stanowisku (Notepad++, Visual Studio Code, Sublime Text).
Przed właściwym czasem jest 10 minut na zapoznanie się z zadaniem i stanowiskiem, niewliczanych do 150 minut. To moment na przeczytanie całego arkusza do końca, także ostatniej strony z wymaganiami wobec skryptów, bo od nich zależy, jak zaprojektujesz stronę.
Dalej idzie stała sekwencja czynności. Zalogowanie na konto o nazwie Egzamin. Rozpakowanie archiwum ZIP zabezpieczonego hasłem (hasło podaje arkusz albo ogłasza je przewodniczący zespołu nadzorującego). Utworzenie folderu, którego nazwą jest numer PESEL zdającego, w miejscu wskazanym w arkuszu. Wszystko, co ma zostać ocenione, ląduje w tym jednym folderze:
12345678901/
noclegi.php
styl_1.css
kwerendy.txt
import.jpg
kw1.png
kw2.png
kw3.png
kw4.png
przeglądarka.txt
(obrazy i pozostałe pliki z rozpakowanego archiwum)
Plik, który został tylko w htdocs albo na pulpicie, nie istnieje dla egzaminatora. Ocena odbywa się po egzaminie, na podstawie zawartości tego folderu, bez zdającego przy komputerze.
Pięć ocenianych rezultatów
Zadanie nie jest oceniane jako całość. Arkusz z informatora kończy się zdaniem: „Ocenie będzie podlegać 5 rezultatów: operacje na bazie danych, zawartość witryny internetowej, działanie witryny internetowej, styl CSS witryny internetowej, skrypt połączenia z bazą." W przykładowym arkuszu CKE drugi rezultat nazywa się „wygląd witryny internetowej", reszta jest identyczna.
Rezultaty są od siebie niezależne, a każdy rozpada się na kilkanaście drobnych wymagań sprawdzanych osobno. Praktyczna konsekwencja: blok, którego nie skończysz, nie przekreśla pozostałych, a strona z niedziałającym skryptem nadal jest oceniana jako zawartość i jako styl CSS. Odwrotna sytuacja też się zdarza i boli bardziej. Dobry skrypt zapisany pod inną nazwą niż ta z arkusza nie ma rezultatu, do którego mógłby zostać przypisany.
Pułapka: próg zdania części praktycznej to 75 procent punktów, znacznie wyżej niż 50 procent w części pisemnej. Zostawienie całego bloku na później zwykle kończy sesję.
Cztery bloki zadania i podział 150 minut
Bloki są zawsze te same i idą w arkuszu w tej kolejności. Podział czasu poniżej to propozycja, nie reguła z arkusza, ale wynika z tego, ile pracy jest w każdym bloku.
Blok
Co powstaje
Ile czasu
Operacje na bazie danych
baza egzamin, import tabel, kwerendy.txt, import.jpg, kw1.png do kw4.png
30 min
Witryna internetowa
jeden plik .php ze strukturą sekcji, nagłówkami, obrazami, tabelą i formularzem
35 min
Styl CSS
zewnętrzny arkusz o nazwie z zadania, na przykład styl_1.css
30 min
Skrypty
połączenie z bazą, wypisanie wyników według wzoru, skrypt JavaScript na modelu DOM
45 min
Zamknięcie
zrzuty ekranu, przeglądarka.txt, skopiowanie wyników, nagranie płyty
10 min
Kolejność w arkuszu jest też kolejnością zależności: strona bez zaimportowanej bazy nie ma czego wypisać, a styl bez gotowej struktury sekcji nie ma czego stylować. Jedyny blok, który da się zrobić poza kolejnością, to CSS, bo działa na znacznikach, które już istnieją.
Ostatnie 10 minut nie jest zapasem, tylko osobną czynnością. Zrzuty ekranu, plik z nazwą przeglądarki i przeniesienie wyników zajmują tyle czasu naprawdę, a robione w pośpiechu po sygnale końca po prostu się nie udają.
XAMPP: Apache, MySQL i adres localhost
Pierwsza czynność po rozpakowaniu archiwum to uruchomienie dwóch usług w oknie XAMPP Control Panel: Apache (serwer stron) oraz MySQL (serwer bazy danych). Bez pierwszej nie wykona się żaden plik .php, bez drugiej nie otworzy się phpMyAdmin i nie połączy się skrypt. Instalację oraz to okno opisuje lekcja o XAMPP i phpMyAdmin. Pliki witryny muszą leżeć w katalogu htdocs pakietu XAMPP, a stronę otwiera się adresem, nie podwójnym kliknięciem w plik:
C:\xampp\htdocs\egzamin\noclegi.php -> http://localhost/egzamin/noclegi.php
Powód jest jeden i wraca w każdym zadaniu: PHP wykonuje się na serwerze. Plik otwarty prosto z dysku (adres zaczynający się od file:///) nie przechodzi przez Apache, więc nikt nie wykonuje kodu i przeglądarka pokazuje pustą stronę albo surową treść skryptu. Ten sam plik pod adresem http://localhost/ idzie przez serwer, ten wykonuje PHP i odsyła gotowy HTML.
Najwygodniej pisać od razu w podkatalogu htdocs, a na koniec skopiować całość do folderu z numerem PESEL. Miejsce, w którym mają wylądować wyniki, wskazuje arkusz i tylko ono jest wiążące.
Dyscyplina plików: nazwy, zrzuty, płyta
Nazwy w arkuszu są dosłowne. Jeśli witryna ma nazywać się noclegi.php, to nie Noclegi.php, nie noclegi.html i nie index.php. Arkusz podaje też nazwę arkusza stylów, nazwę bazy (egzamin w zadaniu z informatora) oraz nazwy plików wynikowych. Zmiana nazwy pliku nie jest drobiazgiem stylistycznym: to jedyne, po czym egzaminator rozpoznaje, który plik jest którym rezultatem.
Zrzuty ekranu obowiązują w bloku bazodanowym. Po imporcie tabel robi się zrzut o nazwie import.jpg, a do każdej z czterech kwerend zrzut wyniku: kw1.png, kw2.png, kw3.png, kw4.png. Dwie rzeczy trzeba zrobić dokładnie tak, jak każe arkusz. Po pierwsze, zrzut obejmuje cały ekran razem z paskiem zadań, a nie samo okno przeglądarki, bo widoczny pasek pokazuje, że praca powstała na tym stanowisku. Po drugie, rozszerzenia się różnią: zrzut importu ma być plikiem JPG, zrzuty kwerend plikami PNG. Zapis kw1.jpg to inna nazwa niż ta z arkusza.
Treść kwerend idzie osobno, jako tekst w pliku kwerendy.txt. Zapisuje się je w kolejności z arkusza, każdą zakończoną średnikiem, bez zrzutu zamiast tekstu i bez tekstu zamiast zrzutu: arkusz chce obu form. Do tego dochodzi przeglądarka.txt z nazwą przeglądarki użytej do sprawdzenia witryny.
Na koniec wyniki się przekazuje. Zadanie z informatora kończy się nagraniem płyty z zawartością folderu i opisaniem jej numerem PESEL, a płyta jest wtedy jedynym nośnikiem, który wyjeżdża z sali. Sposób przekazania wyników opisuje ostatnia strona arkusza i to ona rozstrzyga, gdyby w twojej sesji zbierano je inaczej.
Ściągi dołączone do arkusza i inne zadania praktyczne
Arkusz nie jest testem z pamięci. Do zadania dołączone są tabele, których po prostu się używa:
Tabela w arkuszu
Co zawiera
Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB
mysqli_connect, mysqli_select_db, mysqli_query, mysqli_fetch_row, mysqli_fetch_array, mysqli_num_rows, mysqli_num_fields, mysqli_error, mysqli_close
Wybrane pola i metody modelu DOM języka JavaScript
getElementById, getElementsByTagName, getElementsByClassName, innerHTML, setAttribute, style, createElement, appendChild oraz zdarzenia onclick, onkeyup, onload
Elementy formularzy
input w odmianach button, checkbox, number, password, radio, text, a także select i textarea
Metody obiektu string języka JavaScript
length, indexOf, search, substr, replace, toUpperCase, toLowerCase
Wniosek jest praktyczny: nazw tych funkcji nie musisz umieć z pamięci, bo leżą na stole. Musisz wiedzieć, która co robi i w jakiej kolejności idą jej argumenty, a tego tabela nie podpowie. Sam SQL, HTML i CSS ściągi nie mają, więc składnia SELECT, nazwy znaczników sekcji i nazwy właściwości CSS muszą być w głowie. Informator dopisuje jeszcze, czego zadanie może dotyczyć poza schematem opisanym wyżej. W skrócie: własna grafika oraz obróbka grafiki rastrowej i wektorowej, pobieranie danych ze strony internetowej i zapisywanie ich do bazy, systemy CMS (Joomla! i WordPress), ciasteczka i mechanizm sesji, skrypty modyfikujące, dodające i usuwające elementy strony przez model DOM, zapytania aktualizujące bazę, funkcje agregujące, zapytania wykorzystujące relacje między tabelami, zarządzanie użytkownikami bazy, pseudoklasy, pseudoelementy oraz style potomków i braci w CSS, reguła @media i strony responsywne, tablice globalne PHP, obsługa dat i napisów, biblioteki wbudowane języków skryptowych, walidacja formularzy. Żadna z tych rzeczy nie zastępuje czterech bloków, tylko podmienia w nich szczegóły. Skalowanie obrazu do zadanej szerokości pojawiło się już w przykładowym arkuszu CKE, więc z tej listy jest najbardziej prawdopodobne.
Gdzie traci się punkty
›
Plik nazwany inaczej niż w arkuszu, także wielkością liter albo rozszerzeniem: kw1.jpg zamiast kw1.png, import.png zamiast import.jpg.
›
Wyniki zostawione w htdocs i nieskopiowane do folderu o nazwie numeru PESEL.
›
Zrzut ekranu przycięty do samego okna, bez paska zadań.
›
Strona otwarta z dysku zamiast przez http://localhost/, przez co skrypty w ogóle się nie wykonują i wygląda to na błąd w kodzie, którego nie ma.
›
Kwerendy tylko na zrzutach, bez tekstu w kwerendy.txt, albo odwrotnie.
›
Cały czas zjedzony przez pierwszy blok, bo kwerenda nie chciała zadziałać. Sensowniej zostawić ją niedokończoną, przejść dalej i wrócić na końcu, skoro rezultaty ocenia się osobno.
›
Brak pliku przeglądarka.txt, o którym łatwo zapomnieć, bo nie wiąże się z żadnym kodem.
›
Baza założona pod inną nazwą niż podana w arkuszu. Skrypt łączy się wtedy z bazą, której nie ma, a wymaganie mówi wprost o użytkowniku root bez hasła i bazie o nazwie egzamin na serwerze localhost.
Kwerendy da się przećwiczyć wcześniej: plac zabaw SQL wykonuje zapytania w przeglądarce, bez stawiania XAMPP-a. Same arkusze z poprzednich sesji leżą w bazie arkuszy. Ściąga
Element zadania
Co dokładnie
Polecenie otwierające
„Wykonaj aplikację internetową ..., wykorzystując pakiet XAMPP oraz edytor zaznaczający składnię."
Archiwum
ZIP zabezpieczony hasłem, rozpakowywany na początku
Folder na wyniki
nazwa to numer PESEL zdającego
Czas
150 minut, plus 10 minut na zapoznanie się z zadaniem
Oceniane rezultaty
operacje na bazie danych, zawartość (wygląd) witryny, działanie witryny, styl CSS witryny, skrypt połączenia z bazą
Usługi XAMPP
Apache i MySQL uruchomione w XAMPP Control Panel
Adres strony
http://localhost/..., pliki w katalogu htdocs
Baza
nazwa z arkusza (egzamin), użytkownik root bez hasła, serwer localhost
Zrzut po imporcie
import.jpg, cały ekran z paskiem zadań
Zrzuty kwerend
kw1.png, kw2.png, kw3.png, kw4.png
Treść kwerend
kwerendy.txt, w kolejności z arkusza
Nazwa przeglądarki
przeglądarka.txt
Ściągi w arkuszu
funkcje mysqli, pola i metody DOM, elementy formularzy, metody obiektu string
Na koniec
skopiowanie wyników do folderu PESEL i nagranie płyty
Pobierz ściągę PDF