Nawigacja okruszkowa Nawigacja okruszkowa

Widok zawartości stron Widok zawartości stron

Konsultacje
piątek 10-12
pokój D-2-47 lub MS Teams

tel. (+48 12) 664 46 81

michal.ciesla@uj.edu.pl

Widok zawartości stron Widok zawartości stron

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

 

  1. Wprowadzenie.
    Instalacja Linuxa w Virtual Boxie, pierwszy program w C.

  2. Instrukcje warunkowe.
    Instrukcje warunkowe, operatory, tablice, wskaźniki.

  3. Pętle.
    Pętle while, do...while, for. Przykłady prostych algorytmów, schematy blokowe, rekurencja.

  4. Sortowanie.
    Podstawowe operacje na plikach, algorytmy sortujące, złożoność obliczeniowa.

  5. Struktury.
    Struktury w C, zarządzanie pamięcią, listy jedno- i dwukierunkowe.

  6. Drzewa.
    Drzewa, drzewa wyszukiwania binarnego, drzewa czerwono-czarne.

  7. Grafy.
    Grafy, reprezentacje grafów, przeszukiwanie grafu, kolorowanie grafu, minimalne drzewo rozpinające.

  8. Grafy i złożonść obliczeniowa.
    Grafy, najkrótsze ścieżki, maksymalne przepływy, problem komiwojażera. elementy teoria złożoności obliczeniowej.

  9. Programowanie obiektowe 1/3.
    Wprowadzenie do programowania obiektowego w C++. Klasy, metody, przeciążanie metod i operatorów, referencje, strumienie.

  10. Programowanie obiektowe 2/3.
    Operatory new i delete, konstruktor i operator kompiujący, wyjątki, dziedziczenie, polimorfizm.

  11. Programowanie obiektowe 3/3.
    Preprocesor, szablony, biblioteka STL.

  12. Python.
    Wprowadzenie do programowania w języku Python.

  13. Java.
    Wprowadzenie do programowania w języku Java.

  14. Programowanie funkcyjne w języku Scala.
    Wprowadzenie do programowania funkcyjnego na przykładzie języka Scala.
  •