Wy sza Szkoła Zarz ądzania ”Edukacja” Wydział Zarządzania
Transkrypt
Wy sza Szkoła Zarz ądzania ”Edukacja” Wydział Zarządzania
Wyższa Szkoła Zarządzania ”Edukacja” Wydział Zarządzania Kierunek Informatyka – studia inżynierskie zaoczne Opisy kursów Nazwa kursu: JĘZYKI I PARADYGMATY PROGRAMOWANIA (IJiPP3) Rodzaj kursu (podstawowy/kierunkowy/specjalnościowy): kierunkowy Typ kursu (obowiązkowy/wybieralny): obowiązkowy Przedmioty wprowadzające: Języki i metody programowania I / II Rodzaj i wymiar zajęć (godzin/semestr): Wykład : 30 Projekt: 15 Forma zaliczenia: Wykład: egzamin Projekt: zaliczenie na ocenę Kurs prowadzony na semestrach: Wykład: III Projekt: III Liczba punktów ECTS: 6 Założenia i cele kursu: Celem wykładu jest zapoznanie studentów z obiektowym paradygmatem programowania oraz z konkretnymi językami programowania obiektowego: C++ i Java. Celem projektu jest nabycie praktycznych umiejętności projektowania i programowania obiektowego w języku C++ na przykładzie obszerniejszego programu wykonanego w technice obiektowej. Zadania realizowane będą w grupach 2-3 osobowych. Metody dydaktyczne: Wykład: tradycyjna forma wykładu przy tablicy, z dużą liczba przykładów kodu w językach C++ i Java szczegółowo komentowanych przez wykładowcę. Projekt: Wykonywanie kolejnych etapów projektu programu obiektowego wraz z implementacją pod nadzorem prowadzącego.. Szczegółowy program wykładu: Projektowania i i projektowanie obiektowe jako technika modelowania wycinka rzeczywistości w kategoriach bytów programistycznych: pojęcie klasy i obiektu. metody i atrybuty klasy, interakcje pomiędzy obiektami (3g) Programowanie obiektowe w języku C++: definiowanie klasy, atrybutów i metod, przykłady definicji klas dla różnych elementów świata rzeczywistego, konstruktory i destruktory (3g) Dziedziczenie: pojęcie specjalizacji i generalizacji, hierarchia klas, kontrolowanie praw dostępu do komponentów w hierarchii klas, funkcje i metody zaprzyjaźnione, klasy zdefiniowane lokalnie (3g) Polimorfizm i metody wirtualne: istota polimorfizmu, przykłady zastosowań, składnia definicji metody wirtualnej, wczesne i późne łączenie, wywoływanie metod wirtualnych, klasy abstrakcyjne, destruktor wirtualny (3g) Przeciążanie operatorów: przykłady zastosowania operatorów przeciążonych, funkcje i metody operatorowe, niezmienne cechy operatorów, operator podstawienia i konstruktor kopiujący, praktyczne problemy efektywnościowe zastosowania obliczeń z wykorzystaniem operatorów przeciążonych, mechanizm konwersji typów, jawne definiowane operatora konwersji typu. (3g) Szablony w C++ jako element programowania generycznego: składnia i semantyka szablonów, zasady rozwijania szablonów przez kompilator, przykłady (3g) Biblioteka STL: podstawowe klasy: vector i set, ich metody i atrybuty, pojęcie iteratora, przykłady zastosowań (3g) Obiektowe wejście i wyjście: zalety w stosunku do wejścia-wyjścia funkcyjnego, biblioteka iostream, manipulatory, przeciążanie operatorów wejścia-wyjścia dla klas definiowanych przez programistę, strumieniowe operacje wejścia/wyjścia na plikach (3g) Podstawy języka Java: różnice i podobieństwa pomiędzy jp. Java i C++, zasady kompilacji i interpretacji programów w Javie, środowisko wykonania programu javovego - różnice w stosunku do tradycyjnych programów kompilowanych do kodu maszynowego, maszyna wirtualna Javy, koncepcja just-in-time-compiling, uniwersalna hierarchia klas Javy, pojęcie pakietu i interfejsu (3g) Wybrane pakiety Javy i ich wykorzystanie: awt, swing, applet , tworzenie interfejsu użytkownika z użyciem pakietu swing, tworzenie apletów i ich wykonywanie w przeglądarce WWW (3g) Szczegółowy zakres projektu:: Omówienie tematów projektów przez prowadzącego, wyznaczenie etapów do realizacji na kolejnych zajęciach, omówienie formalnych wymogów dot. prezentacji etapów projektu i sporządzenia dokumentacji (3g). Prezentacja i dyskusja obiektowego modelu wycinka rzeczywistości którego dotyczy zadanie (3g). Szkieletowa implementacja programu dla realizowanego zadania: podział programu na pliki źródłowe, rozmieszczenie deklaracji klas i definicji metod, implementacja podstawowych metod zaprojektowanych klas (3g). Pełna implementacja programu, opracowanie projektu testów, dyskusja zastosowanych rozwiązań z prowadzącym (3g). Prezentacja ostatecznego rezultatu zadania, przedstawienie dokumentacji oraz testy i ocena efektywności (3g). Literatura podstawowa: 1. Grębosz J.: Symfonia C++ Standard, Tom 1,2, Edition 2000, 2006 2. Grębosz J.: Pasja C++, Tom 1,2, Edition 2000 3. Eckel B.: Thinking in Java, Helion 2003 Literatura uzupełniająca: 1. Stroustrup B.: Język C++, WNT 2004 2. Lippman S.: Istota języka C++, WNT 2004 3. Dumański R., Kasprzyk A., Kozłowski M.: Analiza i projektowanie obiektowe, Helion 1998