Programowanie

(Opiekun: dr inż., dr n.f. Piotr Marecki, prof.nadzw. WSIZ)

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 (w tym Androidowych) polecamy kursy prowadzone w języku Java, natomiast dla osób zainteresowanych front-endem (w tym webdesignem i grafiką internetową) polecamy kursy w Javascript/Typescript.

  • Bezpieczeństwo kompilowalnego języka z explicite typami (int, String, MyDataEntity)
  • Pełne zorientowanie obiektowe, właściwie orientujące programistę
  • Szybkość dorównującą C++
  • Bogata biblioteka standardowa (np. aplikacje graficzne, funkcje kryptograficzne, dostęp do warstwy sieciowej)
  • Ekosystem stabilnych bibliotek i frameworków do konstrukcji softwareu o znaczeniu korporacyjnym, np. Spring Framework
  • Wydajną integracja z warstwą bazodanową (Object-Relational-Mapping, Hibernate, JPA, JTA)
  • Możliwość tworzenia aplikacji samodzielnych uruchamialnych na wszystkich systemach operacyjnych, aplikacji Web (z wydajnym backendem Javy) i korporacyjnych, uruchamialnych na serwerach aplikacyjnych (Tomcat, JBoss), i aplikacji androidowych
  • Wydajny IDE (IntelliJ) umożliwiający bezproblemowy start przygody z Javą, jak również wsparcie dużych systemów informatycznych o znaczeniu korporacyjnym

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 udostępnianymi przez aplikacje Javy lub Node.js).

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 (JBrains IntelliJ Idea)
  • podstawy konstrukcji interfejsów graficznych, i oprogramowania podstawowych zdarzeń
  • korzystanie z obiektowych własności klas biblioteki standardowej Javy

Semestr 2 : Wydajna praca

  • efektywne wykorzystanie elementów biblioteki standardowej
  • Map<>, Set<>, i ich wykorzystanie dla własnych klas danych
  • zbiory i tablice z hashowaniem (HashSet, HashMap), i ich wykorzystanie
  • rozwiązywanie implementacyjnych  zadań programistycznych  (typu A, Division 2)
  • projektowanie funkcjonalnych interfejsów graficznych, w tym tabel.

Semestr 3 : Obiektowo-zorientowana architektura aplikacji

  • best-practices podziału aplikacji na funkcjonalne moduły
  • hierarchia obiektowa Javy/Typescript (implementacja interfejsów, rozszerzanie klas istniejących)
  • wykorzystanie bibliotek zewnętrznych, narzędzie Maven / npm
  • rozwiązywanie  zadań programistycznych  (typu greedy, brute-force, sortings,  B, Division 2)

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
  • mapowanie danych z klas Javy/Typescript na rzędy tabel SQL; narzędzia ORM (hibernate)
  • wykorzystanie JPA w implementacji Spring; praca na przygotowanych uprzednio szablonach Maven/Spring
  • best-practices tworzenia wielo-klienckiego dostępu do danych; zachowanie integralności, transakcyjność

Semestr 6 : Programowanie systemów korporacyjnych

  • podział aplikacji na warstwy dostępu do danych, logiki biznesowej i prezentacji
  • MVC w wersji Spring-a lub Node.js/express
  • kontrolery REST w Java Spring lub Node.js/express, współpraca z dynamicznymi aplikacjami Web (Angular 7)
  • tworzenie pakietów wdrożeniowych, i uruchamianie aplikacji na platformach aplikacyjnych (Wildfly, systemd, nginx, docker)

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.

Wszystkich zainteresowanych kształceniem w zakresie programowania urządzeń mobilnych zachęcamy do zapoznania się z zasadami studiowania na WSIZ pod adresem Studia inżynierskie od października 2019 lub na stronie Studia podyplomowe od października 2019.

wildfly_logo_600px

spring-by-pivotal