Wstęp do programowania: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Poprawki edytorskie
m Poprawki edytorskie
Linia 14: Linia 14:
=== Zawartość ===
=== Zawartość ===
* Pojęcie algorytmu
* Pojęcie algorytmu
** Historia powstania pojęcia algorytmu  
** historia powstania pojęcia algorytmu  
** Algorytmy znane ze szkoły (Euklidesa, Hornera, rozwiązywanie równań liniowych i kwadratowych)
** algorytmy znane ze szkoły (Euklidesa, Hornera, rozwiązywanie równań liniowych i kwadratowych)
* Języki formalne
* Języki formalne
** Alfabet, składnia i semantyka
** alfabet, składnia i semantyka
** Gramatyki bezkontekstowe, jako narzędzie definiowania składni
** gramatyki bezkontekstowe, jako narzędzie definiowania składni
** Definicja semantyki przez interpretację wyrażeń poprawnych składniowo
** definicja semantyki przez interpretację wyrażeń poprawnych składniowo
* Reprezentacja liczb w komputerze  
* Reprezentacja liczb w komputerze  
** Stałe całkowite i rzeczywiste
** stałe całkowite i rzeczywiste
** Reprezentacje binarne stało- i zmiennopozycyjne
** reprezentacje binarne stało- i zmiennopozycyjne
** Systemy znak-moduł i uzupełnieniowy
** systemy znak-moduł i uzupełnieniowy
** Rachunek zmiennopozycyjny - pojęcie zakresu, błędu zaokrągleń
** rachunek zmiennopozycyjny - pojęcie zakresu, błędu zaokrągleń
* Zmienne i wyrażenia
* Zmienne i wyrażenia
** Typ zmiennej i wartościowanie zmiennych
** typ zmiennej i wartościowanie zmiennych
** Wyrażenia arytmetyczne i logiczne: składnia i semantyka
** wyrażenia arytmetyczne i logiczne: składnia i semantyka
* Instrukcje while-programów
* Instrukcje while-programów
** pusta, przypisania, warunkowa, iteracji, wyboru, czytania, pisania, wywołania procedury
** pusta, przypisania, warunkowa, iteracji, wyboru, czytania, pisania, wywołania procedury
** Składnia i semantyka powyższych instrukcji
** składnia i semantyka powyższych instrukcji
** Obliczenia skończone i nieskończone
** obliczenia skończone i nieskończone
** Błędy obliczeń
** błędy obliczeń
** Przykłady algorytmów
** przykłady algorytmów
* Asercje w programach i niezmienniki pętli
* Asercje w programach i niezmienniki pętli
** Formuły Hoare'a
** formuły Hoare'a
** Uzasadnianie poprawności programów
** uzasadnianie poprawności programów
** Własność stopu i metody jej dowodzenia
** własność stopu i metody jej dowodzenia
* Typy danych
* Typy danych
** tablice
** tablice
Linia 49: Linia 49:
** pliki tekstowe
** pliki tekstowe
* Funkcje i procedury
* Funkcje i procedury
** Składnia i semantyka
** składnia i semantyka
** Sposoby przekazywania parametrów: przez wartość i przez zmienną
** sposoby przekazywania parametrów: przez wartość i przez zmienną
** Widoczność zmiennych w zagnieżdżonych procedurach
** widoczność zmiennych w zagnieżdżonych procedurach
* Miary złożoności algorytmów
* Miary złożoności algorytmów
** Koszty algorytmu czasowy i pamięciowy, pesymistyczny i średni
** koszty algorytmu czasowy i pamięciowy, pesymistyczny i średni
** Rozmiar danych
** rozmiar danych
** Przykłady wyznaczania kosztów.  
** przykłady wyznaczania kosztów.  
** Koszt zamortyzowany
** koszt zamortyzowany


=== Moduły ===
=== Moduły ===

Wersja z 07:18, 7 lip 2006

Forma zajęć

Wykład (30 godzin) + ćwiczenia (30 godzin)

Opis

Podstawowy przedmiot pierwszego semestru studiów, mający zapoznać studentów z pojęciami algorytmu i programu. Celem zajęć jest nauczenie projektowania, zapisywania, dowodzenia poprawności i uwzględniania złożoności algorytmów.

Sylabus

Autor

  • Piotr Chrząstowski-Wachtel

Wymagania wstępne

  • brak

Zawartość

  • Pojęcie algorytmu
    • historia powstania pojęcia algorytmu
    • algorytmy znane ze szkoły (Euklidesa, Hornera, rozwiązywanie równań liniowych i kwadratowych)
  • Języki formalne
    • alfabet, składnia i semantyka
    • gramatyki bezkontekstowe, jako narzędzie definiowania składni
    • definicja semantyki przez interpretację wyrażeń poprawnych składniowo
  • Reprezentacja liczb w komputerze
    • stałe całkowite i rzeczywiste
    • reprezentacje binarne stało- i zmiennopozycyjne
    • systemy znak-moduł i uzupełnieniowy
    • rachunek zmiennopozycyjny - pojęcie zakresu, błędu zaokrągleń
  • Zmienne i wyrażenia
    • typ zmiennej i wartościowanie zmiennych
    • wyrażenia arytmetyczne i logiczne: składnia i semantyka
  • Instrukcje while-programów
    • pusta, przypisania, warunkowa, iteracji, wyboru, czytania, pisania, wywołania procedury
    • składnia i semantyka powyższych instrukcji
    • obliczenia skończone i nieskończone
    • błędy obliczeń
    • przykłady algorytmów
  • Asercje w programach i niezmienniki pętli
    • formuły Hoare'a
    • uzasadnianie poprawności programów
    • własność stopu i metody jej dowodzenia
  • Typy danych
    • tablice
    • rekordy
    • zbiory
    • pliki
    • typy wyliczeniowe i okrojone
    • typy wskaźnikowe
  • Pliki
    • pliki o dostępie bezpośrednim
    • pliki tekstowe
  • Funkcje i procedury
    • składnia i semantyka
    • sposoby przekazywania parametrów: przez wartość i przez zmienną
    • widoczność zmiennych w zagnieżdżonych procedurach
  • Miary złożoności algorytmów
    • koszty algorytmu czasowy i pamięciowy, pesymistyczny i średni
    • rozmiar danych
    • przykłady wyznaczania kosztów.
    • koszt zamortyzowany

Moduły

  1. Moduł 1 Ćwiczenia do Modułu 1 (zadania na tablice)

Literatura

  1. Wstęp do programowania systematycznego, N.Wirth, Wydawnictwa Naukowo - Techniczne 1999.
  2. Elementy analizy algorytmów, L. Banachowski, A.Kreczmar, Wydawnictwa Naukowo - Techniczne 1987
  3. Projektowanie programów poprawnych i dobrze zbudowanych', S.Alagić, M.Arbib, Wydawnictwa Naukowo - Techniczne 1982