Wróć do biblioteki

BitEdu - liceum i technikum

INF.04

Lekcje otwarte możesz czytać od razu. Materiały oznaczone kontem zawierają zadania, kod lub pliki przeznaczone dla przypisanych uczniów.

← Działy: INF.04

Programowanie konsolowe (C#)

1

Wprowadzenie do C# i pierwszy program

Ten dział to fundament pod wszystko inne w INF.04 — te same podstawy C#, których nauczysz się tutaj w prostej aplikacji konsolowej, wykorzystasz później budując okna w WPF, ekrany w .NET MAUI i strony w ASP.NET Core. Warto je dobrze zrozumieć raz, na najprosts...

Czytaj →
2

Systemy liczbowe — dwójkowy, ósemkowy, szesnastkowy i kod U2

Komputer "myśli" wyłącznie w zerach i jedynkach — każda liczba, znak i instrukcja w programie jest w pamięci zapisana binarnie. Bez zrozumienia systemów liczbowych trudno pojąć, dlaczego int ma ograniczony zakres, czym różni się liczba ujemna od dodatniej "w ś...

Czytaj →
3

Zmienne i typy danych w C#

Każdy program, nawet najprostszy, musi gdzieś przechowywać dane — wiek ucznia, cenę produktu, imię klienta. Zmienne to pudełka, w których program trzyma te informacje, żeby mógł ich użyć później. Bez zmiennych nie da się napisać niczego sensownego — ani kalkul...

Czytaj →
4

Operatory w C#

Bez operatorów program może co najwyżej wypisać stały tekst — operatory to narzędzie, dzięki któremu program faktycznie coś OBLICZA i PORÓWNUJE, co jest fundamentem każdej decyzji podejmowanej w kodzie (Lekcja 6).

Czytaj →
5

Instrukcje warunkowe (if, else, switch)

Program, który zawsze robi dokładnie to samo niezależnie od danych wejściowych, jest mało użyteczny — instrukcje warunkowe to pierwszy krok w stronę programu, który REAGUJE na różne sytuacje, tak jak zrobi to każda prawdziwa aplikacja, którą zbudujesz w tym ku...

Czytaj →
6

Pętle (for, while, do-while, foreach)

Bez pętli powtórzenie tej samej operacji 100 razy wymagałoby napisania jej 100 razy z osobna. Pętle to jeden z najczęściej używanych elementów w każdym programie — od prostego licznika po przetwarzanie tysięcy rekordów z bazy danych.

Czytaj →
7

Metody i przeciążanie

Bez metod cały program musiałby być zapisany jako jeden ciąg instrukcji w Main() — nieczytelny i niemożliwy do ponownego wykorzystania. Metody to pierwszy krok w stronę dzielenia dużego problemu na mniejsze, zarządzalne fragmenty — dokładnie tak, jak zaczniesz...

Czytaj →
8

Tablice i kolekcje (List, Dictionary)

Prawdziwe programy niemal zawsze operują na WIELU danych naraz — liście filmów, klientów, produktów w koszyku. Bez tablic i kolekcji musiałbyś tworzyć osobną zmienną dla każdego elementu, co jest niepraktyczne już przy kilku elementach, a niemożliwe przy setka...

Czytaj →
9

Praca z plikami (TXT i JSON)

To domknięcie działu fundamentów — bez zapisu do pliku każdy program "zapomina" wszystko po zamknięciu. Format JSON, którego się tutaj nauczysz, wykorzystasz jeszcze wielokrotnie: w aplikacjach mobilnych .NET MAUI (zapis danych lokalnie) i w komunikacji z serw...

Czytaj →
10

Wprowadzenie do programowania obiektowego — klasy i obiekty

To jest moment zwrotny całego działu — programowanie obiektowe to fundament, na którym zbudowane są WSZYSTKIE technologie, których nauczysz się dalej w INF.04: okna WPF, ekrany .NET MAUI i kontrolery ASP.NET Core to wszystko klasy i obiekty. Zrozumienie tej le...

Czytaj →
11

Pola, metody i hermetyzacja (enkapsulacja)

Hermetyzacja to jedna z czterech głównych zasad programowania obiektowego (obok dziedziczenia, polimorfizmu i abstrakcji) i pierwsza linia obrony przed błędami — klasa sama pilnuje, żeby jej dane zawsze były w poprawnym, sensownym stanie, niezależnie od tego,...

Czytaj →
12

Konstruktory (zwykły i kopiujący) i destruktor

Bez konstruktora tworzenie w pełni wypełnionego obiektu wymaga kilku osobnych linii kodu za każdym razem, co jest niewygodne i łatwo o pomyłkę (np. zapomnienie ustawienia jednego pola). Konstruktor gwarantuje, że obiekt od razu "rodzi się" w poprawnym, komplet...

Czytaj →
13

Dziedziczenie i klasy pochodne

Dziedziczenie eliminuje powtarzanie tego samego kodu w wielu podobnych klasach — jedna z czterech głównych zasad OOP, obok hermetyzacji (Lekcja 11), polimorfizmu (Lekcja 14) i abstrakcji (Lekcja 15), i jeden z najczęściej sprawdzanych tematów na egzaminie INF....

Czytaj →
14

Polimorfizm i metody wirtualne

Polimorfizm to trzecia z czterech głównych zasad OOP (po hermetyzacji i dziedziczeniu) i jeden z tematów, w których uczniowie najczęściej czują się niepewnie na egzaminie — a jednocześnie jedna z najbardziej praktycznych technik, eliminująca długie łańcuchy wa...

Czytaj →
15

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy to narzędzia PROJEKTOWANIA dobrego kodu — wymuszają na programistach (także na Tobie samym za kilka miesięcy) konsekwentne implementowanie wymaganych zachowań, zamiast polegać na pamięci czy dokumentacji.

Czytaj →
16

Obsługa wyjątków (try, catch, throw, finally)

Prawdziwe aplikacje, z jakimi zetkniesz się na egzaminie i w pracy, muszą działać niezawodnie nawet przy błędnych danych wejściowych — program, który "wywala się" na pierwszym literówce użytkownika, nie nadaje się do użytku. Obsługa wyjątków to profesjonalny s...

Czytaj →
17

Klasy generyczne (szablony klas)

Generyki to mechanizm, z którego korzystałeś już wielokrotnie (List, Dictionary), nie wiedząc jeszcze, jak dokładnie działa — ta lekcja odsłania tę "kuchnię" i pokazuje, jak tworzyć własne, elastyczne klasy działające dla dowolnego typu danych, bez powielania...

Czytaj →
18

Wzorce projektowe — Metoda szablonowa, Fasada, Kompozyt

Wzorce projektowe to sygnał dla oceniającego (nauczyciela, egzaminatora, przyszłego pracodawcy), że rozumiesz nie tylko SKŁADNIĘ C#, ale też jak dobrze ORGANIZOWAĆ kod w większych projektach — to wiedza, która odróżnia programistę piszącego działający kod od p...

Czytaj →
19

Projekt końcowy — system wypożyczalni w konsoli

Pojedyncze umiejętności — klasa, dziedziczenie, wyjątek — to jedno. Prawdziwa wartość pojawia się dopiero wtedy, gdy złożysz je w jeden, spójny, DZIAŁAJĄCY program — dokładnie tak, jak wygląda zadanie praktyczne na egzaminie INF.04 i jak wygląda prawdziwa prac...

Czytaj →
20

Rekurencja

Niektóre problemy naturalnie definiuje się "przez samego siebie" — silnia liczby, przeszukiwanie folderów i podfolderów na dysku, przechodzenie po drzewie komentarzy pod postem, algorytm dziel-i-zwyciężaj. Rekurencja to metoda pisania takich rozwiązań: funkcja...

Czytaj →
21

Struktury (struct) w C#

Podstawa programowa (INF.04.3.2) wymaga umiejętności posługiwania się "rekordami" — czyli złożonymi typami danych grupującymi kilka wartości w jedną paczkę. W C# taką rolę pełni struct. To lekki sposób na opisanie "punktu na mapie", "koloru RGB" czy "daty" bez...

Czytaj →
22

Metody rozwiązywania problemów — schematy blokowe i pseudokod

Zanim napiszesz linijkę kodu, warto rozrysować rozwiązanie na kartce. Schemat blokowy i pseudokod to dwa uniwersalne "języki", w których zapiszesz algorytm niezależnie od tego, czy potem zaimplementujesz go w C#, Pythonie czy jakimkolwiek innym języku. Podstaw...

Czytaj →
23

Algorytmy szyfrowania i tekstowe (szyfr Cezara, GADERYPOLUKI)

Podstawa programowa (INF.04.3.3) wymienia wprost "algorytmy tekstowe" i "algorytmy szyfrowania" jako coś, co trzeba umieć zaimplementować. To też świetny sposób na przećwiczenie pracy z tekstem (string) w C# — indeksowanie znaków, kody ASCII, pętle po znakach...

Czytaj →
24

Złożoność obliczeniowa (notacja Big O)

Ten sam problem można rozwiązać na wiele sposobów — jedne będą szybkie dla 10 elementów, ale "położą" program przy 10 milionach elementów, inne będą działać płynnie niezależnie od rozmiaru danych. Złożoność obliczeniowa to sposób opisania, jak czas działania (...

Czytaj →
25

Algorytmy zachłanne i heurystyki — problem komiwojażera

Nie każdy problem da się rozwiązać "idealnie" w rozsądnym czasie — czasem jedyną realną opcją jest strategia, która w każdym kroku wybiera to, co wygląda najlepiej TERAZ, bez analizowania całości. To właśnie podejście zachłanne (greedy) i heurystyki — wymagane...

Czytaj →
26

Algorytmy sortowania (bąbelkowe, przez wstawianie, szybkie)

Sortowanie to jeden z najczęściej wykonywanych algorytmów w informatyce — listy produktów wg ceny, wyniki wyszukiwania wg trafności, ranking graczy. Podstawa programowa (INF.04.3.4) wymaga znajomości konkretnych algorytmów sortowania, a nie tylko wywołania got...

Czytaj →
27

Algorytmy wyszukiwania (liniowe i binarne)

Wyszukiwanie elementu w zbiorze danych to jedna z najczęstszych operacji w programowaniu — szukanie użytkownika po ID, produktu po nazwie, słowa w słowniku. Podstawa programowa (INF.04.3.4) wymaga znajomości dwóch podejść o zupełnie różnej wydajności: wyszukiw...

Czytaj →
28

Projektowanie aplikacji — UML, diagram klas, architektura klient-serwer

Zanim napiszesz pierwszą linijkę kodu większej aplikacji, warto zaprojektować jej strukturę na papierze. Podstawa programowa (INF.04.3.6) wymaga umiejętności projektowania aplikacji — analizy wymagań, projektowania interfejsu, doboru architektury. Diagram klas...

Czytaj →
29

Planowanie przedsięwzięcia — metodyki pracy i narzędzia (Agile, Git, Jira/Trello)

Programowanie w zespole to nie tylko pisanie kodu — to też planowanie pracy, dzielenie zadań i śledzenie postępów. Podstawa programowa (INF.04.3.5 i INF.04.3.7) wymaga znajomości metodyk pracy zespołowej i narzędzi do zarządzania projektem — to wiedza przydatn...

Czytaj →
30

Prawo autorskie w programowaniu

Kod, który piszesz, muzyka której słuchasz podczas pracy, obrazki które wykorzystujesz w aplikacji — wszystko to podlega prawu autorskiemu. Podstawa programowa (INF.04.3.9) wymaga znajomości podstaw prawa autorskiego w kontekście programowania. To wiedza, któr...

Czytaj →