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
- kurs na podstwie biblioteki pytorch
- analiza i klasyfikacja obrazów (prawie jak tu)
- przewidywanie sekwencji czasowych („predykcja przyszłości„)
- szukanie ukrytych zależności w ogromnych zbiorach danych (UMAP)
- przykłady
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.