Programowanie Obliczeń Komputerowych Plik
Transkrypt
Programowanie Obliczeń Komputerowych Plik
(pieczęć wydziału) KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PROGRAMOWANIE OBLICZEŃ 2. Kod przedmiotu: KOMPUTEROWYCH 3. Karta przedmiotu ważna od roku akademickiego: 2012/2013 4. Forma kształcenia: studia pierwszego stopnia 5. Forma studiów: studia stacjonarne 6. Kierunek studiów: AUTOMATYKA I ROBOTYKA; WYDZIAŁ AEiI 7. Profil studiów: ogólnoakademicki 8. Specjalność: 9. Semestr: 1 10. Jednostka prowadząca przedmiot: Instytut Automatyki, RAu1 11. Prowadzący przedmiot: prof. dr hab. inż. Mieczysław Metzger 12. Przynależność do grupy przedmiotów: przedmioty wspólne 13. Status przedmiotu: obowiązkowy 14. Język prowadzenia zajęć: polski 15. Przedmioty wprowadzające oraz wymagania wstępne: matematyka maturalna o zakresie rozszerzonym; obsługa komputera, umiejętność korzystania z internetu, w połowie semestru potrzebne podstawy algebry macierzy. 16. Cel przedmiotu: Celem przedmiotu jest praktyczne nauczenie studentów programowania strukturalnego obliczeń inżynierskich na komputerach standardu PC, przy wykorzystaniu języków C/C++ oraz m w środowisku Matlab. 17. Efekty kształcenia: Opis efektu kształcenia Nr W1 W2 W3 Metoda sprawdzenia efektu kształcenia Zna metodykę programowania strukturalnego na CL, PS, OS przykładzie języków C oraz m w środowisku Matlab. Zna też ogólne mechanizmy programowania charakterystyczne dla wszystkich języków programowania strukturalnego. Zna podstawowe metody programowania obliczeń CL, PS, OS komputerowych dla odpowiedniego w 1 semestrze studiów poziomu matematyki i fizyki. Ma wiedzę o podstawowych sposobach programowania CL, PS, OS strukturalnego w językach C i m. Potrafi programować podstawowe obliczenia inżynierskie w językach C i m. U2 Potrafi wykorzystać znajomość podstawowych mechanizmów programowania strukturalnego do szybkiego opanowania dalszych języków programowania. K1 Potrafi samodzielnie podejmować decyzje dotyczące wyboru mechanizmów i algorytmów programowania K2 Potrafi zaprezentować i obronić wykonany samodzielnie program. 18. Formy zajęć dydaktycznych i ich wymiar (liczba godzin) U1 W. : 30 L.: 30 Forma Odniesienie prowadzenia do efektów zajęć dla kierunku studiów WM, L K_W5/3; W13/1; W17/1 WM, L CL, PS, OS L K_W5/3; W13/1; W17/1 K_W5/3; W13/1; W17/1 K_U11/3 SP, CL L K_U11/3 CL, PS L K_K4/2; OS L K_K7/2 WM, L 19. Treści kształcenia: Wykład Idea programowania strukturalnego (struktura programu – schematy blokowe). Deklaracje globalne i lokalnie; Standardowe typy zmiennych; Wyrażenia; Wymuszenie typu wyrażenia; Instrukcje proste: instrukcje podstawienia; Komentarze; Instrukcje strukturalne: warunkowe; Instrukcje iteracyjne – pętle (for; while; do...while); Instrukcja switch; Omówienie wprowadzania i wyprowadzania danych; Biblioteki <stdio.h>, <iostream.h.>; Omówienie standardu dla we/wy domyślnych: printf; scanf; formatowanie. Omówienie idei strumieni dla C++ Borlanda oraz DevC++; Łatwiejsza obsługa i lepsza kontrola we/wy; Strumienie cout, cin, cerr; Operatory << oraz >>; Wstawianie i wyjmowanie elementów ze strumienia; Elementy: ”łańcuch”, wyrażenie, ”\n”, endl. Funkcja width i jej użycie do formatowania; Funkcja precision. Więcej o operatorach i ich hierarchii; Zmiana typu wyrażenia; Uwaga na typ wyniku przy dzieleniu. Wprowadzenie do wskaźników i referencji. Wprowadzenie do funkcji; Ogólna postać programu z funkcjami; Cechy języka; Wykorzystanie funkcji w wyrażeniach; Wprowadzanie danych do funkcji (przez wartość); Wyprowadzanie wyniku – return; Parametry formalne i aktualne; Zakres działania; Deklaracja prototypów funkcji; Omówienie deklaracji static double; Zasłanianie; Przekazywanie danych przez globalność; Przekazywanie przez parametry aktualne; Program ilustrujący globalność i lokalność. Więcej o wykorzystaniu wskaźników; Komunikacja z funkcją przy użyciu wskaźników; wskaźniki i referencje; Programy przykładowe. Złożone struktury danych; tablice jedno i wielowymiarowe; Deklaracja typu tablicowego; Nazwa tablicy jako wskaźnik; Gromadzenie danych w tablicy; Wyciąganie danych z tablicy; Elementy tablic w wyrażeniach i funkcjach; Obsługa plików dyskowych; Deklaracja pliku FILE *we; Funkcje fopen, fprintf, fscanf. Otwieranie plików; Zapis do pliku; Odczyt z pliku; Plik tekstowy jako pośrednictwo z innymi programami; otwarcie pliku ze sprawdzeniem obecności; Operacje na plikach w c++ ; Kreacja i otwarcie pliku; sterowanie strumieniami; Zamykanie pliku. Zmienne dynamiczne, dynamiczne struktury danych. Ogólna ideologia oprogramowania Matlab. Pokaz inicjacji tablic i najprostszych obliczeń. Powiększanie macierzy; Wycinanie kawałków; Operacje macierzowe i tablicowe; Funkcje i ich wykorzystanie; Globalność w środowisku Matlaba; Wprowadzanie danych do funkcji; Zwracanie wyników; Grafika w Matlabie; Pokaz bardziej skomplikowanych programów: iteracyjne rozwiązanie nieliniowego równania algebraicznego. Wykorzystanie Matlaba do wykresów z programu obliczającego przebieg X(t) w C (zamiast przebiegu z doświadczenia) – pośrednictwo jawnych plików tekstowych (można łatwo coś zmienić). Wklejenie wykresów do Worda. Atrybuty obiektów graficznych; Demo zaawansowanych programów (mini-środowisk windowsowych). Prezentacja wybranych toolboxów. Uwagi ogólne o programowaniu, własnych aplikacjach i programach użytkowych. Języki programowania mogące zagnieżdżać procedury napisane w C/C++ lub Matlabie. Języki programowania. Programowanie według innych paradygmatów programowania – programowanie obiektowe, programowanie graficzne, programowanie agentowe. Zajęcia laboratoryjne 1. Podstawy języka C: Struktura programu w języku C; Pojęcie stałej i zmiennej; Podstawowe procedury wejścia i wyjścia; Praca z kompilatorem i debuggerem; Obliczanie wartości wyrażeń matematycznych; Operatory logiczne i ich zastosowanie; Wykorzystanie prostej instrukcji warunkowej if; 2. Wykorzystanie instrukcji warunkowych if oraz switch 3. Instrukcje iteracyjne: wykorzystanie instrukcji iteracyjnych while, for, do..while; instrukcje sterujące break oraz continue 4. Złożone struktury danych cz. 1; tablice 5. Złożone struktury danych cz. 2: tablice cd.; pliki (podejście proceduralne); wskaźniki, zmienne dynamiczne 6. Złożone struktury danych cz. 3: operacje na łańcuchach; typy złożone 7. Dynamiczne struktury danych. Zmienne dynamiczne (wykorzystanie funkcji malloc(), realloc(), free() ; operatora sizeof() ) 8. Funkcje cz. 1: podstawy programowania; przekazywanie danych 9. Funkcje cz. 2: przekazywanie tablic do funkcji 10. Matlab 1 11. Matlab 2 20. Egzamin: nie 21. Literatura podstawowa: 1. B.Kernigham, D.Ritchie: Język C (7 wydań) 2. B. Eckel: Thinking in C++(w języku polskim), Helion, 2000. 3. J. Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo. Oficyna Kallimach, Kraków1999 4. Matlab user-manual 22. Literatura uzupełniająca: 1. B. Stroustrup: Język C++. WNT Warszawa 1994 2. B. Stroustrup: Projektowanie i rozwój języka C++. WNT Warszawa,1994 23. Nakład pracy studenta potrzebny do osiągnięcia efektów kształcenia Lp. Forma zajęć 1 Wykład 2 Ćwiczenia 3 Laboratorium 4 Projekt / 5 Seminarium / 6 Inne 10/10 Suma godzin 70/110 Liczba godzin kontaktowych / pracy studenta 30/10 / 30/90 24. Suma wszystkich godzin: 180 25. Liczba punktów ECTS: 6 26. Liczba punktów ECTS uzyskanych na zajęciach z bezpośrednim udziałem nauczyciela akademickiego: 3 27. Liczba punktów ECTS uzyskanych na zajęciach o charakterze praktycznym (laboratoria, projekty): 4 26. Uwagi: Zatwierdzono: ……………………………. ………………………………………………… (data i podpis prowadzącego) (data i podpis dyrektora instytutu/kierownika katedry/ Dyrektora Kolegium Języków Obcych/kierownika lub dyrektora jednostki międzywydziałowej)