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. Dominującym językiem programowania jest Java.
  • 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

IntelliJ_15_logo

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ąć jak przygotowywać dedykowane serwery aplikacyjne, serwery baz danych, czy też jak „rozmawiać” z serwisami REST udostępnianymi przez aplikacje Javy).

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”); treści wykładów są publikowane „live”, a 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 w Javie

  • efektywne wykorzystanie elementów biblioteki standardowej
  • List<>, 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 (implementacja interfejsów, rozszerzanie klas istniejących)
  • wykorzystanie bibliotek zewnętrznych, narzędzie Maven
  • 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 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; elementarne aplikacje Web (JSP), wykorzystanie serwerów aplikacyjnych
  • kontrolery REST w Java Spring, współpraca z dynamicznymi aplikacjami Web (AngularJS)
  • konfiguracja funkcjonalnych aspektów aplikacji w Spring (logowanie, JPA), w aplikacjach na serwery aplikacyjne (.war) i aplikacjach wolnostojących (Spring-Boot)

wildfly_logo_600px

spring-by-pivotal