Web Content Display
Office hours for students
thursday 12-14
room D-2-47
tel. (+48 12) 664 46 81
michal.ciesla@uj.edu.pl
Web Content Display
WSTĘP DO PROGRAMOWANIA
Wykład ma na celu naukę podstaw programowania. Początkowe wykłady uczą programowania proceduralnego w języku C. W dalszej części znajdują się informacje o podstawowych algorytmach i struktury danych, a także elementy programowania obiektowego (C++, Java) i funkcyjnego (Scala).
Ramowy plan wykładu
- Wprowadzenie.
Instalacja Linuxa w Virtual Boxie, pierwszy program w C. - Instrukcje warunkowe.
Instrukcje warunkowe, operatory, tablice, wskaźniki. - Pętle.
Pętle while, do...while, for. Przykłady prostych algorytmów, schematy blokowe, rekurencja. - Sortowanie.
Podstawowe operacje na plikach, algorytmy sortujące, złożoność obliczeniowa. - Struktury.
Struktury w C, zarządzanie pamięcią, listy jedno- i dwukierunkowe. - Drzewa.
Drzewa, drzewa wyszukiwania binarnego, drzewa czerwono-czarne. - Grafy.
Grafy, reprezentacje grafów, przeszukiwanie grafu, kolorowanie grafu, minimalne drzewo rozpinające. - Grafy i złożonść obliczeniowa.
Grafy, najkrótsze ścieżki, maksymalne przepływy, problem komiwojażera. elementy teoria złożoności obliczeniowej. - Programowanie obiektowe 1/3.
Wprowadzenie do programowania obiektowego w C++. Klasy, metody, przeciążanie metod i operatorów, referencje, strumienie. - Programowanie obiektowe 2/3.
Operatory new i delete, konstruktor i operator kompiujący, wyjątki, dziedziczenie, polimorfizm. - Programowanie obiektowe 3/3.
Preprocesor, szablony, biblioteka STL. - Python.
Wprowadzenie do programowania w języku Python. - Java.
Wprowadzenie do programowania w języku Java. - Programowanie funkcyjne w języku Scala.
Wprowadzenie do programowania funkcyjnego na przykładzie języka Scala.