Specjalność studiów I i II stopnia
Oferta dydaktyczna IAiR

Programowanie obiektowe C++

Cel

Uzyskanie umiejętności w zakresie obiektowej analizy problemu oraz analizy i projektowania klas i ich hierarchii. Umiejętność projektowania, kodowania i testowania programów obiektowych w języku C++.

Opis

Składnia podstawowa języka C++: struktura programu, format zapisu kodu, zmienne i stałe - zakres ważności i typy danych, operatory, instrukcje sterujące, praca z plikami źródłowymi, tablice, struktury, wskaźniki i referencje, funkcje. Wstęp do programowania obiektowego Paradygmaty programowania obiektowego. Obiektowa analiza problemu. Zasady dostępu do składowych klas i obiektów. Ochrona atrybutów i metod, ukrywanie implementacji. Funkcje zaprzyjaźnione.
Hierarchie klas i dziedziczenie. Konstruktory i destruktory. Kopiowanie i klonowanie obiektów. Wielodziedziczenie. Różnicowanie zachowań obiektów w zależności od ich typu. Metody wirtualne. Klasy abstrakcyjne. Koncepcja interfejsów. Funkcje czysto wirtualne. Pamięć, zarządzanie obiektami i czasem ich życia. Obsługa błędów: wyjątki i ich przechwytywanie. Przeciążanie operatorów.

Wymagania

Podstawowa znajomość technik komputerowych. Znajomość programowania strukturalnego oraz podstaw struktur i algorytmów przetwarzania danych. Mile widziana znajomość podstaw programowania wizualnego.

Bibliografia

  1. Jerzy Grębosz: „Symfonia C++”, Oficyna Kalimach
  2. Kayshav Dattatri: „Język C++. Efektywne programowanie obiektowe”, Helion 2005
  3. Ian Graham, Alan O′Callaghan, Alan Wills: „Metody obiektowe w teorii i w praktyce”, WNT 2004
  4. Nicolai M. Josuttis: „C++. Programowanie zorientowane obiektowo. Vademecum profe-sjonalisty”, Helion 2003
  5. Bertrand Meyer: :”Programowanie zorientowane obiektowo” , Helion 2005
  6. Bjarne Stroustrup. „Język C+”, WNT 2004
  7. Stanley B. Lippman, Josee Lajoie: „Podstawy języka C++”, WNT 2003
  8. Adrzej Zalewski: "Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++"
  9. Jesse Liberty : "C++ dla każdego"
  10. Jesse Liberty : "C++. Księga eksperta"

Metody oceny

Ocena ostateczna wyznaczana jest na podstawie oceny składowej, przy założeniu konieczności uzyskania wszystkich ocen składowych pozytywnych.
Wykład: sprawdzian testowy z zakresu części wykładowej. Współczynnik wagowy: 0.4
Projekt: ocena wykonanego projektu. Współczynnik wagowy: 0.6

Szczegółowy rozkład zajęć

Nr Temat Opis Wymiar
1 Składnia języka C++ Przegląd języka C++ w zakresie programowania strukturalnego: struktura programu, format zapisu kodu, zmienne i stałe - zakres ważności i typy danych, operatory, instrukcje sterujące, praca z plikami źródłowymi, tablice, struktury, wskaźniki i referencje, funkcje. Zagadnienia dodatkowe z zakresu standardowych bibliotek wzorców (STL): przestrzenie nazw i kolekcje. W 3
2 Wstęp do programowania obiektowego Paradygmaty programowania obiektowego. Podstawowe pojęcia programowania obiektowego: obiekt, klas, atrybuty i metody. Różnice w stosunku do programowania strukturalnego. W 2
3 Obiektowa analiza problemu Wydzielanie obiektów i ich części składowych (ze względu na atrybuty oraz metody). Zasady dostępu do składowych klas i obiektów. Zagnieżdżanie obiektów i klas. Rodzaje powiązań między obiektami. Ochrona atrybutów i metod, ukrywanie implementacji. Funkcje zaprzyjaźnione. Zapis wyniku analizy w postaci diagramów UML. W 2
4 Hierarchie klas i dziedziczenie Hierarchia klas i obiektów. Wyznaczanie części wspólnych, tworzenie klas i łączenie ich w związki dziedziczenia. Rodzaje dziedziczenia. Konstruktory i destruktory. Kopiowanie i klonowanie obiektów. Tworzenie i usuwanie obiektów klas będących w hierarchii klas. Wielodziedziczenie. W 4
5 Polimorfizm Różnicowanie zachowań obiektów w zależności od ich typu. Metody wirtualne. Klasy abstrakcyjne. Wiązanie dynamiczne. Tworzenie i usuwanie obiektów - właściwości zaawansowane. W 2
6 Zagadnienia dodatkowe Koncepcja interfejsów. Funkcje czysto wirtualne. Pamięć, zarządzanie obiektami i czasem ich życia. Obsługa błędów: wyjątki i ich przechwytywanie. Przeciążanie operatorów. Przekształcenia typów użytkownika. W 2
1 Zadanie projektowe Tematem projektu jest realizacja jednego złożonego programu przy wykorzystaniu programowania obiektowego i języka C++. Projekty wykonywane są pojedynczo lub w grupach (2-3 osobowych) w przypadku projektów złożonych. Zakres realizacji projektu obejmuje:
  • analiza obiektowa problemu,
  • zaproponowanie rozwiązania,
  • projekt oprogramowania,
  • implementacja głównych części "obliczeniowych",
  • wykonanie interfejsu użytkownika,
  • przeprowadzenie testów,
  • opracowanie dokumentacji technicznej oraz dokumentacji użytkownika.
Projekt realizowany jest w trzech głównych etapach, z których każdy oceniany jest niezależnie:
  • Etap 1 – Projekt aplikacji (w tym analiza obiektowa problemu, opis proponowanego rozwiązania, omówienie sytuacji wyjątkowych, …)
  • Etap 2 – Prototyp aplikacji (pierwsza część implementacji obejmująca główną funkcjonalność, bez lub z ograniczonym interfejsem)
  • Etap 3 – Gotowa aplikacja i pełne testy (w pełni zaimplementowana funkcjonalność, wprowadzone pełne zabezpieczenia, przeprowadzone testy, wykończona dokumentacja).
P 15
Instytut Automatyki i Robotyki
Politechnika Warszawska