Nowości w Javie 8 okiem programistyMarcinStachniukPrezentacja z konferencji careercon.pl we Wrocławiu. Slajdy i przykłady przygotowane w 5 dni
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na daneAdam Sawicki(Polish) Prezentacja do prelekcji wygłoszonej podczas VIII Ogólnopolskiej Konferencji Inżynierii Gier Komputerowych IGK'8-2011 w Siedlcach.
Autorzy: Adam Sawicki i Tomasz Dąbrowski.
Streszczenie referatu: Artykuł opisuje wady programowania obiektowego - zarówno od strony projektowej, jak i ze względu na wydajność kodu. Porusza problem opóźnienia w dostępie do pamięci RAM we współczesnych architekturach komputerowych. Przedstawia programowanie zorientowane na dane (ang. DOD - Data-Oriented Design) jako alternatywne podejście do projektowania i implementowania silnika gry kładące nacisk na optymalizację struktur danych pod kątem szybkości. Porusza także problem wydajności poszczególnych konstrukcji języka C++.
Published 2011-03-26
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion Przy tworzeniu systemów informatycznych najważniejsze zadania wykonuje się, zanim powstanie pierwszy fragment kodu źródłowego. Wymogi stawiane współczesnym aplikacjom powodują, że inżynieria oprogramowania staje się kwestią kluczową. Opracowanie odpowiedniego projektu oraz właściwy dobór technologii i metodologii zapewniają szybką i efektywną pracę nad systemem. Niezwykle ważne jest poznanie dostępnych w języku Java struktur danych i umiejętność ich wykorzystania. Prawidłowo dobrana struktura danych znacznie przyspiesza nie tylko implementację aplikacji, ale również działanie gotowego systemu.
Książka "Struktury danych i techniki obiektowe na przykładzie Javy 5.0" przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomości zostały zaprezentowane z uwzględnieniem reguł nowoczesnej inżynierii oprogramowania. Czytając kolejne rozdziały książki, poznasz najlepsze zastosowania różnych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebę stosowania tak wielu struktur danych.
* Cykl życia oprogramowania
* Zastosowanie języka UML w projektowaniu systemów
* Obsługa błędów i wyjątków
* Testowanie oprogramowania
* Dziedziczenie i hierarchia klas
* Listy jedno- i dwukierunkowe
* Interfejs Collection
* Stosy i kolejki
* Algorytmy rekurencyjne
* Sortowanie danych
* Drzewa wyszukiwania
* Grafy
Po przeczytaniu tej książki zrozumiesz zasadę:
"Pomyśl, a dopiero potem pisz kod".
C++. Algorytmy i struktury danychWydawnictwo HelionBadanie struktur danych, elementarnych składników wykorzystywanych w informatyce, jest podstawą, w oparciu o którą możesz zdobywać cenne umiejętności. Znajomość struktur danych jest niezbędna studentom, którzy chcą programować czy też testować oprogramowanie.
W niniejszej książce zwrócono uwagę na trzy ważne aspekty struktur danych: po pierwsze, na związek struktur danych z algorytmami, między innymi na złożoność obliczeniową algorytmów. Po drugie, struktury te prezentowane są w sposób zgodny z zasadami projektowania obiektowego i obiektowym paradygmatem programowania. Po trzecie, ważną częścią książki są implementacje struktur danych w języku C++.
Książka prezentuje:
* Podstawy projektowania obiektowego w C++
* Analizę złożoności
* Listy powiązane
* Stosy i kolejki
* Rekurencję
* Drzewa binarne
* Sterty
* Drzewa wielokrotne
* Grafy
* Sortowanie i mieszanie
* Kompresja danych
* Zarządzanie pamięcią
Książka ta dostarcza studentom informatyki nie tylko niezbędnej wiedzy na temat algorytmów i struktur danych, ale prezentuje jednocześnie sposoby ich implementacji w języku C++, obecnie jednym z wiodących języków programowania. Dostarcza ona więc nie tylko wiedzy teoretycznej, ale również pozwala rozwinąć praktyczne umiejętności przydatnych w przyszłej pracy zawodowej.
Delphi. Szybki startWydawnictwo Helion Język Pascal, kojarzący się głównie z nauką programowania, stał się podstawą jednego z najpopularniejszych obecnie środowisk programistycznych -- Delphi firmy Borland. To graficzne środowisko, pozwalające na szybkie tworzenie aplikacji dzięki możliwości składania ich z "klocków" zwanych komponentami, błyskawicznie zyskało uznanie programistów na całym świecie. Kolejne wersje Delphi oferowały coraz większe możliwości. Jego najnowsza wersja pozwala na tworzenie programów dla platformy .NET i korzystanie nie tylko z języka Pascal, ale również z coraz popularniejszego C#.
Książka "Delphi. Szybki start" to doskonały przewodnik po Delphi dla początkujących użytkowników. Dzięki niemu poznasz język Object Pascal i zasady programowania obiektowego. Nauczysz się wykorzystywać komponenty do tworzenia aplikacji i od zera napiszesz własne programy. Dowiesz się, czym się różni Delphi 7 od Delphi 2005, i wykorzystasz możliwości obu tych środowisk.
* Interfejs użytkownika środowiska Delphi
* Elementy języka Object Pascal
* Programowanie obiektowe
* Obsługa wyjątków
* Tworzenie okien dialogowych
* Projektowanie interfejsów użytkownika
* Korzystanie z komponentów
Poznaj możliwości środowiska Delphi.
The metadata driven e-laboratory web clientMikołaj OlszewskiThe document presents the silf project, a metadata-driven e-laboratory developed for remote experiments in physics. It outlines the architecture, communication protocols, and benefits, highlighting a single HTML5 client that simplifies infrastructure and deployment. The system utilizes XMPP for real-time communication, allowing for a responsive and accessible web interface for users across various devices.
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na daneAdam Sawicki(Polish) Prezentacja do prelekcji wygłoszonej podczas VIII Ogólnopolskiej Konferencji Inżynierii Gier Komputerowych IGK'8-2011 w Siedlcach.
Autorzy: Adam Sawicki i Tomasz Dąbrowski.
Streszczenie referatu: Artykuł opisuje wady programowania obiektowego - zarówno od strony projektowej, jak i ze względu na wydajność kodu. Porusza problem opóźnienia w dostępie do pamięci RAM we współczesnych architekturach komputerowych. Przedstawia programowanie zorientowane na dane (ang. DOD - Data-Oriented Design) jako alternatywne podejście do projektowania i implementowania silnika gry kładące nacisk na optymalizację struktur danych pod kątem szybkości. Porusza także problem wydajności poszczególnych konstrukcji języka C++.
Published 2011-03-26
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion Przy tworzeniu systemów informatycznych najważniejsze zadania wykonuje się, zanim powstanie pierwszy fragment kodu źródłowego. Wymogi stawiane współczesnym aplikacjom powodują, że inżynieria oprogramowania staje się kwestią kluczową. Opracowanie odpowiedniego projektu oraz właściwy dobór technologii i metodologii zapewniają szybką i efektywną pracę nad systemem. Niezwykle ważne jest poznanie dostępnych w języku Java struktur danych i umiejętność ich wykorzystania. Prawidłowo dobrana struktura danych znacznie przyspiesza nie tylko implementację aplikacji, ale również działanie gotowego systemu.
Książka "Struktury danych i techniki obiektowe na przykładzie Javy 5.0" przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomości zostały zaprezentowane z uwzględnieniem reguł nowoczesnej inżynierii oprogramowania. Czytając kolejne rozdziały książki, poznasz najlepsze zastosowania różnych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebę stosowania tak wielu struktur danych.
* Cykl życia oprogramowania
* Zastosowanie języka UML w projektowaniu systemów
* Obsługa błędów i wyjątków
* Testowanie oprogramowania
* Dziedziczenie i hierarchia klas
* Listy jedno- i dwukierunkowe
* Interfejs Collection
* Stosy i kolejki
* Algorytmy rekurencyjne
* Sortowanie danych
* Drzewa wyszukiwania
* Grafy
Po przeczytaniu tej książki zrozumiesz zasadę:
"Pomyśl, a dopiero potem pisz kod".
C++. Algorytmy i struktury danychWydawnictwo HelionBadanie struktur danych, elementarnych składników wykorzystywanych w informatyce, jest podstawą, w oparciu o którą możesz zdobywać cenne umiejętności. Znajomość struktur danych jest niezbędna studentom, którzy chcą programować czy też testować oprogramowanie.
W niniejszej książce zwrócono uwagę na trzy ważne aspekty struktur danych: po pierwsze, na związek struktur danych z algorytmami, między innymi na złożoność obliczeniową algorytmów. Po drugie, struktury te prezentowane są w sposób zgodny z zasadami projektowania obiektowego i obiektowym paradygmatem programowania. Po trzecie, ważną częścią książki są implementacje struktur danych w języku C++.
Książka prezentuje:
* Podstawy projektowania obiektowego w C++
* Analizę złożoności
* Listy powiązane
* Stosy i kolejki
* Rekurencję
* Drzewa binarne
* Sterty
* Drzewa wielokrotne
* Grafy
* Sortowanie i mieszanie
* Kompresja danych
* Zarządzanie pamięcią
Książka ta dostarcza studentom informatyki nie tylko niezbędnej wiedzy na temat algorytmów i struktur danych, ale prezentuje jednocześnie sposoby ich implementacji w języku C++, obecnie jednym z wiodących języków programowania. Dostarcza ona więc nie tylko wiedzy teoretycznej, ale również pozwala rozwinąć praktyczne umiejętności przydatnych w przyszłej pracy zawodowej.
Delphi. Szybki startWydawnictwo Helion Język Pascal, kojarzący się głównie z nauką programowania, stał się podstawą jednego z najpopularniejszych obecnie środowisk programistycznych -- Delphi firmy Borland. To graficzne środowisko, pozwalające na szybkie tworzenie aplikacji dzięki możliwości składania ich z "klocków" zwanych komponentami, błyskawicznie zyskało uznanie programistów na całym świecie. Kolejne wersje Delphi oferowały coraz większe możliwości. Jego najnowsza wersja pozwala na tworzenie programów dla platformy .NET i korzystanie nie tylko z języka Pascal, ale również z coraz popularniejszego C#.
Książka "Delphi. Szybki start" to doskonały przewodnik po Delphi dla początkujących użytkowników. Dzięki niemu poznasz język Object Pascal i zasady programowania obiektowego. Nauczysz się wykorzystywać komponenty do tworzenia aplikacji i od zera napiszesz własne programy. Dowiesz się, czym się różni Delphi 7 od Delphi 2005, i wykorzystasz możliwości obu tych środowisk.
* Interfejs użytkownika środowiska Delphi
* Elementy języka Object Pascal
* Programowanie obiektowe
* Obsługa wyjątków
* Tworzenie okien dialogowych
* Projektowanie interfejsów użytkownika
* Korzystanie z komponentów
Poznaj możliwości środowiska Delphi.
The metadata driven e-laboratory web clientMikołaj OlszewskiThe document presents the silf project, a metadata-driven e-laboratory developed for remote experiments in physics. It outlines the architecture, communication protocols, and benefits, highlighting a single HTML5 client that simplifies infrastructure and deployment. The system utilizes XMPP for real-time communication, allowing for a responsive and accessible web interface for users across various devices.
Parallel quicksort cz. 1Mikołaj OlszewskiThis document describes sequential and parallel quicksort algorithms. Sequential quicksort has average complexity of O(n log n) but worst case of O(n^2). Parallel quicksort partitions the array, sorts subarrays in parallel threads, and waits for threads to complete to improve performance over sequential quicksort. It uses a queue to store threads if processors are busy and chooses split keys through various methods like first element or median. New threads are only created if the subarray size is above a minimum to reduce overhead.
2. Programowanie Komponentowe
Wykład #2: Metody opisu komponentów
Mikołaj Olszewski
Wydział Zastosowan Informatyki i Matematyki
Szkoły Głównej Gospodarstwa Wiejskiego
14.10.2014
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 2 / 35
3. Plan wykładu
1 UML
2 IDL
Typy danych
Moduły
Interfejsy
3 Podsumowanie
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 3 / 35
4. UML
Plan wykładu
1 UML
2 IDL
Typy danych
Moduły
Interfejsy
3 Podsumowanie
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 4 / 35
5. UML
UML
A co to za zwierze?
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 35
6. UML
Po co nam UML?
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 6 / 35
22. IDL
Interface Definition Language
Object Management Group
współpraca komponentów
niezaleznosc od konkretnego jezyka
opis deklaratywny
gramatyka podobna do C++
DOM W3C
OMG vs. Microsoft
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 35
23. IDL
Składnia
module <i d e n t y f i k a t o r>
f
<d e k l a r a c j e typow>;
<d e k l a r a c j e s t a l y c h >;
<d e k l a r a c j e wyjatkow>;
i n t e r f a c e <i d e n t y f i k a t o r> [:< d z i e d z i c z e n i e >] / d e f i n i c j a i n t e r f e j s u /
f
d e k l a r a c j e typow;
d e k l a r a c j e s t a l y c h ;
d e k l a r a c j e atrybutow;
d e k l a r a c j e wyjatkow;
/ d e f i n i c j a metody/
[ oneway ] t yp zwr . war. i d e n t y f i k a t o r (parametry)
[ r a i s e s ] ( wy j a t k i )
[ c o n t e x t ] ( wa r t o s c i ) ;
../
d e f i n i c j a metody/
[ oneway ] t yp zwr . war. i d e n t y f i k a t o r (parametry)
[ r a i s e s ] ( wy j a t k i )
[ c o n t e x t ] ( wa r t o s c i ) ;
..
g;
i n t e r f a c e i d e n t y f i k a t o r [: d z i e d z i c z e n i e ] / d e f i n i c j a i n t e r f e j s u /
..
g;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 20 / 35
24. IDL Typy danych
Typy podstawowe
(unsigned) short
(unsigned) long
(unsigned) long long
float
double
long double
fixed
char
wchar
boolean
octet
any
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 21 / 35
25. IDL Typy danych
Typy c.d.
definiowane
typedef long ID ;
tablice
typedef long Array [ 1 0 ] [ 2 0 ] ;
sekwencje
typedef sequence o c t e t s1 ;
typedef sequence o c t e t ,10 s2 ;
łancuchy znaków
typedef s t r i n g n1 ;
typedef s t r i n g 10 n2 ;
typy wyliczeniowe
enum Pet f cat , dog , f i s h , b i r d , r a t , h o r s e g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 22 / 35
26. IDL Typy danych
Struktury
s t ruc t Osoba
f
s t r i n g 10 imi e ;
s t r i n g 10 nazwisko ;
long r o k u r o d z e n i a ;
g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 23 / 35
27. IDL Typy danych
Unie
union Re f e r e n c e switch ( short )
f
case 1 : f s t r i n g T i t l e ; s t r i n g Author ; g
case 2 : s t r i n g URL ;
de faul t : long TopicID ;
g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 24 / 35
28. IDL Moduły
Moduły
rola porzadkowa
przestrzen nazw
module BazaDanych
f
...
g
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 25 / 35
29. IDL Interfejsy
Interfejsy
opis dostarczanych usług
publiczne składowe
i n t e r f a c e Example1
f
r e a d o n l y a t t r i b u t e s t r i n g Name ;
a t t r i b u t e long Value ;
long AddToValue ( i n long Summand , out long Re s u l t ) ;
g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 26 / 35
30. IDL Interfejsy
Atrybuty
a t t r i b u t e f l o a t l i c z b a ;
r e a d o n l y a t t r i b u t e double suma ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 27 / 35
31. IDL Interfejsy
Wyjatki
i n t e r f a c e Konto
f
e x c e p t i o n BrakSrodkow f g ;
. . .
g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 28 / 35
32. IDL Interfejsy
Metody
i n t e r f a c e Calka
f
double Suma( i n o u t double a , i n double b ) ;
double I l o c z y n ( i n o u t double a , i n double b ) ;
g ;
i n t e r f a c e Drzewo
f
e x c e p t i o n Ob i e k t I s t n i e j e f g ;
void NowyElement ( i n double a ) r a i s e s ( Ob i e k t I s t n i e j e ) ;
oneway void Re o r g a n i z a c j a ( ) ;
g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 29 / 35
33. IDL Interfejsy
Dziedziczenie
i n t e r f a c e Baza
f
. . .
g ;
i n t e r f a c e I n t e r f e j sPo c h o d n y : Baza
f
. . .
g ;
Mozliwe dziedziczenie wielokrotne bez wspólnego przodka
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 30 / 35
34. IDL Interfejsy
Przykład
typedef sequencedouble TTab ;
i n t e r f a c e Calc
f
double Sum( i n double a , i n double b ) ;
double Di f f ( i n double a , i n double b ) ;
double Mul ( i n double a , i n double b ) ;
double Div ( i n double a , i n double b ) ;
double Min ( i n TTab a ) ;
double Max( i n TTab b ) ;
double SumTab( i n TTab a ) ;
double MulTab ( i n TTab a ) ;
oneway void Cl e a r ( ) ;
g ;
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 31 / 35
35. Podsumowanie
Plan wykładu
1 UML
2 IDL
Typy danych
Moduły
Interfejsy
3 Podsumowanie
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 35
36. Podsumowanie
Podsumowanie
Rózne metody opisu komponentów
Róznice w standardach
Główny nacisk na wyspecyfikowanie interfejsu
ogół - UML, szczegół - IDL
Jednoznaczne nazwy
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 33 / 35
37. Podsumowanie
Do domu
Przypomniec sobie diagramy UML, w szczególnosci komponentów i
klas.
Zapoznac sie z IDL-em.
Usprawnic obsługe git-a i bitbucket-a!
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 34 / 35