Organizacja zajęć

wykłady:
Paweł Rzechonek (email: prz@ii.uni.wroc.pl)
  • studia dzienne: poniedziałek, godz.18-20, s.31
  • studia wieczorowe: środa, godz.18-19, s.33
ćwiczenia laboratoryjne:

Literatura

papierowa:
  • Ken Arnold, James Gosling: The Java Programming Language. Addison Wesley, 1996, ISBN 0-201-63455-4.
  • Bruce Eckel: Thinking in Java. Third edition. Prentice-Hall, 2002, ISBN 0-131-00287-2.
  • 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.
elektroniczna:

Przygotowanie studentów

wymagane:
  • programowanie strukturalne
  • język C
  • znajomość podstawowych struktur danych (tablice, listy, kolejki, stosy, drzewa) i operacji na tych strukturach (z wykorzystaniem rekurencji)
wskazane:
  • programowanie obiektowe
  • język C++
  • znajomość podstawowych technik programowania (metoda redukcji, metoda "dziel i zwyciężaj", metoda dynamiczna, metoda zachłanna)

Forma zaliczenia przedmiotu

ogólnie:
W semestrze będzie ogłoszonych (na tej stronie) kilka/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 (2, 3, 5 lub 7).
terminy:
Zadania do zaprogramowania będą ogłaszane w tygodniu poprzedzającym termin ich realizacji (za wyjątkiem pierwszej listy). Spóźnienia będą kosztować utratę punktów - każdy tydzień spóźnienia zmniejsza o połowę z zaokrągleniem w dół do najbliższej liczby całkowitej (wartości >1 są zaokrąglane w górę dla studentów wieczorowych) liczbę możliwych do uzyskania za zadanie punktów liczonych względem punktacji z poprzedniego tygodnia. Przykładowo, jeśli za zadanie oddane terminowo można dostać do 7 punktów, to po tygodniu będzie ono warte co najwyżej 3 punkty (4 punkty dla studentów wieczorowych), po dwóch tygodniach może być ocenione maksymalnie na 1 punkt (na 2 punkty dla studentów wieczorowych), a po trzech tygodniach (po czterech dla studentów wieczorowych) i dłużej staje się ono bezwartościowe.
prezentacje:
Programy należy prezentować osobiście w czasie pracowni (proszę nie wysyłać programów pocztą elektroniczną, ani nie przekazywać dyskietek poprzez kolegów/koleżanki). W trakcie prezentacji programu trzeba się liczyć z pytamiami dotyczącymi zadania, jego rozwiązania, oraz zastosowanych konstrukcji językowych.
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.

Zadania na laboratorium

  • Zadanie 1 (dvi / ps / pdf): liczby w postaci binarnej - 2 punkty.
    Termin realizacji: 5-8.10.2004 dla studentów dziennych i 12.10.2004 dla studentów wieczorowych.
  • Zadanie 2 (dvi / ps / pdf): liczby w postaci słownej - 3 punkty.
    Termin realizacji: 12-15.10.2004 dla studentów dziennych i 19.10.2004 dla studentów wieczorowych.
  • Zadanie 3 (dvi / ps / pdf): rozkład liczby na czynniki pierwsze - 5 punktów.
    Termin realizacji: 19-22.10.2004 dla studentów dziennych i 2.11.2004 dla studentów wieczorowych.
  • Zadanie 4 (dvi / ps / pdf): stos i kolejka - 7 punktów.
    Termin realizacji: 2-5.11.2004 dla studentów dziennych i 30.11.2004 dla studentów wieczorowych.
  • Zadanie 5 (dvi / ps / pdf): sortowanie - 5 punktów.
    Termin realizacji: 16-19.11.2004 dla studentów dziennych.
  • Zadanie 6 (dvi / ps / pdf): sprawdzenie pamięci - 5 punktów.
    Termin realizacji: 23-26.11.2004 dla studentów dziennych i 7.12.2004 dla studentów wieczorowych.
  • Zadanie 7 (dvi / ps / pdf): ruchome oczy - 3 punkty.
    Termin realizacji: 30.11-3.12.2004 dla studentów dziennych i 21.12.2004 dla studentów wieczorowych.
  • Zadanie 8 (dvi / ps / pdf): przeglądarka zdjęć - 5 punktów.
    Termin realizacji: 7-10.12.2004 dla studentów dziennych i 04.01.2005 dla studentów wieczorowych.
  • Zadanie 9 (dvi / ps / pdf): przeglądarka lokalnego systemu plików - 3 punkty.
    Termin realizacji: 14-22.12.2004 dla studentów dziennych i 11.01.2005 dla studentów wieczorowych.
  • Zadanie 10 (dvi / ps / pdf): wykres funkcji - 7 punktów.
    Termin realizacji: 11-14.01.2005 dla studentów dziennych.
  • Zadanie 11 (dvi / ps / pdf): ruch drogowy - 5 punktów.
    Termin realizacji: 18-21.01.2005 dla studentów dziennych i 25.01.2005 dla studentów wieczorowych (do wyboru z zadaniem 12).
  • Zadanie 12 (dvi / ps / pdf): kółko i krzyżyk - 5 punktów.
    Termin realizacji: 25-28.01.2005 dla studentów dziennych i 25.01.2005 dla studentów wieczorowych (do wyboru z zadaniem 11).

