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:

powrót na początek strony


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)

powrót na początek strony


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ń
  1. 9-13.10.2006: liczby naturalne w postaci słownej (ps/pdf) 13 punktów
  2. 16-20.10.2006: rozkład liczb naturalnych na czynniki pierwsze (ps/pdf) 17 punktów
  3. 6-10.11.2006: obliczanie wyrażeń ONP (ps/pdf) 13+11+7 punktów (odpowiednio za każdą część)
  4. 13-17.11.2006: kalkulator (ps/pdf) 13 punktów
  5. 20-24.11.2006: rysunek (ps/pdf) 13 punktów
  6. 27.11-1.12.2006: wykres (ps/pdf) 17 punktów
  7. 4-8.12.2006: kalendarz (ps/pdf) 13 punktów
  8. 11-15.12.2006: robaki (ps/pdf) 19 punktów
  9. 18-22.12.2006: Black Jack (ps/pdf) 17 punktów
  10. 8-12.01.2007: nawigator po lokalnym systemie plików (ps/pdf) 11 punktów
  11. 15-19.01.2007: sieciowa gra w liczby (ps/pdf) 17 punktów
  12. 22-26.01.2007: forum sieciowe (ps/pdf) 19 punktów
rankingi
  • studenci dzienni (tylko moja grupa): (html)
  • studenci wieczorowi: (html)

powrót na początek strony


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).

powrót na początek strony


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...

powrót na początek strony