Programowanie obiektowe Wykład 1: Wprowadzenie

Podobne dokumenty
Wykład Ćwiczenia Laboratorium Projekt Seminarium

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

SYLABUS/KARTA PRZEDMIOTU

SYLABUS/KARTA PRZEDMIOTU

Java jako język programowania

SYLABUS/KARTA PRZEDMIOTU

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język Java i technologie Web - opis przedmiotu

tel. (+48 81) /22 fax (+48 81) Cel przedmiotu

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

Tworzenie oprogramowania

Podstawy programowania. Wprowadzenie

KARTA KURSU (realizowanego w module specjalności)

Java EE produkcja oprogramowania

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Programowanie obiektowe 1 - opis przedmiotu

Dokumentacja kompilacji źródeł aplikacji 1.0

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Dokumentacja aplikacji Szachy online

WPROWADZENIE DO JĘZYKA JAVA

Tworzenie aplikacji w języku Java

Programowanie obiektowe. Wprowadzenie

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Programowanie obiektowe. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia 4. ROK/ SEMESTR STUDIÓW: II/4

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe

Rok akademicki: 2015/2016 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Języki i paradygmaty programowania - 1

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Wykład 1: Wprowadzenie do technologii Java

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Programowanie w języku Java WYKŁAD

Podstawy programowania wykład

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Translacja wprowadzenie

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Wprowadzenie do narzędzia MAVEN

Zaawansowane programowanie w języku C++

Dni: 2. Partner merytoryczny. Opis: Adresaci szkolenia

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

PyPy's Approach to Virtual Machine Construction

Michał Olejnik. 22 grudnia 2009

Programowanie komputerów

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Podstawy i języki programowania

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Egzamin / zaliczenie na ocenę*

KARTA PRZEDMIOTU. Aplikacje mobilne i wbudowane, D1.8

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Android - wprowadzenie. Łukasz Przywarty

Programowanie obiektowe zastosowanie języka Java SE

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Egzamin / zaliczenie na ocenę*

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

KARTA PRZEDMIOTU. Aplikacje sieciowe w języku Java. D1_5

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

The current software tools for the JEE platform

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2012/2013

Wzorce projektowe i refaktoryzacja

Środowiska i platformy programistyczne

INP002018W, INP002018L

Ocenianie ciągłe (praca przy Formująca tablicy oraz przy komputerze) pisemne, końcowe zaliczenie pisemne

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

KARTA MODUŁU KSZTAŁCENIA

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

Programowanie w C. dr inż. Stanisław Wszelak

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/17

Programowanie Komponentowe WebAPI

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Król Łukasz Nr albumu:

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

[Junior Developer - pierwsza praca jako programista - JavaDevMatt] 1. Sponsorzy Partnerzy projektu O czym i dla kogo jest ta książka?

Transkrypt:

Programowanie obiektowe Wykład 1: Wprowadzenie dr inż. Marcin Luckner mluckner@mini.pw.edu.pl Wersja 1.1 23.02.2018

Java - historia Java jako język programowania Język programowania powstały w 1995. Oparty o Smalltalk i C++. Stworzony pod kierunkiem Jamesa Goslinga w Sun Microsystems. Przejęty przez Oracle Corporation (2009). Aktualna wersja to Java Standard Edition (SE) 8.

Java - cechy Java jako język programowania Obiektowość, Silne typowanie, Kompilacja źródeł do kodu bajtowego wykonywanego przez maszynę wirtualną

Cele przyświecające twórcom Javy 1 prostota, Java w znacznym stopniu upraszcza składnię C++, jednak jest bardziej skomplikowana niż Python. 2 obiektowość, Java jest językiem obiektowym w którym skupiamy się na danych (obiektach) i dostępie do nich (interfejsach), a nie na narzędziach jakimi operujemy. 3 zastosowania sieciowe, Powszechna dzisiaj obsługa protokołów TCP/IP, HTTP i FTP. 4 niezawodność, Wykrywanie błędów poprzez kompilator Javy, aby wyeliminować ich wystąpienia podczas uruchomienia programu.

