Wstęp do informatyki

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Tomasz Jurdziński
Liczba godzin 30 (wyk.) 30 (ćw.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku Tak
Egzamin Tak
Grupy efektów kształcenia Podstawy informatyki i programowania

Opis przedmiotu:

Celem przedmiotu jest przedstawienie struktury logicznej i zasad działania komputera, cyfrowej reprezentacji informacji oraz sposobu wykonywania programów przez komputer. Istotnym celem jest też umożliwienie studentom nabycia podstawowych umiejętności z zakresu konstruowania i analizy algorytmów, w tym weryfikacji poprawności i szacowania złożoności obliczeniowej. W ramach przedmiotu umożliwia się poznanie podstawowych struktur danych i ich implementacji, a także nabycie umiejętności stosowania takich struktur danych do rozwiązywanych problemów. ##### Program: * Pojęcia: problem, specyfikacja, algorytm, program komputerowy. Budowa komputera – schemat logiczny. * Elementy programowania w języku niskopoziomowym na przykładzie maszyny RAM * Reprezentacja danych w pamięci komputera: binarna stałopozycyjna i zmiennopozycyjna reprezentacja liczb, arytmetyka binarna; reprezentacja tekstu, obrazu, dźwięku. * Programowanie w wysokopoziomowym języku strukturalnym, zstępująca metoda programowania. * Kompilacja, translacja, interpretacja programów. Zarządzanie pamięcią podczas uruchamiania programu. * Podstawowe konstrukcje programistyczne: iteracja, zagnieżdżanie, licznik, sumator, rekurencja. * Elementy analizy algorytmów: poprawność, własność stopu, złożoność czasowa i pamięciowa, miary złożoności; notacja asymptotyczna. * Podstawowe struktury danych i ich zastosowania: tablica, lista wiązana, stos, kolejka; drzewo przeszukiwań binarnych. Abstrakcyjne typy danych. * Sortowanie przy pomocy porównań. * Podstawowe techniki algorytmiczne: metoda nawrotów, metoda dziel i zwyciężaj, programowanie dynamiczne, algorytmy zachłanne. * Komputerowa reprezentacja grafów. * Algorytmy grafowe: przeszukiwanie w głąb, wszerz; składowe spójności. * Gramatyki bezkontekstowe jako narzędzie do opisu składni języków programowania. Notacja BNF i EBNF. * Pojęcie rozstrzygalności problemów, przykłady problemów nierozstrzygalnych. ###### Wymagania wstępne: elementarna znajomość języka C lub Python (począwszy od wykładu 5) ###### Przewidywana formie zajęć w przypadku konieczności prowadzenia zajęć zdalnie: Wykłady będą prowadzone w formie wideokonferencji Ćwiczenia: - zajęcia w formie wideokonferencji, - utrzymany zostanie system deklaracji zadań, - wskazane jest rekomendowanie studentom zakupu prostych tabletów graficznych w celu wygodnego dostępu do wirtualnej tablicy (np. MS Whiteboard) w trakcie cwiczen, - wskazane jest przydzielenie nauczycielom prowadzącym ćwiczenia 3h zajęć: 2h na standardowe ćwiczenia, 1h na dedykowane konsultacje, w trakcie których prowadzący sprawdzają i omawiają indywidualnie ze studentami ich rozwiązania wybranych zadań.