Rankingi

Wykłady (streszczenie)

4/5-10-2004:
  • Rys historyczny.
  • Cechy Javy jako języka programowania.
  • Przykład prostego programu.
  • Kompilacja i uruchamianie programów.
  • Dokumentowanie programów.
  • Typy danych: pierwotne i referencyjne.
  • Instrukcje sterujące.
  • Tablice.
  • Parametry wywołania programu.
Przykładowe programy: Witaj.java, Parametry.java.
11/12-10-2004:
  • Klasy.
  • Pakiety.
  • Zakres widoczności składowych klasy.
  • Pola i metody.
  • Konstruktory i tworzenie obiektów.
  • Działanie garbage-collector'a.
  • Składowe statyczne.
  • Napisy String i StringBuffer.
Przykładowe programy: narzedzia/LZesp.java + TestZespolonych.java, narzedzia/LPier.java + TestPierwszosci.java.
18/19-10-2004:
  • Wyjątki.
  • Dziedziczenie.
  • Hierarchia klas i klasa Object.
  • Metody i klasy abstrakcyjne.
  • Pola, metody i klasy finalne.
Przykładowe programy: CzytPisz.java.
25/26-10-2004:
  • Nadpisywanie metod.
  • Klonowanie obiektów.
  • Interfejsy.
  • Polimorfizm.
  • Rzutowanie.
  • Klasa java.util.Random.
Przykładowe programy: struktury/SlownikLiczb.java + struktury/StosLiczb.java.
8/9-11-2004:
  • Komponenty AWT.
  • Delegacyjny model obsługi zdarzeń.
Przykładowe programy: Puste.java, Chwila.java.
22/23-11-2004:
  • Grafika.
  • Aplety.
29/30-11-2004:
  • Swing.
Przykładowe programy: Podpowiedzi.java.
6/7-12-2004:
  • Strumienie.
  • Operacje w lokalnym systemie plików.
Przykładowe programy: Kopiarka.java + Konwerter.java.
13/14-12-2004:
  • Serializacja.
  • Refleksja.
Przykładowe programy:
20/21-12-2004:
  • Polimorfizm parametryczny.
  • Klasy wyliczeniowe.
  • Importowanie statyczne.
  • Metody ze zmienną liczbą argumentów wywołania.
  • Kolekcje i ich przeglądanie (instrukcja for-each).
Przykładowe programy: KalendarzGregor.java.
3/4-01-2005:
  • Wątki.
Przykładowe programy: WatekLiczbowy.java, WatekCzasowy.java, WatkiProdKons.java.
10/11,17/18-01-2005:
  • Programowanie sieciowe.
Przykładowe programy: AdresyIP.java, SkanerTCP.java, SkanerUDP.java, KlientEcho.java + SerwerEcho.java.
24/25,31-01-2005:
  • Programowanie systemowe.
  • Programowanie natywne (JNI).
Przykładowe programy: Hello.java + Hello.c.

Materiały uzupełniające