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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Pch (dyskusja | edycje)
Nie podano opisu zmian
 
Pch (dyskusja | edycje)
Linia 13: Linia 13:
=== 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
Linia 38: Linia 38:
** Własność stopu i metody jej dowodzenia
** Własność stopu i metody jej dowodzenia
* Typy danych
* Typy danych
** tablice,
** tablice
** rekordy,
** rekordy  
** zbiory,
** zbiory  
** pliki,
** pliki  
** typy wyliczeniowe i okrojone.
** typy wyliczeniowe i okrojone
** typy wskaźnikowe
** typy wskaźnikowe
* Pliki  
* Pliki  
Linia 53: Linia 53:
* 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
 
 


=== Literatura ===
=== Literatura ===

Wersja z 07:55, 15 cze 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Projektowanie i analiza algorytmów. Przegląd podstawowych algorytmów i struktur danych.

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

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