Języki programowania

Przykładowe testy zaliczeniowe do pobrania:

  • pytaniaJP-2024-2.pdf
  • pytaniaJP-2024-1.pdf
  • pytaniaJP-2023-2.pdf
  • pytaniaJP-2023-1.pdf
  • pytaniaJP-2022-2.pdf
  • pytaniaJP-2022-1.pdf
  • pytaniaJP-2021-2.pdf
  • pytaniaJP-2021-1.pdf
  • pytaniaJP-2020-2.pdf
  • pytaniaJP-2020-1.pdf
  • pytaniaJP-2019-2.pdf
  • pytaniaJP-2019-1.pdf
  • pytaniaJP-2018-1.pdf
  • pytaniaJP-2018-2.pdf
  • pytaniaJP-2017-2.pdf
  • pytaniaJP-2017-1.pdf
  • pytaniaJP-2011.pdf
  • Materiały do wykładu:

  • Wyk01-jdk-ide-TK-2023.pdf
  • Wyk02-jvm-klasy-modyfikatory-TK.pdf
  • Wyk03-jvm-dziedziczenie-interfejsy-TK.pdf
  • Wyk04-jvm-lambda_kolekcje_wzorce_gui-TK.pdf
  • Wyk05-jvm-wlasciwosci_watki_wyjatki-TK.pdf
  • Wyk06-jdk-io-nio-komunikacja_sieciowa.pdf
  • JavaWyk00-Klasy_Interf_Wyj_TK.pdf
  • JavaWyk01-Watki-MenBezp-Strum-TK.pdf
  • JavaWyk02-Swing-TK.pdf
  • JavaWyk03-MenUlozeniaSysProp-TK.pdf
  • JavaWyk06-RMI-TK.pdf
  • JavaWyk09-RozwSieciowe.pdf
  • kwadratSzyfrujacy.txt
  • punkty.out
  • Nowe kody z wykładu:

  • GrafikaSWING.zip
  • GrafikaJavaFX.zip
  • GrafikaJavaFX2.zip
  • Wyk03-2021.zip
  • Wyk04-2021.zip
  • Wyk05-2021.zip
  • Wyk06-2020.zip
  • SimpleFX.zip
  • Wyk01-CzteryProjekty.zip
  • Wyk03-ProjektEclipse.zip
  • lab04.zip
  • Wyk07-2020-RMI.zip
  • NioSocketExample.zip
  • FileLoading01.zip
  • Przydatne linki:

  • Difference between Abstract Class and Interface in Java
  • Syntactic Sugar
  • Java 11 - Local-Variable Syntax for Lambda Parameters (JEP 323)
  • JEP 323: Local-Variable Syntax for Lambda Parameters
  • Lambda Expressions
  • Java 8 - Lambdas, Method References and Composition
  • Package java.util.function
  • Tired of Null Pointer Exceptions? Consider Using Java SE 8's "Optional"!
  • Java Stream API
  • Java 8 Stream Tutorial
  • What Lambda Expressions are compiled to? What is their runtime behavior?
  • Thread.sleep inside infinite while loop in lambda doesn't require 'catch (InterruptedException)' - why not?
  • Hacking Lambda Expressions in Java
  • Lesson: Using Swing Components
  • Chain of Responsibility Pattern
  • Exception Handling in Java
  • Functional Programming With Java: Exception Handling
  • 9 Best Practices to Handle Exceptions in Java (porady, jak obsługiwać wyjątki)
  • Interrupts (tutorial o przerywanu wątków)
  • Lesson: Concurrency (tutorial o pakiecie java.util.concurrent)
  • Java 8 Concurrency Tutorial: Threads and Executors
  • Java Language and Virtual Machine Specifications. 12.6. Finalization of Class Instances
  • Java File vs Path
  • Java Path vs File
  • Java NIO Selector
  • Permissions in the Java Development Kit (JDK)
  • Permissions in the JDK
  • Permissions and Security Policy
  • Running Java Security Manager without the default java.policy file
  • Dynamic code downloading using JavaT RMI (Using the java.rmi.server.codebase Property)
  • Stare kody z wykładu:

  • Wyk003.zip
  • Wyk004.zip
  • Wyk007.zip
  • Wyklad002.zip
  • Wyklad003.zip
  • Wyklad004.zip
  • Wyklad006.zip - program z wątkami.
  • gniazda.zip - źródła programu z gniazdami TCP/IP.
  • SieciGniazdaURL.zip
  • Przykładowe tematy laboratoriów:

    Laboratorium 1: JP3lab1.pdf
    Laboratorium 2: JP3lab2.pdf
    Laboratorium 3: JP3lab3.pdf
    Laboratorium 4: JP3lab4.pdf
    Laboratorium 5: JP3lab5.pdf
    Laboratorium 6: JP3lab6.pdf
    Laboratorium 7: JP3lab7.pdf

    Zadane tematy laboratoriów:

    Poniżej znajdują się tematy laboratoriów realizowanych w semestrze zimowym 2018/2019 (odbywających się w środy TP/TN, godz.11.15-13.00, 15:15-17:00, 127P/C3). Bieżące tematy są publikowane na platformie eportal (i są dostępne tylko dla osób zapisanych na laboratoria).

    Laboratorium 1

    Pierwsze zajęcia w semestrze mają charakter organizacyjny. Oprócz szkolenia stanowiskowego omawiane na nim są: sposób prowadzenia zajęć, zasady zaliczania, środowisko pracy. Na tych zajęciach powstaje pierwszy projekt typu "Witaj świecie" w wybranym IDE oraz z wykorzystaniem dostępnego jdk (preferowane jest eclipse photon + jdk1.8 lub jdk10 - takie narzędzia dostępne są na komputerach w laboratorium).

    Laboratorium 2

    Na drugich zajęciach należy wykazać się umiejętnością tworzenia algorytmów. Bazując na doświadczeniach zdobytych na wcześniejszych kursach (Podstawy programowania, Programowanie obiektowe) należy zaimplementować rozwiązanie zadanego problemu. Potrzebna do tego wiedza niewiele wychodzi poza składnię znaną z języka C/C++ (deklaracja zmiennych, pętle, instrukcje warunkowe, deklaracja metod itp.).

    Laboratorium 3

    Na trzecich zajęciach należy zbudować aplikację użytkową przetwarzającą dane, pozwalającą na interakcje z użytkownikiem z poziomu konsoli. W aplikacji powinny istnieć klasy odpowiedzialne za przetwarzanie danych i klasy odpowiedzialne za wyświetlanie komunikatów i pobieranie danych od użytkownika (logika biznesowa powinna być oddzielona od interfejsu użytkownika by dało się bez problemu podmienić interfejs tekstowy na interfejs graficzny). Utrwalanie danych powinno być zrealizowane z wykorzystaniem plików. W aplikacji będzie trzeba obsłużyć wyjątki (pojawiające się podczas operacji na strumieniach, opcjonalnie - pojawiające się podczas operacji na strukturach danych) oraz zaprojektować odpowiednie struktury danych (można wykorzystać kolekcje i mapy).

    Laboratorium 4

    Zajęcia laboratoryjne mają pomóc w doskonaleniu umiejętności programowania obiektowego oraz opanowaniu technik budowy aplikacji oferujących użytkownikowi graficzny interfejs. Podczas implementacji graficznego interfejsu zalecane jest wykorzystanie klas SWING (można też posłużyć się klasami JavFX, jednak to wykracza poza zakres kursu).

    Laboratorium 5

    W trakcie zajęć poruszone zostaną problemy występujące podczas tworzenia i uruchamiania aplikacji wielowątkowych. Ponadto podjęta zostanie próba zbudowania interfejsu umożliwiającego wizualizację ich wewnętrznej aktywności.

    Laboratorium 6

    W trakcie zajęć podjęta zostanie próba zbudowania systemu składającego się z kilku aplikacji komunikujących się poprzez gniazda TCP/IP.

    Laboratorium 7

    Celem zajęć jest zapoznanie się z problemem budowy systemu składającego się z kilku rozproszonych elementów komunikujących się ze sobą za pomocą RMI.

    Dodatki:

    Jeśli nie oznaczono inaczej, ta strona internetowa wraz z zawartością podlegają licencji Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 3.0 Polska (CC BY-NC-SA 3.0 PL).