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)