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