Specjalizacja Programowanie

W ramach cyklu przedmiotów, rozłożonych równomiernie w programie całych studiów, realizujemy program mający na celu wyrobienie profesjonalnych kompetencji w dziedzinie budowy „od podstaw” funkcjonalnych, nowoczesnych i atrakcyjnych aplikacji. Prowadzimy równoległy program w dwóch dialektach: dla osób o zainteresowaniach backendowych polecamy kursy prowadzone w języku Python, natomiast dla osób zainteresowanych frontendem (w tym webdesignem i grafiką internetową) polecamy kursy w Javascript/Typescript.



  • Język łatwy do nauki
    • brak bariery wstępu – można rozpocząć pisanie programów „od zaraz”, bez żmudnej konfiguracji, instalacji IDE itp, np. w przeglądarce
    • przejrzysty kod ułatwia znajdywanie ewentualnych błędów
    • łatwo przyswajalne główne elementy języka (pętle, struktury danych)
    • ciekawe programy mogą być bardzo krótkie i łatwe do modyfikacji
  • Najpopularniejszy język wg. TIOBE Programming Community Index
  • Najlepszy obecnie zakres zastosowań
    • programy backendowe systemów webowych
    • analiza danych
    • skrypty administracyjne
    • sztuczna inteligencja
  • Dynamiczny rynek dobrze płatnych ofert pracy (nofluffjobs.com)
  • Łatwa konstrukcja bardzo wydajnych asynchronicznych aplikacji
  • Świetna integracja z „chmurą” (kubernetes, AWS, GCP, Azure)


Zajęcia zgrupowaliśmy w pięć semestralnych dedykowanych modułów. Dodatkowo, w ramach modułów nie dotyczących bezpośrednio programowania (np. Systemów Operacyjnych, Systemów Baz Danych, Projektowania Witryn Internetowych) dbamy o integrację z potrzebami studentów ukierunkowanych na programowanie (np. pokazując jak przygotowywać dedykowane serwery aplikacyjne, serwery baz danych, czy też jak „rozmawiać” z serwisami REST).

Zajęcia zawsze są dostosowane do potrzeb studentów, i w grupach nie przekraczających 20 osób prowadzone są wielopoziomowo (uwzględniając również fakt, że część grup studentów może być ukierunkowana na inne technologie IT, np. na grafikę komputerową). W czasie zajęć część prezentacyjna stanowi ~ 1/3 całości, a pozostała część polega na wspieraniu indywidualnych postępów uczestników.

Oferujemy w pełni skonfigurowane środowiska programistyczne, również z możliwością dostępu zdalnego („z domu”). Kod „napisany” w trakcie zajęć jest dostępny publicznie.
Wszystkich zainteresowanych studiami z zakresu programowania zapraszamy do zapoznania się z naszą ofertą edukacyjną oraz procedurą rekrutacji na studia inżynierskie oraz na studia podyplomowe.

Semestr 1 : Podstawy

  • podstawy składni i konstrukcja prostych, krótkich programów
  • integracja z wydajnym środowiskiem programistycznym (pycharm)
  • podstawy ciekawych i bardzo użytecznych aplikacji (praca z csv, danymi z internetu (requests) itp)
  • korzystanie biblioteki standardowej Pythona, jak i bibliotek dołączanych przez pip


Semestr 2 : Wydajna praca

  • efektywne wykorzystanie elementów biblioteki standardowej
  • struktury hashowane, czyli dict i set, i ich wykorzystanie w pisaniu naprawdę szybkich aplikacji
  • spora liczba prostych i trudniejszych zadań pozwalających na nabranie wprawy w języku (są to też typowe zadania używane na rozmowach rekrutacyjnych),
  • projektowanie interfejsów graficznych (kivy), i prostych frameworków backendowych (flask).


Semestr 3 : Obiektowo-zorientowana architektura aplikacji

  • best-practices podziału aplikacji na funkcjonalne moduły
  • hierarchia obiektowa (implementacja interfejsów, rozszerzanie klas istniejących)
  • obsługa wyjątków
  • budowanie testów aplikacji
  • przykłady


Semestr 4 : Wydajna integracja z systemami baz danych

  • tworzenie/modyfikacja i praca z systemami baz danych w SQL (w dialekcie postgresql)
  • praca z typowym systemem baz danych (sklep dostępny na w3schools), konstrukcja zapytań SQL
  • zapytania złożone typu JOIN, klucze obce
  • wersjonowanie struktury baz (alembic)
  • wydajny framework backendowy (aiohttp) współpracujący asynchronicznie z bazą danych ( asyncpg)
  • testy wydajnościowe (locust)
  • best-practices tworzenia wielo-klienckiego dostępu do danych; zachowanie integralności, transakcyjność


Semestr 6 : Analiza danych i sztuczna inteligencja



Programowanie urządzeń mobilnych

(Opiekun: dr n.f. Przemysław Stokłosa, prof.nadzw. WSIZ)

Celem specjalizacji jest rozwinięcie umiejętności programowania urządzeń mobilnych a w szczególności tworzenia użytecznych i estetycznych aplikacji na platformę Android.
(Używane IDE – Android Studio, główny język programowania Java)
W ramach zajęć kursowych realizowane są następujące zagadnienia:

  • zapoznanie się z zestawem narzędzi do tworzenia aplikacji (Android SDK) – instalacja oraz konfiguracja,
  • konfiguracja emulatorów oraz urządzeń, na których będzie uruchamiany program (telefony, tablety),
  • budowa aplikacji (Aktywności/Fragmenty, Usługi), cykl życia, manifest programu, certyfikaty,
  • projektowanie interfejsu graficznego aplikacji,
  • aplikacja w oparciu o klasę ViewModel (wzorzec MVVM),
  • podstawy baz danych (Sqlite, Room Persistence Library),
  • wykorzystanie sensorów oraz urządzeń wbudowanych do telefonu (kamera, akcelerometr),
  • budowa aplikacji wykorzystującej system pozycjonowania oraz Mapy Google,
  • procesy oraz wątki w Androidzie,
  • klient HTTP dla Androida (Retrofit),
  • wprowadzenie do Firebase,
  • testowanie aplikacji, raportowanie błędów (Crashlytics),
  • dystrybucja aplikacji w Google Play.

Przykładowe programy realizowane podczas zajęć edukacyjnych znajdują się tutaj Programowanie mobilne- przykłady.

Wszystkich zainteresowanych kształceniem w zakresie programowania urządzeń mobilnych zachęcamy do zapoznania się z zasadami studiowania na WSIZ pod adresem Zasady studiowania lub na stronie Studia podyplomowe.



Specjalizacja Programowanie

Zdobądź pracę swoich marzeń

Software tester

Będziesz przeprowadzał weryfikację prawidłowego działania oprogramowania i dbał o jego jakość.

Back-end Developer

Będziesz tworzył funkcjonalne aplikacje. Napiszesz logikę systemu, zadbasz o zaplecze serwerowe aplikacji oraz poprawną komunikację z bazami danych.

Software architect

Będziesz wybierał technologie, dbał o jakość kodu, określał kluczowe zależności i definiował niezbędne do zaimplementowania elementy systemu.