Cele przyświecające twórcom Javy I 5 bezpieczeństwo, Java była projektowana tak, aby zapobiegać różnym formom ataków (przepełnienie stosu wykonywania, niszczenie pamięci). Zapewniała wyizolowane i bezpieczne środowisko wykonywania kodu pobranego z sieci. Jednakże, w aplikacjach przeglądarkowych, wtyczki Javy stały się furtką dla poważnych ataków. Wrzesień 2013 Apple rekomenduje wyłączenie wtyczek Javy w Safari Styczeń 2013 U.S. Department of Homeland Security ostrzega ludzi przed używaniem Javy.

Cele przyświecające twórcom Javy II 6 niezależność od architektury, Kod Javy jest interpretowany przez maszynę wirtualną. Dlatego może zostać wykonany na dowolnym urządzeniu z zainstalowanym Java Runtime System. Interpretowanie instrukcji maszyny wirtualnej jest wolniejsze niż działanie instrukcji maszynowych. Jednak maszyny wirtualne mogą tłumaczyć często wykonywany kod bajtowy na kod maszynowy w procesie nazywanym kompilacją na czas (ang. just-in-time compilation).

Cele przyświecające twórcom Javy III 7 przenośność, Java nie jest w żaden sposób uzależniona od implementacji. Rozmiary podstawowych typów danych są określone, podobnie jak wykonywane na nich działania arytmetyczne. Java sprawdza się jako narzędzie pozwalające programować niezależnie od platformy. Jednym wyjątkiem jest obsługa interfejsu użytkownika. 8 interpretacja, Interpreter Javy może wykonać kod bajtowy Javy bezpośrednio na urządzeniu, na którym interpreter ten zainstalowano. Dzięki temu proces rozwoju może być znacznie szybszy i bardziej odkrywczy. Jednakże języki takie jak Python czy R umożliwiają bardziej odkrywcze programowanie.

Cele przyświecające twórcom Javy IV 9 wysoka wydajność, Głównym zarzutem wobec Javy była niska wydajność w porównaniu do C. Jednak najnowsze kompilatory JIT mogą konkurować z tradycyjnymi kompilatorami Kompilator JIT sprawdza, która część kodu jest najczęściej wykonywana, i zoptymalizować ją pod kątem szybkości lub zastosować wstawianie kodu funkcji w miejsce ich wywołań. 10 wielowątkowość, Java była pierwszym popularnym językiem programowania z wbudowanymi mechanizmami obsługi współbieżności. Dzisiaj znacznie ułatwia wykorzystanie technik równoległego przetwarzania danych.

Cele przyświecające twórcom Javy V 11 dynamiczność. W stosunku do rodziny języków C w Javie można łatwo modyfikować lub refaktoryzować stare kody. Pozwala też na łatwe dołączanie bibliotek zewnętrznych. Dla porównania, w R istnieją wbudowane mechanizmy do pobierania bibliotek.

Opinie o Javie Java jako język programowania Ten cały szum wokół Javy jako języka programowania jest przesadzony. Java to z pewnością dobry język programowania. Nie ma wątpliwości, że jest to jedno z najlepszych narzędzi dostępnych dla poważnych programistów. [...] Java mogłaby być wspaniałym językiem programowania, ale na to jest już chyba zbyt późno. Kiedy przychodzi do rzeczywistych zastosowań, swoją głowę podnosi ohydna zmora zgodności z istniejącym już kodem. Cay Horstmann, Gary Cornell, Core Java Edition, 1997

Udział Androida na rynku Rysunek 1: Sprzedaż telefonów komórkowych w tysiącach sztuk [Wikipedia, 2017] Android osiąga 86.1 procent rynku w Q1 2017

Pozycja Javy w Internecie Popularne strony wspomagane przez Javę [Surveys, 2018] Linkedin.com Aliexpress.com Gumtree.pl Indeed.com Rysunek 2: Pozycja Javy wśród oprogramowania serwerowego [Surveys, 2018]

