Języki i paradygmaty programowania II, dr Michał

Transkrypt

Języki i paradygmaty programowania II, dr Michał
Sylabus
WYDZIAŁ FIZYKI
Uniwersytet im. Adama Mickiewicza w Poznaniu
Instytut
Zakład Fizyki Kwantowej
Stopień/tytuł naukowy
Imię
Nazwisko
dr
Michał
Mucha
Kierunek studiów
Specjalność
Fizyka
Informatyka Stosowana
Nazwa przedmiotu
Rodzaj zajęć
Języki i paradygmaty programowania II
Wykład kursowy
Liczba godzin
Rok studiów/tryb
Semestr
30
letni
2
Punkty ECTS
Założenia i cele: Doskonalenie umiejętności programowania w C++. Opanowanie
korzystania: z obsługi wyjątków, zasobów biblioteki STL, tworzenia i korzystania z
dynamicznych bibliotek, umiejętności wywołania API systemu operacyjnego, tworzenia
programów wielowątkowych.
Tematyka zajęć (słowa kluczowe)/ Odsetek czasu zajęć
1.
1.
2.
3.
4.
5.
6.
7.
8.
9.
2.
1.
Templates – szablony
Szablony funkcji
Przykrywanie (overriding) funkcji szablonu
Niejawne i jawne szablony funkcji
Szablony klas
Argumenty szablonów
Nawiasy ostre w szablonach
Listy generyczne bezpieczne ze względu na typy danych
Definicja klasy generycznej listy bezpiecznej ze względu na typy danych
Eliminacja wskaźników w szablonach
Podstawy STL. Standard Template Library
Motywacja powstania biblioteki.
2.
3.
4.
5.
6.
7.
8.
9.
1.
2.
3.
Historia STL.
STL a Standard C++ ANSI/ISO.
Klasy Nice
Obiekty funkcyjne
Statyczne sprawdzanie typów.
Szablony jako metody klas
Specjalizacja szablonów
Przegląd STL
Kontenery – containers
Vector – wektor
Iteratory
1. Iteratory wejścia i iteratory wyjścia
2. Iteratory jednokierunkowe
3. Iteratory dwukierunkowe
4. Iteratory o dostępie swobodnym
4. Algorytmy i obiekty funkcyjne
1. Jak utworzyć algorytm generyczny?
2. Algorytmy STL
3. Grupa 1 i 2
4. Grupa 3
5. Grupa 4
6. Przykład słownika do sprawdzania pisowni
5. Klasy dopasowujące – adaptors
1. Klasy dopasowujące dla kontenerów
2. Stos - stack.
3. Kolejka - queue.
4. Kolejka z priorytetami -- priority queue.
6. Iteratory dopasowujące -- Iterator Adaptors
1. Iteratory wsteczne -- Reverse Iterators
2. Iteratory wstawiające -- Insert Iterators
3. Iteratory pamięci -- Raw Storage Iterator
7. Funkcje dopasowujące -- Function Adaptors
1. Funkcje negujące – Negators
2. Funkcje wiążące – Binders
3. Funkcje dopasowujące dla wskaźników do funkcji -- Adaptors for pointers to
functions
8. Alokatory i wykorzystanie pamięci
9. Pozostałe komponenty STL
10. Współdziałanie komponentów
11. Wektor – Vector
12. Lista – List
13. Kolejka dwukierunkowa – Deque
14. Znaczniki iteratorów - Iterator Tags
15. Kontenery skojarzeniowe -- Associative Containers
3.
Wybrane zagadnienia i przykłady
1. Typ bool
2. Rozróżnienie typu statycznego i dynamicznego
3. Wskaźniki i referencje (odniesienia)
4. Rzutowanie
5. Polimorfizm bywa zdradliwy
6. Biblioteki dll
7. Konstruktory domyślne
8. Windows API FindFirstFile
9. Funkcje przekształcające typy danych
10. Konstruktory jednoargumentowe
11. Windows API SHFileOperation
12. Operatory inkrementacji i dekrementacji w postaci przedrostkowej i przyrostkowej
13. Zmiany definicji operatorów: &&, || i ,
14. Uruchamianie innych programów z własnego
15. Operatory new i delete
1. Operator new
2. Umieszczający operator new
3. Operator delete
16. Tablice
17. Wyjątki
18. Pominięte wywołania destruktorów
19. Wyjątki przy wywołaniu konstruktorów
20. Mutex
21. Inteligentne wskaźniki - smart pointers
22. Wątki API Windows Threads
1. Wątek uruchomiony bezpośrednio za pomocą funkcji API
2. Wątek uruchomiony za pomocą klas VCL
3. Synchronizacja wątków w VCL
4. Wątek o podwyższonym priorytecie
5. Wątek zawierający sekcję krytyczną
23. Wyszukiwanie katalogu z pomocą funkcji Shell'a
24. Wininet API
25. Telephony API
Sposoby oceny pracy studenta
Udział w ocenie
końcowej
ocena ciągła (bieżące przygotowanie do zajęć i aktywność)
śródsemestralne kolokwia pisemne/ustne
końcowe zaliczenie pisemne/ustne
egzamin pisemny
egzamin ustny
55%
kontrola obecności
Praca końcowa semestralna/roczna
45%
inne:
Literatura obowiązkowa
1. Stroustrup, Bjarne „Język C++ wydanie 4” WNT Warszawa 1998. Oryginał „The
C++ programming language -- 2nd ed.” Addison-Wesley 1993
2. Eckel Bruce, „Thinking in C++. Edycja polska.” Helion. Gliwice. Na stronie
internetowej http://www.ibiblio.org/pub/docs/books/eckel/ dostępne są (za darmo)
oryginalne wersje tej oraz innych książek autora „Thinking in C.”, „Thinking in Java”.
3. Vandevoorde David, Josuttis Nicolai M., „C++ Szablony.” Helion Gliwice 2003.
Oryginał “C++ templates: The complete Guide.” Pearson Education Inc. część
Addison Wesley 2003.
4. Meyers Scott, „Język C++ bardziej efektywny” Wydawnictwa Naukowo-Techniczne,
Warszawa1998. Oryginał „More Effective C++. 35 New Ways to Improve Your
Programs and Designs” Addison-Wesley 1996.
5. Josuttis Nicolai M., „C++ biblioteka standardowa. Podręcznik programisty.” Helion
Gliwice 2003. Oryginał „The C++ Standard Library: A Tutorial and Reference”
Pearson Education Inc. część Addison-Wesley 1999.
6. Andrew Koenig, Barbara E. Moo, „Accelerated C++. Practical Programing by
Example”, Pearson Education część Addison-Wesley Professional 2000. Polskie
tłumaczenie „C++ potęga języka” Helion Gliwice 2004
Literatura dodatkowa
1. Grębosz Jerzy, „Symfonia C++” tomy 1 -- 3, Oficyna Kallimach. Oraz inne książki
tego autora poświęcone językom C i C++.
2. Hansen Tony, „C++ zadania i odpowiedzi” wydanie drugie WNT Warszawa 1994.
Oryginał „The C++ Answer Book” Addison-Wesley 1990
3. Plauger P. J., „Biblioteka standardowa C++” WNT Warszawa 1997. Oryginał „The
Standard C++ Library” Prentice Hall, Inc.
4. Lee Meng, Stepanov Alexander “The Standard Template Library” HP Labaratories,
1501 Page Mill Road, Palo Alto, CA 94304 February 1995

Podobne dokumenty