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
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