Konspekt - Marek Gągolewski

Transkrypt

Konspekt - Marek Gągolewski
Wydział Matematyki i Nauk Informacyjnych PW
r. ak. 2015/2016
Konspekt
Nazwa przedmiotu:
Algorytmy i podstawy programowania
Kierunek:
Matematyka – studia stacjonarne licencjackie
Semestr:
1
Prowadzący:
dr Marek Gągolewski
[email protected]
Tygodniowy wymiar godzin
i sposób zaliczenia:
1W/1Ć/2L/0P, ZAL.
ECTS:
4
Podstawowe cele kształcenia
W trakcie kursu student poznaje podstawowe zagadnienia informatyczne, tj.: pojęcie algorytmu,
elementy organizacji i działania komputera, arytmetyki całkowitoliczbowej i zmiennopozycyjnej,
funkcje, ideę rekurencji, tablice, algorytmy sortowania i działania na macierzach, elementarne
abstrakcyjne struktury danych (listy, kolejki, stosy, drzewa binarne). Do implementacji
przedmiotowych algorytmów i struktur danych wykorzystywany jest język C++, z którego
podstawami student zapoznaje się w trakcie wykładu.
Na zajęciach ćwiczeniowych student rozwija umiejętności analizy zagadnień problemowych
i tworzenia algorytmów służących do ich rozwiązania z wykorzystaniem poznanych na wykładzie
wiadomości teoretycznych na temat języka C++.
Na zajęciach laboratoryjnych student uczy się praktycznych umiejętności tworzenia pełnych, acz
prostych programów, które wykorzystują poznane algorytmy. Szczególną uwaga zwraca się więc
na: implementację programu z użyciem gotowych, udokumentowanych bibliotek, umiejętność
przetestowania programu, jego użycia na konkretnych danych wejściowych, interpretację
otrzymanego wyniku. Ponadto student poznaje także szczegóły techniczne programowania
w języku C++ (środowisko programistyczne, biblioteki). Na siedmiu zajęciach laboratoryjnych
rozwiązuje samodzielnie zadania sprawdzające.
Dodatkowym celem kształcenia jest przygotowanie studenta do podjęcia nauki kolejnych
przedmiotów informatycznych na kierunku Matematyka oraz przedmiotów, w których używane są
podczas ćwiczeń pakiety obliczeniowe (np. R, Matlab, SAS). Szczególny nacisk jest więc położony
na wykład i ćwiczenie tych aspektów programowania w języku C++, które są wspólne innym
językom.
Założone efekty kształcenia
Student powinien umieć:
 dokonać analizy prostego problemu obliczeniowego danego w formie opisowej bądź za
pomocą notacji matematycznej,
 zaproponować algorytm rozwiązujący przedmiotowe zagadnienie i wyrazić go w języku
C++,
 utworzyć program komputerowy zawierający implementację algorytmu,
 przetestować wykonany program.
Program przedmiotu
1. Etapy tworzenia oprogramowania. Algorytm.
2. Podstawy organizacji i działania komputerów. Reprezentacja liczb całkowitych
i zmiennopozycyjnych.
3. Deklaracja zmiennych w języku C++. Operatory arytmetyczne, logiczne i relacyjne.
4. Instrukcja warunkowa i pętle.
5. Funkcje. Przekazywanie parametrów przez wartość i przez referencję.
6. Rekurencja.
7. Wskaźniki. Dynamiczna alokacja pamięci. Tablice jednowymiarowe i operacje na nich.
Proste algorytmy sortowania.
8. Kod ASCII. Łańcuchy znaków.
9. Macierze.
10.
Struktury w języku C++. Podstawowe dynamiczne abstrakcyjne struktury danych:
Listy jedno- i dwukierunkowe, kolejki, stosy, drzewa binarne.
Sposób zaliczenia przedmiotu
Z ćwiczeń można otrzymać 50 punktów (2 kolokwia – pierwsze za 20, drugie za 30 p.), a z zajęć
laboratoryjnych 50 punktów (7 zadań praktycznych – 40 p. oraz 5 tzw. wejściówek – 10 p.), czyli
łącznie 100 punktów.
Warunkiem koniecznym uzyskania zaliczenia jest uzyskanie ponad 25 p. z kolokwiów, ponad 20 p.
z punktowanych zadań laboratoryjnych oraz ponad 5 p. z wejściówek. Wówczas ostateczna ocena
z przedmiotu wynika z sumy punktów uzyskanych z ćwiczeń i zajęć laboratoryjnych:
(50; 60] – trzy,
(60-70] – trzy i pół,
(70-80] – cztery,
(80-90] – cztery i pół,
>90 – pięć.
Literatura podstawowa
1.
2.
3.
4.
5.
6.
7.
Harel. D (2008). Rzecz o istocie informatyki. Algorytmika, WNT, Warszawa.
Wirth N. (2004). Algorytmy + struktury danych = programy, WNT, Warszawa.
Deitel H. M., Deitel P. J. (1998). ARKANA. C++ programowanie, RM, Warszawa.
Prata S. (2006). Język C++. Szkoła programowania, Helion, Gliwice.
Snaith P. (2000). C++ nie tylko dla orłów, Intersoftland, Warszawa.
Schildt H. (2002). Programowanie: C++, RM, Warszawa.
Liberty J. (2002). C++ dla każdego, Helion, Warszawa.
Literatura uzupełniająca
1. Knuth D. E. (2002). Sztuka programowania. Tom I. Algorytmy podstawowe, WNT,
Warszawa.
2. Graham R. L., Knuth D. E., Patashnik O. (2006). Matematyka konkretna, WN PWN,
Warszawa.
3. Bronson G. J. (2010). C++ for Engineers and Scientists. Course Tech., Boston.
Marek Gągolewski

Podobne dokumenty