Nazwa przedmiotu: Wstęp do Informatyki

Wydział

Fizyki, Matematyki i Informatyki Stosowanej

Kierunek

Informatyka

Specjalność

Informatyka Stosowana

Semestr

1

Rodzaj zajęć

W

Ć

L

P

S

Liczba godzin / semestr

30

15

15

Punkty ECTS za moduł

6

Cel zajęć.

Zapoznanie z wybranymi, podstawowymi zagadnieniami informatyki.

Wykształcenie umiejętności rozwiązywania problemów algorytmicznych poprzez układanie i imple-mentację podstawowych algorytmów.

Zaznajomienie ze środowiskiem programistycznym w zakresie uruchamiania programów.

Program wykładów.

1. Podstawowe pojęcia informatyki. Algorytm, język programowania, program, proces. Maszyna wielopoziomowa, języki pośrednie, translatory, kompilatory, interpretery.

2. Algorytmiczne rozwiązywanie problemów. Podstawowe koncepcje algorytmiczne: wybór warunkowy, iteracja, rekurencja. Metodyka budowania algorytmów i ich specyfikacja.

3. Analiza algorytmów. Złożoność obliczeniowa, poprawność algorytmu. Testowanie i weryfikacja algorytmu.

4. Przegląd języków i paradygmatów programowania. Aspekty języków programowania: składnia semantyka i pragmatyka. Języki programowania ogólnego zastosowania, języki: imperatywne, funkcyjne, deklaratywne i obiektowe.

5. Modele definiowania i rozpoznawania wzorców znakowych. Wyrażenia regularne. Gramatyki bezkontekstowe, własności języków bezkontekstowych.

6. Kompilatory i kompilacja. Analiza leksykalna i składniowa, generacja i optymalizacja kodu.

Formuły metajęzykowe opisu składni: OP, BF, EBF, diagramy syntaktyczne.

7. System typów, kontrola typów, zmienne, dyrektywy, wyrażenia, instrukcje. Mechanizacja abstrakcji. Procedury, funkcje, moduły, przekazywanie argumentów.

8. Modele obliczeń. Maszyna Turinga, maszyna o dostępie swobodnym. Model komputera von Neumanna.

9. Reprezentacja danych w komputerze. Systemy kodowania liczb. Binarne reprezentacje liczb, zakresy, dokładność reprezentacji, standardy.

10. Działania arytmetyczne w systemach dwójkowych. Systemy stałobazowe, uzupełnieniowe i resztowe. Kumulacja błędów.

11. Informacja i kodowanie. Entropia źródła informacji. Kodowanie Shannona-Fano. Kompresja danych, metoda Huffmana. Detekcja i korekcja błędów, kod Hamminga.

12. Organizacja typowego systemu komputerowego. Elementy struktury funkcjonalnej komputera.

Procesor. Układ sterowania. Cykl pracy procesora, fazy realizacji rozkazu.

13. Organizacja pamięci komputera i technologie wykonywania. Czas dostępu, cykl pracy pamięci.

14. Historia rozwoju architektur komputerów i technologii komputerowej.

15. Współczesne problemy informatyki.

1

Program ćwiczeń.

Sformułowanie problemu obliczeniowego: wyodrębnienie danych wejściowych i wyników, warunki (asercje) początkowe i końcowe. Specyfikacja algorytmów, schematy blokowe i pseudokod.

Algorytmy iteracyjne. Implementacja podstawowych konstrukcji algorytmicznych. Poprawność i weryfikacja algorytmu. Ocena złożoności czasowej algorytmu. Przetwarzanie tablic jednowymiarowych i dwuwymiarowych.

Algorytmy rekurencyjne. Realizacja rekurencji w elementarnych algorytmach. Algorytmy kombinatoryczne.

Program laboratorium.

Środowisko sieciowe laboratorium. Konfiguracja własnych ustawień w środowiskach operacyjnych (logowanie, hasła, testy dostępu polecenie ping) dostęp do serwerów sieciowych poprzez serwer Samba.

Struktura plików w systemie Linux, składnia i zasady pisowni komend, podstawowe operacje plikowe, ograniczenia systemowe i ich kontrola, system pomocy, standardowe strumienie. Organizacja systemu plikowego.

Platforma X-Windows: oprogramowanie wspomagające operacje plikowe, powłoki konfigurowanie pulpitu.

Edytor gvim – podstawowe polecenia plikowe i edycyjne, zasady pracy w układzie wielo-okienkowym.

Kompilacja i uruchamianie programów na przykładzie programu w języku C. Wykorzystanie zintegrowanego środowisko programistycznego wspomagającego edycję, kompilację i śledzenie w procesie tworzenia oprogramowania.

Narzędzia wspomagające zarządzanie wersją programów źródłowych - systemy kontroli wersji svn (subversion).

Automatyzacja procesu kompilacji programów – program make i plik Makefile.

Literatura.

1. Brookshear J.: Informatyka w ogólnym zarysie. WNT, 2003.

2. Chudy M.: Elementy teoretycznych podstaw informatyki. Exit, 2006.

3. Tanenbaum A.: Strukturalna organizacja systemów komputerowych. Helion, 2006.

4. Wirth N.: Klasyka informatyki. Algorytmy + struktury danych = programy. WNT, 2002.

Warunki zaliczenia.

Obecność na ćwiczeniach i laboratoriach. Zaliczenie przewidzianych programem projektów i kolokwiów. Umiejętność rozwiązywania zadań z podanych zestawów. Zdanie egzaminu końcowego.

2