Ogłoszenia
- (8 grudnia 2005)
Termin oddawania zadania 11 dla studentów dziennych (skrzyżowanie
dróg równorzędnych) został wydłużony do 12 stycznia 2006.
Niezależnie od tego faktu pojawiło się nowe zadanie do
zaprogramowania (akwarium).
- (8 grudnia 2005)
Zostały sporządzone rankingi dla studentów dziennych i wieczorowych.
- (30 listopada 2005)
Termin oddawania zadania 8 dla studentów wieczorowych (pseudo arkusz
kalkulacyjny) został wydłużony do 7 grudnia 2005.
- (3 listopada 2005)
Zadanie 4 można oddawać z tygodniowym opóźnieniem (do 10 listopada
2005) za 4 punkty.
Terminy
studia dzienne
- wykład:
-
czwartek 17-19, sala 31
- laboratorium:
-
wtorek 12-14, sala 50b (M.Szpak)
środa 14-16, sala 59 (T.Wierzbicki)
środa 18-20, sala 59 (T.Wierzbicki)
czwartek 15-17, sala 52
studia wieczorowe
- wykład:
-
środa 16-17, sala 33.
- laboratorium:
-
środa 17-20, sala 52/50d.
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,
drzewa) i operacji na tych strukturach (z wykorzystaniem
rekurencji)
- wskazane:
-
- programowanie obiektowe
- język C++
- znajomość podstawowych technik programowania (metoda
"dziel i zwyciężaj", metoda dynamiczna, metoda zachłanna)
Forma zaliczenia przedmiotu
- ogólnie:
- W semestrze będzie ogłoszonych (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 (2...5).
- terminy:
- Zadania do zaprogramowania będą ogłaszane w tygodniu
poprzedzającym termin ich realizacji (za wyjątkiem pierwszej
listy). Spóźnienia nie będą tolerowane.
- 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
studia dzienne
nr |
opis |
punkty |
termin |
treść |
0 |
liczby w postaci binarnej |
2 |
6 października 2005 |
ps /
pdf
|
1 |
rozkład liczby na czynniki pierwsze |
2 |
13 października 2005 |
ps /
pdf
|
2 |
wzór dwumianowy Newtona |
3 |
20 października 2005 |
ps /
pdf
|
3 |
listy klonowalne |
4 |
27 października 2005 |
ps /
pdf
|
4 |
kalkulator ONP |
5 |
3 listopada 2005 |
ps /
pdf
|
5 |
kreślenie odcinków |
4 |
10 listopada 2005 |
ps /
pdf
|
6 |
gra "samotnik" w aplecie |
5 |
17 listopada 2005 |
ps /
pdf
|
7 |
gra "kółko i krzyżyk" |
5 |
24 listopada 2005 |
ps /
pdf
|
8 |
edytor tekstowy z podglądem binarnym |
4 |
1 grudnia 2005 |
ps /
pdf
|
9 |
kalendarz |
3 |
8 grudnia 2005 |
ps /
pdf
|
10 |
program do nauki słówek w języku obcym |
4 |
15 grudnia 2005 |
ps /
pdf
|
11 |
skrzyżowanie dróg równorzędnych |
5 |
5 stycznia 2006 |
ps /
pdf
|
12 |
akwarium |
4 |
12 stycznia 2006 |
ps /
pdf
|
13 |
gra sieciowa w statki |
5 |
19 stycznia 2006 |
ps /
pdf
|
ranking
studia wieczorowe
nr |
opis |
punkty |
termin |
treść |
0 |
liczby w postaci binarnej |
2 |
5 października 2005 |
ps /
pdf
|
1 |
liczby pierwsze w zadanym przedziale |
2 |
12 października 2005 |
ps /
pdf
|
2 |
wzór dwumianowy Newtona |
3 |
19 października 2005 |
ps /
pdf
|
3 |
wyrażenie arytmetyczne |
4 |
26 października 2005 |
ps /
pdf
|
4 |
drzewa BST |
5 |
2 listopada 2005 |
ps /
pdf
|
5 |
kreślenie odcinków |
4 |
9 listopada 2005 |
ps /
pdf
|
6 |
gra "dwa kolory" w aplecie |
5 |
16 listopada 2005 |
ps /
pdf
|
7 |
gra "kółko i krzyżyk" |
5 |
23 listopada 2005 |
ps /
pdf
|
8 |
pseudo arkusz kalkulacyjny |
4 |
7 grudnia 2005 |
ps /
pdf
|
9 |
przeglądarka plików |
4 |
14 grudnia 2005 |
ps /
pdf
|
10 |
skrzyżowanie drogi głównej z podporządkowaną |
5 |
11 stycznia 2006 |
ps /
pdf
|
11 |
pobieranie dokumentów z sieci |
3 |
18 stycznia 2006 |
ps /
pdf
|
ranking
Wykłady (streszczenie)
- 5/6-10-2005 (składnia języka java):
-
- Rys historyczny.
- Cechy Javy jako obiektowego języka programowania.
- Kompilowanie (program javac) i uruchamianie (program
java) programów.
- Przykład prostego programu.
- Standardowe wejście/wyjście.
- Typy pierwotne i referencje.
- Tworzenie obiektów (operator new) i ich usuwanie
(garbage-collector).
- Operatory i wyrażenia.
- Instrukcje sterujące.
- Tablice, tablice wielowymiarowe.
- Parametry wywołania programu.
- Napisy (klasa String).
Przykładowe programy:
Witaj.java
Argumenty.java
ImieNazwisko.java
Funkcja.java
Miesiace.java
AdresPocztowy.java
- 12/13-10-2005 (klasy i obiekty):
-
- Klasy.
- Pola i metody.
- Pola ostateczne.
- Kontrola dostępu, czyli ukrywanie informacji
(hermetyzacja).
- Przekazywanie parametrów do metod.
- Przeciążanie metod.
- Tworzenie obiektów i konstruktory.
- Referencja this.
- Niszczenie obiektów i metoda finalize.
- Składowe statyczne.
- Klasy usługowe na przykładzie Math i klas
opakowujących typy pierwotne.
- Podglądanie definicji klasy (program javap).
Przykładowe programy:
narzedzia/LZesp.java
+ TestLZesp.java
narzedzia/Licznik.java
+ TestLicznik.java
- 19/20-10-2005 (dziedziczenie i polimorfizm):
-
- Klasy bazowe i pochodne.
- Pola i metody odziedziczone (public i protected).
- Upublicznianie składowych.
- Konstruktory, wywołanie konstruktora nadklasy (super).
- Zastępowanie metod i ukrywanie pól.
- Polimorficzne wywoływanie metod.
- Wywoływanie metod z nadklasy (super).
- Metody i klasy ostateczne (final).
- Wywołania niepolimorficzne.
- Metody i klasy abstrakcyjne (abstract).
- Klonowanie obiektów (metoda clone() i interfejs Cloneable).
- Klasy zagnieżdżone.
Przykładowe programy:
Schowek.java
+ SchowekNapisowy.java
+ SchowekRzeczywisty.java
+ SchowekPpb.java
+ SchowekCalkowity.java
+ Licznik.java
struktury/StosLiczb.java
+ TestStosLiczb.java
- 26/27-10-2005 (interfejsy, wyjątki):
-
- Definiowanie interfejsów.
- Pola i metody w interfejsach.
- Rozszerzanie interfejsów.
- Implementowanie interfejsów w klasie.
- Wykorzystywanie interfejsów.
- Wyjątki i ich hierarchia.
- Wyjątki kontrolowane i niekontrolowane.
- Zgłaszanie wyjątków (instrukcja throw).
- Łapanie wyjątków (instrukcja try-catch-finally).
- Deklarowanie wyjątków zgłaszanych przez metodę (deklaracja throws).
- Zawężanie listy deklarowanych wyjątków przy zastępowaniu metod.
- Definiowanie własnych wyjątków.
- Pakiety.
- Komentarze dokumentacyjne (program javadoc).
Przykładowe programy: -
- 2/3-11-2005 (AWT, delegacyjny model obsługi zdarzeń):
-
- Hierarchia komponentów AWT.
- Kontenery i menadżery rozkładu.
- Proste aplikacje okienkowe.
- Grafika (kreślenie figur, kolory, czcionki).
- Delegacyjny model obsługi zdarzeń (utworzenie słuchacza
zdarzeń określonego typu, zarejestrowanie słuchacza do
obsługi zdarzeń dotyczących danego komponentu).
Przykładowe programy:
ProsteOkno.java
RozkladNormalny.java
KursorMyszy.java
Grafika.java
- 9/10-11-2005 (aplety):
-
- Aplet jako kontener.
- Ograniczenia apletów.
- Cykl życia apletu.
- Umieszczanie apletów na stronach WWW.
- Przekazywanie parametrów do apletu.
- Komunikowanie się apletów.
- Wyświetlanie plików graficznych w apletach.
- Odtwarzanie plików dźwiękowych w apletach.
- Archiwa javy (program jar).
Przykładowe programy:
ProstyAplet.java
+ ProstyAplet.html
WspMyszy.java
+ WspMyszy.html
KodKlaw.java
+ KodKlaw.html
Kreski.java
+ Kreski.html
Przegladarka.java
+ Przegladarka.html
Multimedia.java
+ Multimedia.html
- 16/17-11-2005 (Swing - 1):
-
- Hierarchia komponentów Swingu.
- Przegląd prostych komponentów GUI w Swingu.
- Fokus.
- Budowa i działanie menu.
- Akcje klawiaturowe.
Przykładowe programy:
ProsteOknoSwing.java
ProsteMenuSwing.java
ProsteSkrotyKlawSwing.java
+ ang.gif
+ pol.gif
- 23/24-11-2005 (Swing - 2):
-
- Architektura okien w Swingu.
- Warstwy i szyba.
- Okna wewnętrzne.
- Wyspecjalizowane kontenery Swinga (panel dzielony,
panel przewijalny, zakładki).
- Obieralny wygląd aplikacji L&F.
Przykładowe programy: -
- 30-11/1-12-2005 (Swing - 3):
-
- Modele i widoki, czyli MVC (Model-View-Controller).
- Architektura MVC na przykładzie listy.
- Model danych i krześlarz w modelu widoku.
- Przegląd innych komponentów GUI opartych na architekturze MVC
(suwaki, listy rozwijalne, tabele, drzewa).
- Timer, czyli cykliczny generator zdarzeń.
Przykładowe programy:
Totolotek.java
- 7/8-12-2005 (strumienie):
-
- Klasyfikacja strumieni na bajtowe i znakowe.
- Hierarchia klas strumieni.
- Strumienie przedmiotowe związane ze źródłem/ujściem danych.
- Strumienie przetwarzające i filtrujące.
- Kodowanie.
- Strumienie binarne.
- Strumienie kompresujące.
- Serializacja (interfejs Serializable).
- Obiekty plikowe (klasa File).
Przykładowe programy:
Kopiarka.java
+ Konwerter.java
- 14/15-12-2005 (wątki i procesy):
-
Przykładowe programy: -
- 21/22-12-2005 (kolekcje standardowe):
-
Przykładowe programy: -
- 4/5-01-2006 (refleksja i java-beans):
-
Przykładowe programy: -
- 11/12-01-2006 (programowanie sieciowe):
-
Przykładowe programy: -
- 18/19-01-2006 (programowanie baz danych):
-
Przykładowe programy: -
|