Logika formalna
Zasada: Programowanie to stosowanie logiki w praktyce
Wyjaśnienie
Logika formalna bada poprawność wnioskowania niezależnie od treści.
W informatyce odpowiada za:
- strukturę warunków i zależności między stanami,
- poprawność specyfikacji i algorytmów,
- weryfikację wniosków i przewidywalność działania systemu.
Główne elementy
- Rachunek zdań (logika zdań)
- Rachunek predykatów
- Dowody formalne
- Implikacje i kwantyfikatory
- Teoria modeli
Nie chodzi o składnię języka, lecz o prawidłowe wnioskowanie. Błędy logiczne mogą generować problemy systemowe mimo poprawnego kodu.
Przykład ogólny
Rodzic mówi: „Jeśli pada deszcz, weź parasol.”
Dziecko widzi kałuże, ale świeci słońce → nie bierze parasola.
Błąd: nie rozumie implikacji „jeśli pada, to parasol”.
Efekt: zmoknięcie mimo prawidłowej instrukcji.
Przykład informatyczny
Specyfikacja: „Jeśli użytkownik jest administratorem, to ma dostęp do panelu.”
if (user.isLoggedIn()) {
allowAccess();
}
Błąd: sprawdzono tylko zalogowanie, nie rolę administratora.
System działa poprawnie składniowo, lecz logicznie jest błędny.
Abstrakcja
Zasada: Każdy system można opisać na wielu poziomach abstrakcji
Wyjaśnienie
Abstrakcja polega na kontrolowanym pomijaniu szczegółów, aby skupić się na tym, co istotne na danym poziomie.
W programowaniu pozwala oddzielić:
- warstwę sprzętową,
- warstwę systemową,
- logikę aplikacji,
- interfejs użytkownika.
Mieszanie poziomów prowadzi do chaosu architektonicznego i problemów w utrzymaniu systemu.
Abstrakcja nie usuwa szczegółów — przenosi je na inny poziom.
Przykład ogólny: planowanie podróży pociągiem:
Abstrakcja: patrzymy tylko na godziny odjazdu, czas przejazdu i stacje końcowe.
Pomijamy: wygląd wagonów, nazwiska kierowników, kolor foteli.
Efekt: łatwiej zaplanować trasę, mimo że nie znamy wszystkich szczegółów.
Przykład informatyczny: przeglądarka internetowa
| Poziom | Co widzimy |
|---|---|
| Użytkownik | Stronę WWW |
| Programista frontend | HTML, CSS, JS |
| Programista backend | API, logika serwera |
| Administrator | System operacyjny, aplikacje, wtyczki |
| Inżynier sprzętu | Procesor, pamięć |
Każdy poziom jest poprawny — ale nie miesza się ich.
Model
Zasada: Każdy model upraszcza rzeczywistość i wprowadza założenia
Wyjaśnienie
Model to uproszczona reprezentacja fragmentu rzeczywistości.
Tworząc model:
- wybieramy cechy istotne, pomijamy inne,
- przyjmujemy pewne założenia (często niejawne),
- upraszczamy rzeczywistość, aby umożliwić analizę i decyzje.
Model nigdy nie jest pełną kopią rzeczywistości.
Kluczowe pytania:
- Co zostało utracone?
- Jakie założenia są ukryte?
- Co się stanie, gdy założenia przestaną obowiązywać?
Każdy model kłamie (ale bywa użyteczny).
Przykład ogólny: mapa turystyczna miasta:
Pokazuje ulice, zabytki i stacje metra.
Nie uwzględnia korków, pogody ani natężenia ruchu pieszych.
Efekt: łatwiej trafić w miejsce docelowe, ale rzeczywiste utrudnienia mogą zmienić wynik planu.
Przykład informatyczny: tabela bazy danych:
Tabela: User(id, name, email)
To model użytkownika w systemie.
Nie zawiera emocji, relacji społecznych ani kontekstu czasowego.
Jeśli system wymaga współdzielonych kont lub rezerwacji w czasie rzeczywistym, założenia modelu przestają działać.
Entropia
Zasada: Kontrola polega na redukcji niepewności
Wyjaśnienie
Entropia to miara niepewności lub nieprzewidywalności systemu.
Im więcej możliwych stanów i zmiennych, tym wyższa entropia.
W praktyce:
- dane i reguły pomagają ją redukować,
- brak uporządkowania prowadzi do chaosu,
- systemy z wysoką entropią są trudne do kontrolowania.
Przykład ogólny: Organizacja przyjęcia dla 50 zaproszonych osób:
Nie wie, kto faktycznie przyjdzie ani o której godzinie pojawią się goście.
Nie zna liczby osób z dodatkowymi potrzebami dietetycznymi ani przewidywanego czasu trwania spotkania. Możliwych scenariuszy jest wiele: frekwencja może być niska, pełna lub wyższa od oczekiwanej. Brak potwierdzeń i ustaleń zwiększa niepewność planowania.
Zebranie informacji i ustalenie zasad zmniejsza liczbę możliwych wariantów i obniża entropię sytuacji.
Przykład informatyczny
System logów zapisuje każde zdarzenie w aplikacji.
Bez filtrów i agregacji administrator nie potrafi wykryć istotnego incydentu.
Formalnie mamy więcej danych, ale poznawczo rośnie entropia i trudniej kontrolować system.
Twój komentarz