Java
Celem zajęć jest zapoznanie studentów z językiem programowania Java.
wymagane przygotowanie
- Umiejętność programowania w języku C/C++.
- Znajomość podstawowych struktur danych (tablice, listy, drzewa).
literatura
Literatura papierowa:
- Ken Arnold, James Gosling: Java. WNT, Warszawa 1999.
- Krzysztof Barteczko: Java. Od podstaw do technologii. Tom 1 i 2. Wydawnictwo MIKOM, Warszawa 2004.
- Herbert Schildt: Java. Kompendium programisty. Wydawnictwo HELION, Gliwice 2005.
- Bruce Eckel: Thinking in Java. Wydanie 4. Edycja polska. Wydawnictwo HELION, Gliwice 2006.
- James Gosling, Bill Joy, Guy Steele, Gilad Bracha: The Java Language Specification. Second edition. Addison Wesley, 2000, ISBN 0-201-31008-2.
- Tim Lindholm, Frank Yellin: The Java Virtual Machine Specification. Second edition. Addison Wesley, 2000, ISBN 0-201-43294-3.
Literatura elektroniczna:
Terminarz
studia dzienne
- wykład: środa 16-18 s.119 (P.Rzechonek)
-
laboratorium:
poniedziałek 12-14 s.107 (Z.Gołębiewski)
poniedziałek 14-16 s.107 (P.Rzechonek)
środa 12-14 s.110 (T.Wierzbicki)
studia wieczorowe
- wykład: czwartek 16-17 s.139 (P.Rzechonek)
- laboratorium: czwartek 17-20 s.110 (P.Rzechonek)
Laboratorium
zasady zaliczenia przedmiotu
- ogólnie:
- W semestrze będzie opublikowanych (na tej stronie) kilkanaście prostych zadań do zaprogramowania. Za każde poprawnie zaprogramowane zadanie i oddane w terminie można będzie dostać określoną liczbę punktów (od 10 do 20).
- terminy:
- Zadania do zaprogramowania będą ogłaszane w tygodniu poprzedzającym termin ich realizacji. Zadania należy oddawać w wyznaczonym terminie. Spóźnienia nie będą tolerowane, za wyjątkiem uzasadnionych sytuacji: choroba potwierdzona zwolnieniem lekarskim, wezwanie do Sądu, itp.
- prezentacje:
- Programy należy prezentować osobiście w czasie pracowni (proszę nie wysyłać programów pocztą elektroniczną, ani nie przekazywać ich poprzez kolegów i koleżanki). W trakcie prezentacji programu trzeba się liczyć z pytamiami dotyczącymi zadania: metoda rozwiązania, zastosowane konstrukcje językowe, wykorzystane technologie, itp.
- oceny:
- Aby zaliczyć laboratorium na ocenę dostateczną trzeba do końca semestru zdobyć 50% z wszystkich możliwych do uzyskania punktów; na ocenę bardzo dobra trzba będzie zgromadzić 90% punktów; oceny pośrednie pozostją w liniowej zależności od przedstawionych wymagań granicznych.
listy zadań
- 9-13.10.2006: liczby naturalne w postaci słownej (ps/pdf) 13 punktów
- 16-20.10.2006: rozkład liczb naturalnych na czynniki pierwsze (ps/pdf) 17 punktów
- 6-10.11.2006: obliczanie wyrażeń ONP (ps/pdf) 13+11+7 punktów (odpowiednio za każdą część)
- 13-17.11.2006: kalkulator (ps/pdf) 13 punktów
- 20-24.11.2006: rysunek (ps/pdf) 13 punktów
- 27.11-1.12.2006: wykres (ps/pdf) 17 punktów
- 4-8.12.2006: kalendarz (ps/pdf) 13 punktów
- 11-15.12.2006: robaki (ps/pdf) 19 punktów
- 18-22.12.2006: Black Jack (ps/pdf) 17 punktów
- 8-12.01.2007: nawigator po lokalnym systemie plików (ps/pdf) 11 punktów
- 15-19.01.2007: sieciowa gra w liczby (ps/pdf) 17 punktów
- 22-26.01.2007: forum sieciowe (ps/pdf) 19 punktów
rankingi
Ogłoszenia
- 11.12.2006
- Zadanie 8 w mojej grupie będę jeszcze przyjmował w przyszłym tygodniu, ale ze zmniejszoną liczbą punktów (maksymalnie 13).
- 10.11.2006
- Zadanie 3 w mojej grupie będę jeszcze przyjmował w przyszłym tygodniu, ale ze zmniejszoną liczbą punktów (maksymalnie 23).
- 4.10.2006
- Zajęcia w mojej grupie (poniedziałek 14-16) zostały przeniesione do pracowni 110 (do czasu uruchomienia pracowni 107).
Wykład
- 4/5.10.2006 (składnia języka):
- rys historyczny;
- podstawowe cechy języka programowania Java;
- kompilowanie (program javac) i uruchamianie (program java) programów w javie;
- standardowe wejście/wyjście;
- typy pierwotne i referencyjne;
- tworzenie obiektów (operator new) i ich usuwanie (garbage-collector);
- operatory i wyrażenia;
- instrukcje sterujące;
- tablice, tablice wielowymiarowe;
- napisy (klasa String);
- parametry wywołania programu.
- 11/12.10.2006 (klasy i obiekty):
- obiekty a referencje do obiektów;
- definicjowanie włanych klas;
- deklaratory widoczności składowych (public, private, protected i widoczność pakietowa);
- pola i ich inicjalizacja;
- konstruktory;
- referencja this;
- przeciążanie nazw konstruktorów i metod;
- przekazywanie parametrów do metod;
- metoda finalize;
- składowe statyczne;
- dziedziczenie;
- inicjalizacja klasy bazowej super;
- hierarchia dziedziczenia i klasa Object;
- przesłanianie nazw (zastępowanie pól i nadpisywanie metod);
- metoda finalize;
- parametry, pola, metody i klasy ostateczne (deklarator final).
- 18/19.10.2006 (dziedziczenie i polimorfizm):
- budowanie nowych klas: kompozycja i dziedziczenie;
- zastępowanie metod i przesłanianie pól;
- upublicznianie składowych;
- hierarchia klas i polimorfizm;
- polimorficzne wywoływania metod;
- wywoływanie starych metod z nadklasy (konstrukcja super);
- wywołania niepolimorficzne;
- metody i klasy abstrakcyjne (deklarator abstract);
- interfejsy jako kontrakt na funkcjonalność;
- dziedziczenie w interfejsach;
- implementowanie interfejsów;
- klonowanie obiektów (metoda clone() i interfejs Cloneable).
- 25/26.10.2006 (wyjątki):
- zgłaszanie wyjątków - instrukcja throw;
- wychwytywanie wyjątków - instrukcja try-catch;
- klauzula finally;
- hierarchia klas wyjątków;
- wyjątki kontrolowane i niekontrolowane;
- deklarowanie własnych wyjątków - klasa Exception;
- klasy wewnętrzne.
- 8/9.11.2006 (AWT):
- komponenty AWT;
- delegacyjny model obsługi zdarzeń;
- przykłady...
- 15/16.11.2006 (aplet i grafika):
- aplety;
- niskopoziomowa grafika;
- przykłady...
- 22/23.11.2006 (Swing):
- komponenty Swing;
- architektura okien;
- wygląd aplikacji;
- przykłady...
- 29/30.11.2006 (MVC):
- model MVC - oddielenie danych od ich prezentacji w kontrolkach Swing;
- menu;
- przykłady...
- 6/7.12.2006 (wątki):
- pojęcie wątku;
- cykl życia wątku;
- tworzenie wątków w javie;
- synchronizacja wątków;
- priorytety wątków;
- przykłady...
- 13/14.12.2006 (typy wyliczeniowe i sparametryzowane):
- automatyczne otaczanie i wydobywanie wartości (autoboxing);
- mechanizm refleksji (reflection);
- typy wyliczeniowe (enums);
- typy sparametryzowane (generics);
- parametry wieloznaczne (wildcards);
- zmienna liczba argumentów (varargs);
- przykłady...
- 20/21.12.2006 (strumienie):
- strumienie na bajtowe i znakowe;
- źródło/ujście danych w strumieniu;
- strumienie przetwarzające i filtrujące;
- kodowanie;
- strumienie binarne;
- strumienie kompresujące;
- serializacja (interfejs Serializable);
- obiekty plikowe (klasa File);
- przykłady...
- 3/4.01.2007 (komunikacja sieciowa):
- adresy sieciowe (klasa InetAddress);
- zasoby sieciowe (klasa URL);
- bezpośredni dostęp do zasobów sieciowych (klasa URLConnection);
- aplikacje typu klient-serwer;
- komunikacja po protokole TCP;
- komunikacja po protokole UDP;
- przykłady...
- 10/11.01.2007 (JDBC):
- mechanizm działania JDBC;
- sterowniki do baz danych;
- nawiązywanie połączenia z bazą danych;
- wykonywanie zapytań w języku SQL;
- modyfikowanie bazy danych;
- przesuwanie kursora w tabeli wynikowej za pomocą ResultSet;
- kursy języka zapytań do relacyjnych baz danych SQL: www.sqlcourse.com
- 17/18.01.2007 (?):
- ;
- przykłady...