Clojure. Obca technologia wśród nas. Filip Koczorowski. luty 2010
|
|
- Robert Tomaszewski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Clojure Obca technologia wśród nas Filip Koczorowski luty 2010 Historia tej prezentacji zaczyna się kilka miesięcy temu. Rozmawiałem z Adamem Dudczakiem w październiku 2009 roku o tym, że ewentualnie mógłbym poprowadzić prelekcję na JUG. Z kilku moich propozycji tematów najbardziej zainteresował go ten o Clojure. Skomentował go słowami "to byłoby fajne, programowanie funkcjonalne to teraz gorący temat". Grzecznie pokiwałem głową, chociaż później stwierdziłem, że to nie do końca jest tak.
2 Co to jest Clojure? funkcyjny dynamiczny działający na JVM również na CLR Rzeczywiście, Clojure jest wręcz sztandarowym przykładem języka ze zdobywającego ostatnio popularność nurtu programowania funkcyjnego. Używa silnej i dynamicznej kontroli typów, co również jest popularnym motywem. To wszystko oferuje będąc językiem działającym na wirtualnej maszynie Javy. Posiada daleko posuniętą dwukierunkową integrację z kodem pisanym w języku Java i jest zgodny z tak napisanym kodem na poziomie Java bajtkodu. Jest jednak coś jeszcze, nad czym nie sposób przejść tak po prostu do porządku dziennego...
3 Co to jest Clojure? język należący do rodziny Lisp Clojure należy mianowicie do rodziny języków Lisp (dokładniej jest oparty na Lisp-1, co czyni go trochę podobnym do języka Scheme). Z faktu bycia Lisp'em wywodzi się wrażenie obcości Clojure, zupełnie jakby nie pochodził z naszej planety. Różni się on znacząco od popularnych języków takich jak C, Java, Python, Basic itd. Zaakceptowanie jego odmienności może być trudne, ale jednocześnie bardzo satysfakcjonujące i opłacalne.
4 Więc czym jest Clojure? Można więc scharakteryzować Clojure jako dynamiczny język programowania ogólnego przeznaczenia, działający na platformie JVM. Jest to na dodatek język funkcyjny z niemodyfikowalnymi danymi. O tym co to oznacza będzie za chwilę. Jest to wreszcie jeden z dialektów Lisp i od tego zaczniemy.
5 Lisp - żywy dinozaur wynaleziony w 1958 r. Język Lisp wynalazł prof. John McCarthy z MIT ponad pół wieku temu (10 lat przed tym jak człowiek stanął na Księżycu). Zdjęcie przedstawia autentyczną maszynę - IBM 704 z 1954r. na której pierwsza wersja Lisp została uruchomiona. W kategoriach informatycznych tak odległe czasy to chwila po Wielkim Wybuchu. A może to właśnie wynalezienie Lisp spowodowało Wielki Wybuch?
6 Lisp miał to wcześniej instrukcję warunkową funkcje jako wartości dynamiczną kontrolę typów rekurencję odśmiecanie pamięci program jako modyfikowalną strukturę drzewiastą w pamięci Wspomniany Wielki Wybuch uznawany jest za początek wszystkiego. Podobnie Lisp. Oto niektóre, najważniejsze innowacje, które właśnie w Lisp pojawiły się jako pierwsze. Część z nich może znacie ze innych języków programowania. Liczba tych innowacji jest naprawdę bardzo długa i co ciekawe, ostatnia pozycja z tej listy ciągle nie została w pełni zaadoptowana w innych językach.
7 Lisp potrafi się dostosować początkowy brak OOP własna innowacyjna implementacja OOP oparta o tzw. multimetody Warto też zauważyć, że Lisp nie tylko wprowadzał, ale także chłonął pomysły. Słynna rewolucja programowania zorientowanego obiektowo (Object Oriented Programming) przyszła do rodziny języków Lisp trochę później niż do innych. Wyjątkowo dobrze zintegrowana została jednak z samym językiem i obecnie stanowi jeden z podstawowych sposobów implementacji modelu OOP w języku programowania.
8 Lisp - cechy wiele odmian LISt Processing wyrażenia symboliczne tekstowa reprezentacja listy (struktury danych) ang. symbolic expression w skrócie sexp :) O całej rodzinie języków Lisp można powiedzieć dwie rzeczy: jest ich wiele, a wszystkie łączy posiadanie tzw. wyrażeń symbolicznych. Te skrótowo nazywane s-wyrażenia, lub w oryginale s-expressions, to tekstowa reprezentacja strukturyzowanych danych w postaci listy. Stąd pochodzi nazwa Lisp - List Processing.
9 Wyrażenia symboliczne (length (list )) Skąd pomysł, żeby wszystko traktować jako listę? Powody były bardzo ważne i tajemnicze, a szczegóły giną już w mroku dziejów... Tak naprawdę to znaczy, że nie wiem skąd pomysł się wziął, ale ma istotną konsekwencję: kod i dane mają taką samą reprezentację w języku Lisp. I oczywiście reprezentacją tą jest lista.
10 Wyrażenia symboliczne (length (list )) instrukcja dane Skoro jednak kod i dane to to samo, jak odróżnić jedno od drugiego? Stosowana jest prosta zasada - pierwszy element listy traktowany jest jako instrukcja do wykonania.
11 Wyrażenia symboliczne (length (list )) instrukcja dane Skoro jednak kod i dane to to samo, jak odróżnić jedno od drugiego? Stosowana jest prosta zasada - pierwszy element listy traktowany jest jako instrukcja do wykonania.
12 S-wyrażenia <property name="build" location="build/classes" /> <mkdir dir="${build}" /> Jeśli dla kogoś pomysł z unifikacją kodu i danych wydaje się zbyt abstrakcyjny, warto sięgnąć po bardziej znajomy przykład. Apache Ant. Bardzo użyteczne narzędzie. Instrukcje Ant mają postać pliku XML. Sam XML z kolei uznawany jest za format zapisu danych. I rzeczywiście, w skrypcie Ant typowe instrukcje mieszają się z typowymi danymi, a zapis jednych od drugich wiele się nie różni.
13 S-wyrażenia <property name="build" location="build/classes" /> (def build "build/classes") <mkdir dir="${build}" /> (mkdir build) Analogicznie zapisany skrypt Lisp wyglądałby tak. Nie różni się specjalnie od XMLowego zapisu, który stosuje Ant. W praktyce jednak, Ant nie idzie tak daleko jak Lisp w wykorzystaniu faktu, że instrukcje i dane mają tą samą reprezentację. Lisp pozwala bowiem programom operować na kodzie programów. Stąd popularne określenie Lisp jako "programowalnego języka programowania".
14 S-wyrażenia <property name="build" location="build/classes" /> (def build "build/classes") <mkdir dir="${build}" /> (mkdir build) Na tym slajdzie wyróżniłem wyjątkowo dla Lisp charakterystyczne nawiasy. To nie przypadek, że faktycznie każdy program w Lisp je zawiera. Dlaczego?
15 Lisp - składnia () Bo stanowią jedyny stały element składni języka Lisp. Nawiasem mówiąc, normalnie jestem przeciwny zamęczaniu wyliczaniem wszystkich elementów składniowych języka na prezentacjach, ale tu zrobiłem wyjątek.
16 REPL Read Evaluate Print Loop R E P Każdy element s-wyrażenia jest obliczany. Lisp działa etapowo, jak silnik trójsuwowy. Pierwszy suw to wczytanie (Read). Wczytany tekst jest obliczany w drugim suwie (Evaluate). W trzecim suwie wyliczona wartość jest zwracana jako tekst, np. do wyświetlenia (Print). I cały cykl pracy jest powtarzany (Loop). Ten tryb działania pozwala na interaktywną pracę z programem, czyli coś co oferują np. Ruby ze swoim IRB, Python, Scala itd. Tu ciekawostka - w wielu przypadkach takie interaktywne konsole w innych językach są nazywane "REPL". Kluczową rzeczą jest tutaj fakt, że Read i Print operują na takim samym formacie czystego tekstu, który może, ale wcale nie musi pochodzić z pliku z kodem źródłowym.
17 REPL Read Evaluate 1. macro expand 2. evaluate Print Loop Tak naprawdę to suw pracy (Evaluate) składa się z dwóch etapów. Przed właściwym obliczeniem wartości występuje etap rozwinięcia makr.
18 Makra tylko z pozoru takie jak w C ten sam język co właściwy kod kod piszący kod (który pisze kod, który pisze...) rozszerzalność języka dynamiczność języka Makra w Lisp to niesłychanie potężne narzędzie. Niestety nazywają się tak samo, jak mechanizm stosowany w języku C. Tymczasem makro z Lisp ma się do makra z C tak, jak krzesło do krzesła elektrycznego. Lisp jako jedyny ma mechanizm makr, który operuje na tym samym językiem i konstrukcjami składniowymi co reszta kodu. W praktyce pozwala to na niespotykaną nigdzie indziej dynamiczność języka i niemal nieskończoną rozszerzalność (patrz wcześniejszy slajd "Lisp potrafi się dostosować"). Właśnie ta funkcjonalność Lisp pozwoliła mu na przetrwanie od lat 60. ubiegłego wieku aż do dzisiaj.
19 Makra Lisp Java 5 możliwość dodania własnej konstrukcji pętli możliwość dodania dowolnej innej konstrukcji językowej dodana nowa, wygodna pętla "for"??? Makra to temat rzeka. Nie chcę przeciągać tej prezentacji w nieskończoność, podam więc jeden przykład użyteczności mechanizmu makr. W składni języka Java w wersji 5 pojawiła się bardzo długo wyczekiwana i wygodna w użyciu pętla "for" do iterowania po elementach kolekcji. Miliony programistów odetchnęło z ulgą. Nie musieliby jednak na nią czekać, gdyby ich język programowania pozwalał na tworzenie nowych konstrukcji językowych, tak jak w Lisp.
20 I wreszcie Clojure wszystko co wcześniej plus trochę więcej składni orientacja na funkcje działanie na JVM ułatwienia dla aplikacji wielowątkowych Prezentacja miała dotyczyć języka Clojure, więc czas przejść do Clojure. Właściwie wszystko to, o czym mówiłem do tej pory ma przełożenie na Clojure, bo jest to Lisp. Dodatkowe cechy wymieniłem tutaj i zaraz je omówię.
21 Clojure - składnia ("typowa dla Lisp" "lista") ["wektor" "czyli" "jak tablica"] {:tablica "asocjacyjna"} #{"zbiór" "różnych" "elementów"} Obowiązkową dla Lisp składnię dla list Clojure rozszerza o wygodną składnię definiowania wektorów (czyli z grubsza tradycyjnych tablic), tablic asocjacyjnych (zwanych czasami mapowaniami) i zbiorów. Odpowiedniki tych typów w języku Java to LinkedList, ArrayList, Map, Set.
22 Clojure - składnia \tab "String" ; komentarz do końca linii #"wyrażenie regularne" A oto kilka kolejnych elementów składniowych języka Clojure.
23 Clojure - składnia \tab (char \unr_w_unicode) "String" (str \S \t \r \i \n \g) ; komentarz do końca linii (comment "jakiś tekst") #"wyrażenie regularne" (re-pattern "wyrażenie regularne") Pokazane tu elementy składniowe nie są w tym momencie jednak istotne same w sobie. Co jest ważne, to fakt, że każdy z pokazanych tu elementów, za pomocą tzw. makra czytającego, uruchamianego podczas suwu READ w REPL, jest transformowany do standardowego s-wyrażenia.
24 Clojure - funkcyjny funkcje jako: wartości i kolejny typ danych element zwracany z innych funkcji i przekazywany jako parametr niezmienne (niemodyfikowalne) struktury danych Clojure to tzw. język funkcyjny, albo inaczej "zorientowany na funkcje". W praktyce wynikają z tego dwie podstawowe cechy. Po pierwsze, funkcje są pełnoprawnymi danymi, które można zwracać jako wynik działania innych funkcji, albo przekazywać jako parametry wywołania. Po drugie, wszystkie struktury danych w Clojure są niezmienne. To tak, jakby np. w języku Java każda zmienna była "final".
25 Clojure - na JavaVM kompilowany do bajtkodu "lukier składniowy" (import '(javax.swing JFrame JButton)) (let [frame (JFrame. "Test!") do-button (JButton. "Start")] (doto frame (.add do-button) (.setsize ) (.setvisible true))) Clojure jest też pełnoprawnym językiem platformy Java Virtual Machine. A to dlatego, że programy napisane w Clojure są kompilowane do bajtkodu Java. Clojure "pod maską" używa standardowych typów i pasujących klas języka Java (np. funkcje reprezentowane są przez obiekty implementujące interfejsy Runnable i Callable). Aby załagodzić ból korzystania z niekiedy barokowych konstrukcji i bibliotek języka Java, Clojure daje tzw. lukier składniowy. Ułatwia on typowe zadania, takie jak importowanie typów, czy ustawianie właściwości obiektu.
26 Clojure - wielowątkowość funkcyjny charakter to pewniejsza podstawa do programowania współbieżnego Czas teraz na główne danie w menu - język funkcyjny Clojure jako lepsza baza dla tworzenia programów działających wielowątkowo. Jest kilka dużych zalet podejścia zorientowanego na funkcje w kontekście programowania współbieżnego.
27 Clojure - wielowątkowość funkcja matematyczna zawsze zwraca ten sam wynik dla tych samych danych można je wykonywać równolegle łatwiej ją testować naturalna modularność programu Pierwsza zaleta języków funkcyjnych to cecha funkcji w sensie matematycznym. Zawsze zwracają ten sam wynik dla tych samych danych wejściowych i z zasady ich wykonanie nie wpływa na wykonanie innych funkcji w tym samym czasie. To znaczy że nie ma przeszkód, żeby wykonywać wiele funkcji równolegle. Dodatkowo, funkcje łatwiej testować, bo nie potrzeba martwić się o kontekst wywołania (stan obiektu itp.). Wreszcie podejście funkcyjne w naturalny sposób powoduje, że program powstaje modularnie. Drobne funkcje wykonujące jedną rzecz, łączy się w bardziej złożone, te w jeszcze bardziej złożone, aż w końcu gotowa aplikacja pojawia się niemal sama.
28 Clojure - wielowątkowość wywołanie funkcji z różnych wątków jest bezpieczne w językach czysto funkcyjnych - zawsze Clojure nie jest czysto funkcyjny...ale wiele mu nie brakuje Funkcję można wykonywać bezpiecznie w różnych wątków, ponieważ z zasady nie modyfikuje globalnego stanu. To druga duża zaleta języków funkcyjnych. Jednocześnie jest to jednak ograniczenie. Bo modyfikowanie globalnego stanu, czyli np. wypisanie czegoś do pliku, czasami się przydaje. W językach czysto funkcyjnych, takich jak Haskell, reguła ta jest przestrzegana. Clojure nie jest aż tak dogmatyczny, jednak ilość miejsc potencjalnie niebezpiecznych jest ograniczona do minimum.
29 Clojure - wielowątkowość pamięć transakcyjna (ang. Software Transactional Memory ) zasada dostępu z baz danych synchroniczny dostęp do danej współdzielonej w ramach transakcji dostęp jest atomowy, spójny oraz izolowany (ACI) Poza podejściem funkcyjnym, Clojure jest przyjazny dla programów wielowątkowych na kilka innych sposobów. Software Transactional Memory (STM) to pomysł na wykorzystanie zasady dostępu do współdzielonego zasobu, znanego z systemów baz danych. Tam nikt nie widzi nic dziwnego w tym, że tysiące równoczesnych żądań dostępu do np. pojedynczej krotki tabeli nie powoduje zawieszenia aplikacji, a każde z tych żądań zostaje obsłużone. Używa się tam skrótu ACID, który znaczy że każdy dostęp jest atomowy, spójny, izolowany i trwały. STM w Clojure gwarantuje trzy pierwsze cechy.
30 Clojure - wielowątkowość agenci przekazywanie danych przez komunikaty (ang. message passing concurrency ) zasada dostępu stosowana w językach Erlang, Scala asynchroniczny i niezależny dostęp danej współdzielonej Autor Clojure, Rich Hickey, stwierdził że obecnie STM oraz inne metodyki mające rozwiązać problem pewnego programowania współbieżnego nie są dostatecznie zweryfikowane w praktyce. Dlatego zaproponował wiele takich metodyk na raz w Clojure. STM dotyczy sytuacji dostępu synchronicznego. Dla sytuacji, kiedy potrzebny jest dostęp asynchroniczny, dostępny jest mechanizm tzw. agentów. W największym skrócie to mechanizm przekazywania asynchronicznych komunikatów między niezależnymi wątkami.
31 Clojure - wielowątkowość atomy synchroniczny i niezależny dostęp danej współdzielonej dana to jeden z niemodyfikowalnych typów Clojure modyfikacji ulega referencja na "atom", a nie "atom" (dane) sam w sobie Agenci sprawdzają się, kiedy dostęp do współdzielonych danych powinien być asynchroniczny. Czasami jednak potrzebna jest synchronizacja dostępu i wtedy do dyspozycji Clojure daje nam mechanizm tzw. atomów.
32 Clojure - wielowątkowość dostęp do współdzielonych synchroniczny danych skoordynowany niezależny asynchroniczny - STM atomy agenci Te trzy różne mechanizmy składają się na kompletny zestaw narzędzi programowania współbieżnego.
33 Clojure - co zapamiętać? Clojure to język funkcyjny z rodziny Lisp działający na platformie JavaVM programowalny język programowania z bardzo rozbudowanym wsparciem dla współbieżności I wreszcie dochodzimy do podsumowania. Wymieniłem tutaj rzeczy, które trzeba zapamiętać z tej prezentacji. Dołożyłbym do tego jeszcze krótką informację - Clojure już jest używany w praktyce, chociaż naturalnie nie sposób nazwać języka Clojure popularnym. Portal jest napisany w Clojure.
34 Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot. - Eric Steven Raymond Powstaje jeszcze na koniec pytanie czy warto poznać Clojure? Moja odpowiedź jest oczywista - tak. A na pytanie "dlaczego?", mogę zacytować Erica Raymonda, znanego chociażby z artykułu "the Cathedral and the Bazaar". W wolnym tłumaczeniu: "Lisp warto poznać dla tego przenikliwego uczucia olśnienia, jakiego doznasz kiedy naprawdę go poznasz; to doświadczenie sprawi, że będziesz lepszym programistą, nawet jeśli nie będziesz już więcej Lisp używał".
35 Chcesz więcej? strona główna projektu Clojure Clojure - functional programming for the JVM Clojure on blip.tv Dla wszystkich zaintrygowanych tą prezentacją podaję zestaw obowiązkowych do odwiedzenia adresów.
36 Dziękuję za uwagę W prezentacji użyłem "Lisp - Alien technology" logo z com/logo.html oraz "Duke Open Source" logo z Obrazek serca pochodzi z Znak "Exclamation" pochodzi z com/photos/itsaboyd/ /. Zdjęcie IBM 704 pochodzi z Wikipedii dzięki Lawrence Livermore National Laboratory.
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Bardziej szczegółowoParadygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Bardziej szczegółowoFilozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego
Filozoa Clojure Mateusz Dereniowski Instytut Informatyki Uniwersytetu Wrocªawskiego 15 lipca 2010 Wprowadzenie Clojure w skrócie Wieloplatformowo± aka JVM Standardy Czym jest JVM Co ª czy Clojure i JVM?
Bardziej szczegółowoPrzyszłość programowania Języki funkcyjne na przykładzie Clojure
Wstęp Przyszłość programowania Języki funkcyjne na przykładzie Clojure inż. Daniel Harbuz 23 maja 2012 Przyszłość programowaniajęzyki funkcyjne na przykładzie Clojure 23 maja 2012 1 / 31 Wstęp Ageda Agenda
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Bardziej szczegółowoCzym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowoPyPy's Approach to Virtual Machine Construction
PyPy's Approach to Virtual Machine Construction Armin Rigo, Samuele Pedroni Prezentacja: Michał Bendowski Czym jest PyPy? Implementacja Pythona w Pythonie - wydajniejsza niż oryginalna implementacja w
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy
Bardziej szczegółowoPython. Skąd taka nazwa? Kurs systemu UNIX 1
Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Bardziej szczegółowoWykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Bardziej szczegółowoProgramowanie Komponentowe WebAPI
Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,
Bardziej szczegółowoProduktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i
Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z
Bardziej szczegółowoProgramowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Bardziej szczegółowoProgramowanie obiektowe. Wprowadzenie
1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoProgramowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowoINFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE
Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoOptimizing Programs with Intended Semantics
Interaktywna optymalizacja programów 26 kwietnia 2010 Spis treści Spis treści Wstęp Omówienie zaproponowanego algorytmu na przykładzie Wewnętrzna reprezentacja reguł dotyczących optymalizacji Wybrane szczegóły
Bardziej szczegółowoOSGi Agata Hejmej 4.05.2009
OSGi Agata Hejmej 4.05.2009 Plan prezentacji Co to jest OSGi Jakie problemy rozwiązuje Opis standardu Przykładowa aplikacja Podsumowanie korzyści Co to jest OSGi? Standard, który pozwala na tworzenie wysoce
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowoRedis, skrypty w języku Lua
edis, skrypty w języku Lua 1/15 Redis, skrypty w języku Lua Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej
Bardziej szczegółowoWspółbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Bardziej szczegółowoHurtownie danych wykład 5
Hurtownie danych wykład 5 dr Sebastian Zając SGH Warszawa 7 lutego 2017 1 Współbieżność i integracja Niezgodność impedancji 2 bazy danych Współbieżność i integracja Niezgodność impedancji Bazy relacyjne
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Bardziej szczegółowoJak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoStworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Bardziej szczegółowoZłożoność informacyjna Kołmogorowa. Paweł Parys
Złożoność informacyjna Kołmogorowa Paweł Parys Serock 2012 niektóre liczby łatwiej zapamiętać niż inne... (to zależy nie tylko od wielkości liczby) 100...0 100 100... 100 100 100 25839496603316858921 31415926535897932384
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowoPierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy
Bardziej szczegółowoSZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski -
S t r o n a 2 SZYBKO ZROZUMIEĆ VISUAL BASIC 2012 Artur Niewiarowski - Copyright by Artur Niewiarowski 2013 ISBN: 978-83-937802-0-4 - Artur Niewiarowski Self-Publishing - All rights reserved. Wszelkie prawa
Bardziej szczegółowoKOTLIN. Język programowania dla Androida
KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga
Bardziej szczegółowoWykład Ćwiczenia Laboratorium Projekt Seminarium
WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):
Bardziej szczegółowoLaboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Bardziej szczegółowoCzym jest Ruby on Rails?
Czym jest Ruby on Rails? Ruby on Rails - napisany w języku Ruby framework open source do szybkiego tworzenia aplikacji internetowych w oparciu o architekturę MVC David Heinemeier Hansson twórca Rails Ruby
Bardziej szczegółowoPlatformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT
Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT O co chodzi? - Przypomnienie Hackathon - http://en.wikipedia.org/wiki/hackathon A hackathon is an event in which computer programmers
Bardziej szczegółowoPodstawy otwartych języków programowania Przechowywanie danych
Podstawy otwartych języków programowania Przechowywanie danych Wiktor Wandachowicz Sposoby przechowywania danych Typy podstawowe Pojedyncze obiekty Tablice obiektów i tablice typów podstawowych jednowymiarowe
Bardziej szczegółowoProgramowanie strukturalne i obiektowe. Funkcje
Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy
Bardziej szczegółowoPo uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoKomputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy
Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.
Bardziej szczegółowoKrótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.
GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans
Bardziej szczegółowoPakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoJava EE produkcja oprogramowania
Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez
Bardziej szczegółowoSłowa kluczowe jak góry lodowe
Public Słowa kluczowe jak góry lodowe czyli rzecz o bibliotekach testowych Marcin Kowalczyk marcin.kowalczyk@tieto.com Spis treści Dlaczego słowa kluczowe są jak góry lodowe, po co tworzyć własne biblioteki
Bardziej szczegółowoSzablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Bardziej szczegółowoOd uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
Bardziej szczegółowoTypy, klasy typów, składnie w funkcji
Typy, klasy typów, składnie w funkcji Typy w Haskell Każde wyrażenie w Haskell posiada zdefiniowany typ. Dzięki temu już na etapie kompilacji kodu następuje sprawdzenie poprawności kodu i zabezpiecza nas
Bardziej szczegółowoJęzyk programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości
Bardziej szczegółowo[Junior Developer - pierwsza praca jako programista - JavaDevMatt] 1. Sponsorzy Partnerzy projektu O czym i dla kogo jest ta książka?
Spis treści 1. Sponsorzy 11 2. Partnerzy projektu 13 3. O czym i dla kogo jest ta książka? 15 4. Skąd pomysł na napisanie książki? 18 4.1. Co nowego w tym wydaniu? 20 5. Z jakich powodów nie warto zostać
Bardziej szczegółowoWprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek
Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl
Bardziej szczegółowoMultimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Bardziej szczegółowoξ II.UWr Wprowadzenie do STM
ξ KS @.UWr Wprowadzenie do STM Marek Materzok ZOSA 2007 ξ KS @.UWr Wprowadzenie Były sobie komputery. Wykonywały programy instrukcja po instrukcji i wszyscy byli szczęśliwi... ξ KS @.UWr Wprowadzenie Były
Bardziej szczegółowoWzorce projektowe i refaktoryzacja
Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:
Bardziej szczegółowoXQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Bardziej szczegółowoProgramowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński
Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.
Bardziej szczegółowoProgramowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści
Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne
Bardziej szczegółowoMateriały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje
Bardziej szczegółowoECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
Bardziej szczegółowoJava jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
Bardziej szczegółowoSPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Bardziej szczegółowoProgramowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty
Bardziej szczegółowoDiagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.
Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze
Bardziej szczegółowoPoczątki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8
Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick
Bardziej szczegółowoPython dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring
Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od
Bardziej szczegółowoLiczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoJęzyk Java część 2 (przykładowa aplikacja)
Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoPodstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Bardziej szczegółowoAplikacje w Javie- wykład 11 Wątki-podstawy
1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/
Bardziej szczegółowoPodstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoJava: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoAutomatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli
Automatyczne generowanie testów z modeli Numer: 1 (33) Rozkmina: Projektowanie testów na podstawie modeli (potem można je wykonywać ręcznie, lub automatycznie zwykle chce się automatycznie) A ja mówię
Bardziej szczegółowokodowanienaekranie.pl
Temat: Naucz się tekstowego języka Python z Codey Rocky - część 1 Zdarzenia kl7-8 Szkoła Podstawowa Przedmiot: informatyka Autor: Sylwester Zasoński Czas trwania: 1h lekcyjna Cele ogólne: Rozwijanie kompetencji
Bardziej szczegółowoMakropolecenia w PowerPoint Spis treści
Makropolecenia w PowerPoint Spis treści Co to jest makro?... 2 Tworzenie prostego makropolecenia w PowerPoint... 2 Przypisywanie makropoleceń do wstążki.... 5 Zapisywanie prezentacji z makrem.... 7 ZADANIE...
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoWprowadzenie do Apache Spark. Jakub Toczek
Wprowadzenie do Apache Spark Jakub Toczek Epoka informacyjna MapReduce MapReduce Apache Hadoop narodziny w 2006 roku z Apache Nutch open source składa się z systemu plików HDFS i silnika MapReduce napisany
Bardziej szczegółowoKl 7-8 Szkoła Podstawowa
Temat: Hello World! Hello Codey! Kl 7-8 Szkoła Podstawowa Przedmiot: informatyka Autor: Sylwester Zasoński Czas trwania: 1h lekcyjna Cele ogólne: Rozwijanie kompetencji miękkich (umiejętność pracy zespołowej,
Bardziej szczegółowoMyśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści
Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy
Bardziej szczegółowoSpis treści. 1 Java T M
Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste
Bardziej szczegółowoJęzyki i paradygmaty programowania. I. Wprowadzenie
Języki i paradygmaty programowania I. Wprowadzenie O źródłach wykład został przygotowany w ogromnej części w oparciu o serwis http://wazniak.mimuw.edu.pl/ (zgodnie z licencją serwisu) inne źródła: Wikipedia:
Bardziej szczegółowoProgramowanie w języku Java 7 z biblioteką SWING
Programowanie w języku Java 7 z biblioteką SWING Opis Szkolenie przeznaczone jest dla osób bez większego doświadczenia w programowaniu. Pokrywa ono większość składni języka Java, skupiając się na podstawowych
Bardziej szczegółowoPopularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:
Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System): Dlaczego
Bardziej szczegółowoQUERY język zapytań do tworzenia raportów w AS/400
QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora
Bardziej szczegółowo