(anonymous guest) (logged out)

Copyright (C) by the contributors. Some rights reserved, license BY-SA.

Sponsored by the Wiki Symposium and the Nuveon GmbH.

 

Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-6) was last changed on 31-Jan-2007 12:56 by RadomirDopieralski  

This page was created on 27-Jan-2007 11:46 by ChristophSauer

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 21 added 130 lines
== Page "good enough" ==
This user filled in the text between the headings on a wiki supporting Creole 0.1 with blog-like line breaks. The page wasn't edited any further, there were no attempts to use any markup, the terms explanations have to be reached by searching the wiki, as there are no links. Some of the formatting (indetation) is lost, but the user decided it's "good enough" and left it.
{{{
== Programowanie obiektowe ==
Liczba godzin wykładu: 30
ćwiczeń:
laboratoriów: 30
==== Wymagania przedmiotowe ====
Podstawy programowania
==== Sylabus ====
I. Programowanie obiektowe w języku Java
1) Wprowadzenie do programowanie obiektowego oraz języka Java:
- programowanie w podejściu proceduralnym, a programowanie w podejściu obiektowym,
- klasa i obiekt w paradygmacie programowania obiektowego (tożsamość, stan, zachowanie, hermetyzacja,)
- wprowadzenie do Javy (zarządzanie pamięcią, uruchamianie programów),
- anatomia języka Java (zmienne, typy, instrukcje).
2) Klasa, a obiekt:
- klasa i obiekt w języku Java (klasa, składowe klasy, definicja klasy, klasa i instancja klasy),
- metody i ich wywołanie,
- metoda finalize
- konstruktor,
- czas życia obiektu,
- ukrywanie implementacji (modyfikatory dostępu, dostęp „przyjazny”),
- pakiety.
3) Dziedziczenie, polimorfizm, klasa abstrakcyjna, interfejsy:
- dziedziczenie i hierarchia klas,
- widoczność składowych podczas dziedziczenia,
- polimorfizm,
- klasa abstrakcyjna,
- interfejsy,
- słowo kluczowe final,
- klasy wewnętrzne.
4) Związki pomiędzy obiektami oraz ich realizacja w języku Java:
- związki pomiędzy obiektami,
- przesyłanie komunikatów
- specjalizacja / generalizacja (właściwości, jak rozpoznać związek specjalizacja / generalizacja),
- asocjacja (asocjacja, a powiązanie; liczność asocjacji, realizacja asocjacji binarnej, realizacja asocjacji 1-n, realizacja asocjacji n-n)
- agregacja.
5) Przechowywanie obiektów:
- tablice,
- kolekcje,
- iteratory.
6) Wybrane zagadnienia implementacyjne języka Java:
- obsługa wyjątków,
- system wejścia – wyjścia (strumienie, klasa File)
- serializacja obiektów,
- zarządzanie typami (RTTI).
7) Zastosowania języka Java:
- budowa interfejsu okienkowego (Swing),
- obsługa zdarzeń,
- aplety (budowa, pliki JAR),
- środowisko J2EE.
II. Efektywne programowanie w językach obiektowych
8) Analiza i projektowanie obiektowe
- cykl życia oprogramowania oraz miejsce w tym cyklu na analizę i projektowanie obiektowe,
- zunifikowany język do modelowania obiektowego UML (czym jest UML, diagram klas, diagramy interakcji),
- analiza obiektowa (identyfikacja obiektów, atrybutów i związków pomiędzy obiektami),
- projektowanie obiektowe (identyfikacja metod, czym są wzorce projektowe).
III. Środowisko .NET oraz programowanie obiektowe w języku C#
9) Środowisko .NET
- środowisko uruchomieniowe .NET Framework (WinForms, ASP.NET, klasy bazowe, CLR)
- wspólne środowisko uruchomieniowe (język pośredni MSIL, wspólny system typów CTS, metadane zarządzanie pamięcią, obsługa wersji, pojęcie złożenia)
- współpraca pomiędzy językami .NET (VB, C#, MC++),
- kod zarządzany i niezarządzany w MC++
10) Programowanie obiektowe w języku C#
- przestrzenie nazw,
- typy wartości i typy referencyjne,
- tablice,
- przekazywanie parametrów do funkcji (metod),
- klasy,
o stale, pola, metody, metody generyczne,
o konstruktory, finalizatory,
o dziedziczenie,
o widoczność składowych klas,
- właściwości,
- mechanizm obsługi zdarzeń,
- przeładowywanie operatorów,
- interfejsy.
IV. Programowanie obiektowe w języku C++
11) Podstawy języka C++:
- wprowadzenie do C++ (C++ a Java i C#; zarządzanie pamięcią, uruchamianie programów),
- anatomia języka C++ (zmienne, typy, instrukcje),
- klasa i obiekt w języku C++ (klasa, składowe klasy, widoczność składowych, definicja klasy, klasa i instancja klasy),
- metody i ich wywołanie,
- konstruktor, destruktor,
- czas życia obiektu.
12) Dziedziczenie, polimorfizm, klasa abstrakcyjna, wielokrotne wykorzystanie kodu:
- konstruktor i destruktor w klasie pochodnej,
- wielokrotne dziedziczenie,
- polimorfizm (metody wirtualne, wczesne i późne wiązanie, wirtualne destruktory),
- klasa abstrakcyjna.
- funkcje i klasy zaprzyjaźnione,
- przeładowanie operatorów,
- kopiowanie obiektów, konstruktor kopiujący,
- korzystanie z szablonów klas,
==== Cel przedmiotu ====
Celem przedmiotu jest przedstawienie podstawowych pojęć związanych z programowaniem obiektowym oraz ich realizacją w wybranych językach programowania. Podstawowe pojęcia programowania obiektowego wprowadzane są w oparciu o język Java, różnice w innych językach ilustrowane są na przykładzie C# oraz C++. Na wykładzie przedstawione jest znaczenie dla programowania obiektowego analizy i projektowania obiektowego oraz języka UML. Wykład jest w pełni skorelowany z ćwiczeniami laboratoryjnymi tzn. zagadnienia omawiane na wykładzie są pogłębiane na laboratoriach poprzez analizę przez studentów przykładowych programów ilustrujących omawiane zagadnienia. Praca studentów na laboratoriach polega ponadto na pisaniu małych programów do każdego z zagadnień omawianych na wykładzie. Studenci są również zobowiązani do zrealizowanie indywidualnie projektów programistycznych w 2 językach programowania.
==== Literatura ====
Bruce Eckel, Thinking in Java, Helion, 2001
Cay S. Horstmann, G. Cornell, Core Java 2, Podstawy, Helion, 2003
Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, 1999
Jerzy Grębosz, Pasja C++, Oficyna Kallimach, 1999
Craig Larman, Applying UML and Patterns, Prentice Hall, 2002
}}}
Version Date Modified Size Author Changes ... Change note
6 31-Jan-2007 12:56 14.082 kB RadomirDopieralski to previous
5 31-Jan-2007 12:56 14.08 kB RadomirDopieralski to previous | to last
4 27-Jan-2007 12:53 13.985 kB 150.254.78.35 to previous | to last another use case from sylabus
3 27-Jan-2007 12:41 7.107 kB RadomirDopieralski to previous | to last case from the sylabus wiki
2 27-Jan-2007 11:46 1.43 kB ChristophSauer to previous | to last added case
1 27-Jan-2007 11:46 1.435 kB ChristophSauer to last added case
« This page (revision-6) was last changed on 31-Jan-2007 12:56 by RadomirDopieralski