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