Słowniczek Najważniejszych Pojęć Programistycznych

I. Podstawy i Algorytmika

Pojęcie Definicja
Algorytm Skończony ciąg jasno zdefiniowanych czynności, niezbędnych do wykonania pewnego rodzaju zadań. To jest logiczna instrukcja rozwiązania problemu (np. przepis na ciasto).
Program Zbiór instrukcji zapisanych w określonym języku programowania, który komputer może wykonać w celu realizacji określonego zadania.
Kod źródłowy Tekst programu napisany przez programistę w danym języku programowania (np. C++, Python, Java). Jest to postać czytelna dla człowieka.
Kompilator Program tłumaczący kod źródłowy na kod maszynowy (binarny), który jest bezpośrednio zrozumiały dla procesora komputera. Proces ten nazywamy kompilacją.
Interpreter Program wykonujący kod źródłowy w czasie rzeczywistym, linijka po linijce, bez wcześniejszego tłumaczenia go na kod maszynowy.
Składnia (Syntaks) Zbiór reguł i zasad, określających poprawne pisanie instrukcji w danym języku programowania. Błąd składniowy uniemożliwia kompilację/interpretację programu.
Debugowanie (Debugging) Proces znajdowania, analizowania i poprawiania błędów (ang. *bug*) w kodzie programu.
API (Application Programming Interface) Interfejs programowania aplikacji. Zestaw reguł i narzędzi, które umożliwiają różnym programom (aplikacjom) komunikowanie się ze sobą.

II. Struktura Danych i Zmienne

Pojęcie Definicja
Zmienna Nazwana komórka pamięci, przechowująca pewną wartość. Wartość ta może się zmieniać w trakcie działania programu.
Typ danych Określenie rodzaju wartości, jaką może przechowywać zmienna (np. liczby całkowite - `int`, liczby zmiennoprzecinkowe - `float`/`double`, tekst - `string`, wartość logiczna - `boolean`).
Stała Nazwana komórka pamięci, której wartość jest ustalana raz i nie może zostać zmieniona w trakcie działania programu.
Tablica/Lista Struktura danych, która przechowuje zbiór elementów tego samego typu, uporządkowanych w określonej kolejności i dostępnych za pomocą indeksów.
Struktura danych Sposób organizacji, zarządzania i przechowywania danych w pamięci komputera w celu efektywnego dostępu i modyfikacji (np. tablice, listy, stosy, kolejki, drzewa).

III. Sterowanie Przepływem

Pojęcie Definicja
Instrukcja warunkowa Instrukcja, która umożliwia programowi podjęcie decyzji na podstawie pewnego warunku logicznego (np. `if`, `else if`, `else` lub `switch`).
Pętla Konstrukcja programistyczna, która pozwala na wielokrotne wykonanie bloku kodu do momentu spełnienia lub niespełnienia określonego warunku (np. `for`, `while`, `do-while`).
Funkcja / Metoda Samodzielny, nazwany blok kodu wykonujący określone zadanie. Funkcje mogą przyjmować parametry (dane wejściowe) i zwracać wynik. W programowaniu obiektowym funkcje wewnątrz klas nazywane są metodami.
Parametr / Argument Wartość przekazywana do funkcji. Parametr to nazwa w definicji funkcji, Argument to faktyczna wartość przekazywana podczas jej wywołania.

IV. Programowanie Obiektowe (OOP)

Pojęcie Definicja
Klasa Wzór, szablon lub projekt do tworzenia obiektów. Definiuje ona atrybuty (zmienne) i zachowania (metody) dla każdego obiektu, który zostanie na jej podstawie utworzony.
Obiekt Konkretna instancja (egzemplarz) klasy. Obiekt posiada określone wartości dla zdefiniowanych w klasie atrybutów.
Enkapsulacja (Hermetyzacja) Zasada ukrywania wewnętrznych szczegółów działania obiektu i chronienia danych przed nieautoryzowanym dostępem lub modyfikacją (np. używanie modyfikatorów dostępu `public`, `private`).
Dziedziczenie Mechanizm pozwalający jednej klasie (klasie potomnej) przejmować właściwości i metody innej klasy (klasy bazowej/rodzicielskiej). Służy to ponownemu wykorzystaniu kodu.
Polimorfizm Zdolność różnych obiektów do reagowania na to samo wywołanie metody w różny sposób. Oznacza to "wiele form".

V. Narzędzia i Środowisko Pracy

Pojęcie Definicja
IDE (Zintegrowane Środowisko Programistyczne) Oprogramowanie integrujące narzędzia niezbędne do pisania i testowania programów (np. edytor kodu, kompilator/interpreter, debugger). Przykłady: Visual Studio Code, IntelliJ, PyCharm.
System Kontroli Wersji (np. Git) Narzędzie do zarządzania zmianami w kodzie źródłowym w czasie. Umożliwia śledzenie historii, powrót do wcześniejszych wersji i efektywną współpracę w zespole programistów.
Repozytorium Miejsce, w którym przechowywany jest cały kod źródłowy projektu wraz z jego historią zmian (np. na platformie GitHub, GitLab).
Framework Zestaw gotowych komponentów, bibliotek i reguł stanowiących szkielet dla aplikacji. Upraszcza i przyspiesza budowanie oprogramowania (np. Spring dla Javy, Django dla Pythona).
Biblioteka Zbiór gotowych funkcji i klas, które programista może wykorzystać w swoim kodzie, aby uniknąć pisania wszystkiego od nowa (np. biblioteka matematyczna).

VI. Pojęcia Webowe (Front-end i Back-end)

Pojęcie Definicja
Front-end Część aplikacji, z którą bezpośrednio wchodzi w interakcję użytkownik. Obejmuje interfejs graficzny, style i interakcje. Używane technologie: HTML, CSS, JavaScript.
Back-end Część aplikacji działająca na serwerze, odpowiedzialna za logikę biznesową, przetwarzanie danych, autoryzację i interakcję z bazą danych.
Baza danych Ustrukturyzowany zbiór danych, przechowywany i zarządzany elektronicznie, zazwyczaj przez system zarządzania bazą danych (np. SQL, MySQL, PostgreSQL).
SQL (Structured Query Language) Strukturalny język zapytań, służący do zarządzania danymi w relacyjnych bazach danych (dodawanie, modyfikowanie, pobieranie).
Serwer Komputer lub program, który świadczy usługi dla innych komputerów (klientów) w sieci, np. przechowuje strony internetowe, obsługuje aplikacje.