Java w Big Data Java jako język programowania Głównymi językami wykorzystywanymi w Big Data są Python, Scala i Java. Java może być wykorzystywana do tworzenia zadań dla następujących narzędzi Hadoop Map Reduce, Kafka, Spark, Flink, Apex. Niektóre narzędzia nie wspierają Javy. Np. Apache Zeppelin wspiera tylko Pythona i Scalę.

Programista Javy Java jako język programowania Zaawansowany programista Javy wyróżnia się z tłumu innych programistów niskim wzrostem, gdzie najwyższy punkt posiada w kłębie, okularami w kształcie dwóch słoików połączonych taśmą klejącą oraz posiadaniem 20 notatników we wszystkich otworach. Rozmowa z takim programistą jest wyjątkowo trudna, gdyż nie potrafi on zapamiętać więcej niż jednej komendy jednocześnie, dlatego większość czasu spędza na notowaniu tego, co mówi do niego użytkownik. nonsensopedia.wikia.com/wiki/java 13.02.2018

Zapotrzebowanie na programistów Oferty pracy dla programistów [Praca.pl, 2018] Python: około 500 Java: około 1600

Stawki programistów Rysunek 3: Wynagrodzenie starszych programistów zatrudnionych na umowę o pracę (brutto, PLN) [Pokrywka and Legieć, 2017]

Lektury Java jako język programowania Thinking in Java, Wprowadzenie do programowania obiektowego (Java 1.6!) [Eckel, 2006] Core Java Fundamentals & Advances, stale aktualizowany, bardzo dobry podrzęcznik, [Horstmann, 2016, Jav, 2017] Java the complete reference, najbardziej wyczerpujący opis języka [Schildt, 2015] Clean Code: A Handbook of Agile Software Craftsmanship, poradnik jak dbać o jakość kodu dla zaawansowanych programistów [Martin, 2010]

Wydawnictwo O Reilly

Zintegrowane środowisko programistyczne (IDE) Rysunek 4: Popularność środowisk programistycznych [RebelLabs, 2017]

Środowiska programistyczne Intellij IDEA The most intelligent Java IDE Płatna wersja Ultimate Eclipse IDE Darmowe, Oceniane jako ociężałe NetBeans Zbliżone do Eclipse Lepsze do Java EE Android Studio Tworzenie aplikacji na Androida

Porównanie interfejsów Rysunek 5: Eclipse IDE Rysunek 6: Intellij IDEA

Laboratoria Java jako język programowania Oceniane zajęcia 4 zajęcia punktowane 1 zajęcia poprawkowe Poprawiamy najgorsze zajęcia Należy uzyskać ponad 50 procent punktów

Ocena Java jako język programowania Na podstawie uzyskanych punktów Ponad 90 procent 5.0 Ponad 80 procent 4.5 Ponad 70 procent 4.0 Ponad 60 procent 3.5 Ponad 50 procent 3.0 Studenci z 50 procentami i mniej nie zaliczają przedmiotu

Bibliografia I Java jako język programowania [Jav, 2017] (2017). Java. Techniki zaawansowane. Helion. [Eckel, 2006] Eckel, B. (2006). Tinking in Java. Helion. [Horstmann, 2016] Horstmann, C. S. (2016). Java. Podstawy. Helion. [Martin, 2010] Martin, R. C. (2010). Czysty kod. Podręcznik dobrego programisty. Helion. [Pokrywka and Legieć, 2017] Pokrywka, D. and Legieć, K. (2017). Raport płacowy dla branży it. [Praca.pl, 2018] Praca.pl (2018). Oferty pracy dla programistów. [RebelLabs, 2017] RebelLabs (2017). Developer productivity report. [Schildt, 2015] Schildt, H. (2015). Java. Kompendium programisty. Helion. [Surveys, 2018] Surveys, W. W. T. (2018). Usage statistics and market share of java for websites.

Bibliografia II Java jako język programowania [Wikipedia, 2017] Wikipedia (2017). Usage share of operating systems.