Jak zostać programistą? Trzeba ćwiczyć, ćwiczyć i ćwiczyć. Stawiać przed sobą wyzwania, rozwiązywać problemy i cierpliwie „klepać” linijki kodów. Po czasie sami stwierdzicie, że „nie taki diabeł straszny…”.
Programowanie, to rozwiązywanie istniejącego problemu i zapisywania tego rozwiązania w postaci zrozumiałej dla komputera. Schemat działań, jakie należy podjąć w celu rozwiązania problemu, to nic innego jak algorytm.
Programy komputerowe są wszędzie – samochody, pralki, lodówki, inteligentne domy… można wyliczać bez końca. Jak to działa? Wszystko co wprowadzamy do komputera, czy jest to tekst, czy obrazek musi zostać jakoś przez maszynę odczytane. Komputer nie „widzi” jak my – on przetwarza. Ale co? ciągi zer i jedynek – system binarny.
Za pomocą zer i jedynek można zapisać wszystko – zainteresowanych pogłębianiem tematu odsyłam do bardzo fajnego artykułu – KLIK
Programowanie jest cyklicznym procesem tworzenia kodu w następujących etapach:
- edycji kodu źródłowego,
- uruchamiania programu,
- analizie działania i rejestrowania błędów,
- powrocie do edycji kodu źródłowego (pkt 1) w celu poprawienia błędów lub dalszego poszerzania funkcjonalności.
Osobę zajmującą się programowaniem nazywa się programistą.
Pojęcie „aplikacja internetowa” nie zostało jednoznacznie określone, jest różnie rozumiane i bardzo ogólne.
ale jak wyrocznia Wiki mawia:
Aplikacja internetowa, (ang.) web application – zwana również aplikacją webową, to program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową z hostem użytkownika komputera z wykorzystaniem przeglądarki internetowej użytkownika, będącego w takim przypadku interaktywnym klientem aplikacji internetowej. W pracy aplikacji internetowej musi pośredniczyć serwer WWW. Do przygotowania samej aplikacji używa się różnych mechanizmów (np. CGI, JSP, ASP.NET) i języków (np. PHP, Java, C#), jak również serwerów aplikacji. Mechanizm prezentacji danych w przeglądarce określa się czasem mianem cienkiego klienta. Przykładem aplikacji internetowej jest mechanizm edycji treści encyklopedii Wikipedia. Inne witryny WWW należące do tej kategorii to np. serwis aukcyjny Allegro czy księgarnia internetowa Merlin.
Algorytmy
Algorytm to zestaw instrukcji, czynności, które należy wykonać, aby zrealizować pewne zadanie w skończonej liczbie kroków.
Sposób „naszego myślenia” możemy zapisywać za pomocą następujących bloków:

a prosty algorytm przedstawiający sposób myślenia jest taki:

Języki wysokiego poziomu
Na początku do porozumiewania się z komputerem używano języków niskiego poziomu, czyli krótkich kodów zrozumiałych dla procesora, ale nie koniecznie dla innych 🙂 takie języki nazywamy assemblerami. W miarę rozwoju programowania, języki programowania zaczęły się stawać bardziej przyjazne dla programistów. Dzisiaj programujemy tak jak myślimy, wykonujemy kolejne kroki algorytmu ubierając je w odpowiednie instrukcje danego języka.
Podam wam teraz prosty przykład:
Jeżeli liczba jest większa od zera, to wypisz że jest dodatnia
aby zakodować to zdanie, nie trzeba się specjalnie głowić – wystarczy je dosłownie przetłumaczyć na język obcy – w naszym wypadku jest to język programowania. Języki te są uniwersalne (w większości brzmią jak angielski lub skróty angielskich wyrazów), dlatego w np. PHP należy zapisać powyższe zdanie następująco:
if($liczba>0) echo "jest dodatnia";
if to jeżeli, a echo to wypisz i zamieniając te 2 słowa na polskie otrzymamy to samo zdanie co wyżej – o to właśnie chodzi w językach wysokiego poziomu – tak jak myślisz, tak piszesz.
Napisany przez nas kod musi zostać zrozumiany przez komputer, aby tak się stało, musi zostać przerobiony na zera i jedynki za pomocą kompilatora (tłumaczy kod na język niskiego poziomu) lub interpretera (analizuje kod źródłowy, a przeanalizowane fragmenty wykonuje).
instrukcje i bloki instrukcji
Programy komputerowe składają się z serii instrukcji np. if($liczba>0) echo „jest dodatnia”;
Pojedyncze instrukcje mogą być łączone w bloki np.
instrukcja_1;
{
instrukcja_2;
instrukcja_3;
{
instrukcja_4;
{
instrukcja_5;
}
}
}
Quiz – sprawdź się
1. Które zdanie najlepiej opisuje algorytm? a) program napisany w PHP b) zestaw czynności prowadzących do rozwiązania zadania w skończonej liczbie kroków c) ciąg zer i jedynek zrozumiały dla procesora d) narzędzie tłumaczące kod na język maszynowy
2. Uporządkuj etapy cyklu programowania: a) analiza działania i rejestrowanie błędów b) uruchomienie programu c) edycja kodu źródłowego d) powrót do edycji w celu poprawienia błędów lub rozszerzenia funkcjonalności
3. Uczeń napisał algorytm:
1. Weź liczbę.
2. Dodaj do niej 1.
3. Wróć do kroku 2.
Dlaczego to nie jest poprawny algorytm?
4. Przetłumacz na zwykłe zdanie po polsku:
if($wynik>50) echo "zaliczone";
5. Uzupełnij zdania słowami kompilator lub interpreter: a) ______ analizuje kod źródłowy, a przeanalizowane fragmenty od razu wykonuje. b) ______ tłumaczy kod na język niskiego poziomu.
6. Czym różni się język niskiego poziomu od języka wysokiego poziomu? Odpowiedz w jednym–dwóch zdaniach.
7. Znajdź błąd w bloku instrukcji:
{ instrukcja_1; { instrukcja_2; instrukcja_3; }
8. Który przykład jest aplikacją internetową w rozumieniu z lekcji? a) kalkulator zainstalowany w telefonie działający bez internetu b) serwis aukcyjny, w którym program działa na serwerze, a użytkownik korzysta z niego przez przeglądarkę c) plik tekstowy zapisany na pendrivie d) edytor zdjęć zainstalowany na komputerze
9. Jakim blokiem schematu blokowego zapiszesz krok „czy suma XP jest większa lub równa progowi poziomu?” i ile wyjść ma ten blok?
10. Zadanie praktyczne. Zapisz w pseudokodzie algorytm dla TaskQuest: Gdy użytkownik oznaczy zadanie jako wykonane, dostaje 10 XP. Jeżeli jego suma XP osiągnie co najmniej 100, awansuje na kolejny poziom.
Odpowiedzi
- b)
- c → b → a → d
- Nie ma warunku zakończenia – kroki 2 i 3 powtarzają się w nieskończoność, a algorytm musi zakończyć się po skończonej liczbie kroków.
- Jeżeli wynik jest większy od 50, to wypisz „zaliczone”.
- a) interpreter, b) kompilator (tłumaczy kod na język niskiego poziomu – stąd nazwa zgodna z lekcją).
- Język niskiego poziomu to krótkie kody zrozumiałe dla procesora, ale trudne dla człowieka (asemblery). Język wysokiego poziomu jest czytelny dla człowieka i przypomina zdania w języku angielskim.
- Otwarte są dwa nawiasy
{, a zamknięty tylko jeden}. Na końcu brakuje}zamykającego zewnętrzny blok. - b)
- Blokiem decyzyjnym (romb). Ma dwa wyjścia: TAK i NIE.
- Przykładowe rozwiązanie (dopuszczalne różne sformułowania):
JEŻELI zadanie oznaczono jako wykonane TO
xp = xp + 10
JEŻELI xp >= 100
TO poziom = poziom + 1
Sprawdź: czy jest warunek awansu? czy użyto „większe lub równe”, a nie tylko „większe”?
TaskQuest — Twój projekt na cały semestr
KARTA PRACY
O czym jest ten projekt
Jak działa TaskQuest
Jak będzie wyglądać finalna aplikacja
Karta pracy
Projekt: TaskQuest — grywalizowana aplikacja do zarządzania zadaniami. Użytkownik loguje się, dodaje zadania, za ich wykonanie zdobywa punkty XP, awansuje na poziomy, zdobywa odznaki i widzi swoją pozycję w rankingu klasy. Każda lekcja rozbudowuje tę samą aplikację o nową funkcję.
Projektowanie aplikacji — zanim napiszesz pierwszą linijkę kodu
Cel lekcji
Zrozumieć, czym będzie Twoja aplikacja, zanim zaczniesz pisać kod.
Co dziś budujesz
Jeszcze nic w kodzie — dziś projektujesz aplikację na papierze/w edytorze tekstu.
Kroki do wykonania
- Przeczytaj sekcję „Jak działa TaskQuest” i „Jak będzie wyglądać finalna aplikacja” powyżej.
- Wypisz w punktach wszystkie funkcje aplikacji, jakie widzisz (np. logowanie, dodawanie zadania, system XP…).
- Narysuj prosty schemat blokowy (na kartce lub w dowolnym narzędziu) pokazujący: użytkownik dodaje zadanie → oznacza jako wykonane → system dolicza XP → system sprawdza, czy to wystarcza na awans → jeśli tak, poziom rośnie.
- Zapisz pseudokodem (zwykłym językiem, nie PHP) regułę: „jeśli suma XP jest większa lub równa progowi poziomu, to…”.
- Utwórz na dysku folder projektu, np. taskquest/.
Do samodzielnego sprawdzenia
☐ Mam listę min. 8 funkcji, które będzie mieć aplikacja.
☐ Mam narysowany schemat blokowy logiki awansu na poziom.
☐ Mam zapisaną regułę awansu w pseudokodzie.
☐ Mam utworzony folder projektu.
Pytania kontrolne
- Czym różni się algorytm od programu?
- Dlaczego warto zaprojektować aplikację, zanim zacznie się pisać kod?