Języki i paradygmaty programowania I, dr Michał Mucha
Transkrypt
Języki i paradygmaty programowania I, dr Michał Mucha
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 I Wykład kursowy Liczba godzin Rok studiów/tryb Semestr 30 zimowy ii Punkty ECTS Założenia i cele: Zapoznanie słuchaczy z podstawami języków C i C++. Cel: Opanowanie przez słuchaczy umiejętności pisania kodu w języku C++ z wykorzystaniem podstawowych struktur języka. Przede wszystkim: operacji wejścia wyjścia, dynamicznej alokacji pamięci, pracy ze wskaźnikami, tworzenia obiektów (również dynamiczne), wykorzystanie dziedziczenia. Tematyka zajęć (słowa kluczowe)/ Odsetek czasu zajęć 1. Programy w języku C/C++. Struktura. Kompilacja. 2. Podstawy 1. Identyfikatory 2. Proste typy danych 3. Typy całkowite, typy logiczne 4. Typy wyliczeniowe 5. Podstawienia do typu enum 6. Typy zmiennoprzecinkowe 7. Błędy, dokładność i stabilność 8. Liczby całkowite 9. Liczby zmiennoprzecinkowe 2% 48% 10. Operatory 11. Funkcje scanf i printf 12. Łańcuchy formatujące w C 13. Operatory ++ i –– 14. Wywołanie funkcji z argumentami 15. Zakres i widoczność zmiennych 3. Wskaźniki 1. Deklaracje wskaźników 2. Arytmetyka na wskaźnikach 3. Konwersja wskaźników 4. Wskaźniki do funkcji 5. Stałe wskaźnikowe 4. Tablice, struktury i unie 1. Tablice 2. Struktury 3. Struktury anonimowe 4. Definiowanie typów danych użytkownika 5. Dostęp do składowych struktur 6. Struktury i wywołania funkcji 7. Pola bitowe 8. Deklaracja pól bitowych 9. Ograniczenia w korzystaniu z pól bitowych 10. Unie 5. Inicjalizacja zmiennych 6. Przykład gramatyki języka 7. Operatory indeksów w tablicach 8. Operator wywołania funkcji 9. Modyfikatory deklaracji 10. Gramatyka wyrażeń 11. Dynamiczna alokacja pamięci w C 12. Operacje wejścia wyjścia w C 13. Przykłady: Mnożenie macierzy. Dynamiczna tablica łańcuchów Alokacja tablic w stylu Pascala. Symulacja rzutów monetą Podstawowe funkcje biblioteczne na łańcuchach. Przykład listy Stos Kolejki 14. Klasy 48% 1. Deklaracje klas 1. Deklaracje z użyciem słowa kluczowego class 2. Deklaracje z użyciem słowa kluczowego struct 3. Deklaracje z użyciem słowa kluczowego union 4. Przykłady: Lista cykliczna. 2. Dziedziczenie 1. Dostęp do składowych klasy 2. Dostęp do składowych klas bazowych i potomnych 3. Wirtualne klasy bazowe 3. Funkcje zaprzyjaźnione 4. Operacje wejścia-wyjścia w C++ 1. Operator >> 2. Operator << 3. Manipulatory 4. Klasy ofstream, ifstream, fstream 5. Przykład: wczytywania, zapisu 6. Tryb otwarcia pliku 5. Wstępne informacje o konstruktorach i destruktorach 1. Konstruktory 1. Konstuktor domyślny 2. Konstruktor kopiujący 3. Przedefiniowywanie konstruktorów 4. Kolejność wywołania konstruktorów 5. Inicjalizacja klas 2. Destruktory 1. Wywoływanie destruktorów 2. Destruktory a funkcja atexit i dyrektywa #pragma exit 3. Destruktory a funkcja exit 4. Destruktory a funkcja abort 5. Destruktory wirtualne 6. Słowo kluczowe this 7. Składowe statyczne 8. Funkcje inline 9. Przedefiniowywanie operatorów 1. Przykład przedefiniowywania operatorów 2. Przedefiniowywanie funkcji operatorowych 3. Przedefiniowane (overloaded) operatory a dziedziczenie 4. Zmiany definicji operatorów unarnych 5. Zmiany definicji operatorów binarnych 6. Zmiany definicji operatora podstawienia = 7. Zmiana definicji operatora wywołania funkcji () 8. Zmiana definicji operatora indeksu [ ] 9. Zmiana definicji operatora -> 10. Klasy polimorficzne 1. Funkcje wirtualne 2. Funkcje wirtualne zwracające dane określonego typu 3. Klasy abstrakcyjne 11. Przykład: listy, klasy prostokąta 15. Makra 1. Zagnieżdżanie nawiasów i przecinków 2. Wstawianie tokena za pomocą ## 3. Zamiana na łańcuch za pomocą # 4. Kompilacja warunkowa Sposoby oceny pracy studenta ocena ciągła (bieżące przygotowanie do zajęć i aktywność) śródsemestralne kolokwia pisemne/ustne 2% Udział w ocenie końcowej końcowe zaliczenie pisemne/ustne egzamin pisemny 55% egzamin ustny kontrola obecności Praca końcowa semestralna/roczna 45% inne: Literatura obowiązkowa 1. Kernigham Brain, Ritchie Dennis, „Język ANSI C” WNT Warszawa 1998 2. Stroustrup, Bjarne „Język C++” wydanie 4 WNT Warszawa 1998. Oryginał „The C++ programming language” -- 2nd ed. Addison-Wesley 1993 3. 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”. 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