02.02.2015 Views

Konspekt

Konspekt

Konspekt

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!