Wstęp do programowania


Informacje ogólne

Typ:obowiazkowy
Kierunek:Informatyka studia licencjackie
Semestr:1
Wymiar zajęć:30 godzin wykładu, 15 godzin ćwiczeń, 30 godz. lab.
Punkty ECTS:6

Program

  • Algorytm a program. Proste programy w różnych sposobach zapisu (opis słowny, sieć działań, schemat blokowy, Pascal, C). Badanie własności programu za pomocą przekształcania asercji. Ręczna symulacja działania algorytmu. Imperatywny charakter algorytmów. Konstrukcja pętli while. Budowa komputera i schemat przetwarzania programu w języku wysokiego poziomu -- etapy kompilacji i wykonania.
  • Wyrażenia i instrukcje występujące we wszystkich językach imperatywnych ogólnego zastosowania. Pojęcie poprawności częściowej programu. Dowodzenie poprawności metodą niezmienników. Zagnieżdżone pętle. Przykłady programów z dowodami poprawności częściowej.
  • Przekształcanie programów pod kontrolą niezmienników. Pojęcie poprawności całkowitej programu. Dowodzenie poprawności całkowitej metodą liczników pętli. Przykłady programów z dowodami poprawności całkowitej.
  • Deklaracje zmiennych i powody wprowadzania obowiązkowości deklarowania. Proste typy danych występujące we wszystkich językach imperatywnych ogólnego zastosowania. Typy strukturalne: tablica, rekord (struktura). Iteracja for jako sposób działania na tablicach.
  • Procedury i funkcje. Sposoby wołania parametrów procedur. Zmienne lokalne dla ciała procedury (funkcji) i zmienne globalne. Rekursja. Wyrażanie pętli przez rekursję i informacja o niemożności prostego wyrażenia rekursji przez pętle (bez użycia nieograniczonej pamięci).
  • Działania na plikach zewnętrznych.
  • Reprezentacja liczb całkowitych w komputerze. Pozycyjne układy liczenia o różnych podstawach. Reprezentacja liczb rzeczywistych w komputerze. Odstępstwa arytmetyki komputerowej od ,,prawdziwej'' i błędy nimi spowodowane. Przekroczenie zakresu i błędy zaokrągleń. Sposoby wyszukiwania błędów w programach: ,,osaczanie'' błędu, działanie odpluskwiacza (debugger).

Sposób zaliczenia

Laboratorium: studenci zbierają punkty za "zadania domowe", oraz aktywność nazajęciach. Oprócz tego, do oceny końcowej wlicza się wynik "kolokwiumprogramistycznego", które odbywa się pod koniec semestru.
Egzamin: brak.

Literatura

  • Wirth N. Wstęp do programowania systematycznego. Wydawnictwa Naukowo-Techniczne, Warszawa 1978.
  • Szepietowski A. Podstawy informatyki. Wydawnictwo Uniwersytetu Gdańskiego, Gdańsk 2000.
  • Kernighan B.W., Ritchie D.M. Język ANSI C. Wydawnictwa Naukowo-Techniczne, Warszawa 2003.