====== Programowanie obiektowe ====== :!: Terminy egzaminów [[http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=programowanie_obiektowe#egzaminy|...więcej informacji]] *I termin: 03.02.2020 (poniedziałek) 16:30-18:30 B1-H24 *II termin: 10.02.2020 (poniedziałek) - 14:00-16:00 C2 224 *III termin: 13.02.2020 (czwartek) - 14:00-16:00 C2 429 :!: Zaliczenia ćwiczeń - kolokwium dodatkowe Planowane na 4.02.2020 godzina 14.00 C1 511A ===== Tekst wykładów ===== *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w1-java-wprowadzenie.pdf|Wykład 1: Wprowadzenie,​ ogólny opis języka]] ​ *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w2-3-java-skladnia.pdf|Wykład 2-3 Elementy składni, rozmieszczenie obiektów w pamięci, klasa String, tablice]] ​ *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w4-5-java-klasy.pdf|Wykład 4-5 Klasy, pola, metody, konstruktory,​ klonowanie]] ​ *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w6-java-interfejsy-klasy-wewnetrzne.pdf|Wykład 6 Intefejsy, klasy wewnętrzne,​ wyliczenia]] *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w7-java-wyjatki.pdf|Wykład 7 Wyjątki]] *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w8-java-generics.pdf|Wykład 8 Typy generyczne]] *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w9-java-lambdas.pdf|Wykład 9 Wyrażenia lambda i strumienie]] *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w10-java-threads.pdf|Wykład 10 Wątki]] *[[http://pszwed.kis.agh.edu.pl/wyklady_java/w11-java-gui.pdf|Wykład 11 GUI]] Zakres materiału: *powyżej [[https://education.oracle.com/product/pexam_1Z0-808]] *częściowo pokrywa [[https://education.oracle.com/java-se-8-programmer-ii/pexam_1Z0-809]] ===== Laboratoria ===== *[[po:lab1|Laboratorium 1 -- kompilacja, uruchamianie, IDE]] *[[po:lab2|Laboratorium 2 -- klasa Matrix]] *[[po:lab3|Laboratorium 3 -- testy metod klasy Matrix]] *[[po:lab4|Laboratorium 4 -- piszemy CV]] *[[po:lab5|Laboratorium 5 -- Konstruujemy wyrażenia matematyczne...]] *[[po:lab6|Laboratorium 6 -- CSV reader]] *[[po:lab7|Laboratorium 7 -- Województwa,​ powiaty, gminy...]] *[[po:lab8|Laboratorium 8 -- Województwa,​ powiaty, gminy - kontynuacja]] *[[po:lab9|Laboratorium 9 -- Województwa,​ powiaty, gminy - sortowanie i filtrowanie]] *[[po:lab10|Laboratorium 10 -- Rysujemy choinkę]] - [[po:galeria_choinek|Galeria choinek]] *[[po:lab11|Laboratorium 11 -- Wątki 1 (zegar i ładowanie plików)]] *[[po:lab12|Laboratorium 12 -- Wątki 2 (obliczenia równoległe i winda)]] *[[po:lab14|Laboratorium 14]] ===== Kolokwia i sprawdziany ===== [[http://pszwed.kis.agh.edu.pl/wyklady_java/lab/2019-programowanie-obiektowe-oceny.pdf|Punkty z laboratorium]] [[sprawdzian_21_01-2020|Kolokwium]] [[po:galeria_choinek|Galeria choinek 2017]] ===== Repozytoria git ===== Dla każdego uczestnika zajęć zostało założone repozytorium git. Lista loginów i repozytoriów jest dostępna jako [[http://pszwed.kis.agh.edu.pl/wyklady_java/lab/2019-programowanie-obiektowe-git.pdf|plik PDF]]. Lista jest zabezpieczone hasłem (takim, jak do wykładów). Hasła do repozytoriów zostaną podane podczas zajęć. Proszę o nabycie pewnej sprawności technicznej przy korzystaniu z repozytorium,​ ponieważ będziecie Państwo przekazywali kod: * podczas //​kartkówek//​ (10-15 min na napisanie jednej funkcji uzupełniającej realizowane wcześniej zadania) * kolokwium Jeśli przesyłanie plików nie zadziała - konieczne będzie przepisywanie kodu na kartkę ​ :-( === Inicjalizacja lokalnego repozytorium i połączenie z repozytorium zdalnym === Wykonaj następujące kroki w oknie terminala: - przejdź do katalogu programowania obiektowego (katalog nadrzędny ponad Lab1, Lab2,...) - użyj komendy ''​cd <​programowanie-obiektowe>'' ​ - ''​git init'' ​ (zainicjuje repozytorium w bieżącym katalogu) ​ - ''​git add *''​ (doda pliki i foldery znajdujące w w bieżącym katalogu i podkatalogach) - ''​git commit -m "​jakiś komunikat z krótkim opisem dodanych plików"''​ (pliki zostaną umieszczone w lokalnym repozytorium,​ czyli trafią w skompresowanej postaci do podkatalogu .git ​ - ''​git remote add origin <​nazwa-twojego-repozytorium>'' ​ - ''​git push origin master''​ (Zostaniesz poproszony o podanie nazwy użytkownika i hasła; w zależności od konfiguracji może być ono zapamiętane lokalnie. Następnie pliki powinny być przekazane na serwer.) === Przekazywanie plików === Od tego czasu będziesz mógł przekazywać pliki do repozytorium wykonując trzy polecenia: - ''​git add *'' ​ - ''​git commit -m "​komunikat"''​ - ''​git push origin master''​ Alternatywnie,​ można przekazywać pliki z poziomu IntelliJ (lub Netbeans) za pomocą opcji VCS (Team) -> Commit changes. Być może trzeba będzie potwierdzić,​ że katalog nadrzędny ''<​programowanie-obiektowe>''​ jest objęty kontrolą wersji (komunikat //VCS root detected//​). === Tworzenie kopii lokalnej repozytorium === Aby pobrać pliki z repozytorium na lokalny komputer (np. domowy) użyj komendy\\ ''​git clone <​nazwa-twojego-repozytorium>​ [opcjonalnie:​katalog]'' ​ === Pobieranie plików ze zdalnego repozytorium === Po zalogowaniu się na komputerze w laboratorium użyj komendy: ''​git pull origin master'',​ aby uaktualnić lokalne pliki (pobrać zmiany z repozytorium). To samo można wykonać z poziomu IDE: VCS (Team) -> Remote -> Pull === Problemy ? === Konflikty dla pliku tekstowego -> użyj ''git mergetool'': *[[https://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git]] Wybór jednego z plików powodujących konflikt: *[[https://medium.com/@joshsaintjacque/resolving-merge-conflicts-in-binary-files-79df5aacd86f]] ===== Egzaminy ===== ** Uprzejmie informuję, że do egzaminu można podejść bez uzyskania zaliczenia z ćwiczeń ** * Po pierwsze nie jestem w stanie efektywnie sprawdzić, czy ktoś ma zaliczenie, zwłaszcza przy kapryśnym funkcjonowaniu wirtualnego dziekanatu * Po drugie, i tak pozytywna ocena końcowa może być wystawiona pod warunkiem uzyskania pozytywnych ocen z laboratorium i egzaminu ​ ==== Zasady ==== * Egzamin organizowany jest w formie testu jednokrotnego wyboru (ale są pytania typu: //Które stwierdzenie jest nieprawdziwe...//​) * Do wyboru jest jedna z czterech odpowiedzi. * Wartość oczekiwana testu wynosi 0. Stąd: * Za poprawną odpowiedź przydzielany jest 1 pkt * Za niepoprawną -1/3 pkt * Za brak odpowiedzi 0 pkt ​ * Test obejmuje 36 pytań. ​ * Podczas egzaminu nie można korzystać z materiałów i pomocy, telefonów komórkowych i sprzętu komputerowego. ​ ==== Terminy ==== *I termin: 03.02.2020 (poniedziałek) 16:30-18:30 B1-H24 *[[http://​pszwed.kis.agh.edu.pl/wyklady_java/java-2020-termin-i.pdf|Wyniki...]] *Możliwość oglądania prac - czwartek 06.02.2020 godzina 13.00 *II termin: 10.02.2020 (poniedziałek) - 14:00-16:00 C2 224 *[[http://​pszwed.kis.agh.edu.pl/wyklady_java/java-2020-termin-ii.pdf|Wyniki...]] *III termin: 13.02.2020 (czwartek) - 14:00-16:00 C2 429 ==== Ocena końcowa ==== Ocena końcowa jest obliczana jako średnia ważona (około //(1-k)// ocena z egzaminu i //k// z zaliczenia). ​ Współczynnik //k =0.5//. Np. jeżeli ktoś uzyskał 5.0 z zaliczenia i 4.5 z egzaminu, oceną końcową będzie 5.0