PRM, semestr zimowy 2009/2010


Harmonogram przedmiotu

Lp.

tematyka wykładu

punktacja

tematyka laboratorium i ćwiczeń

typ zaj.

punktacja

1

Podstawowe pojęcia: algorytm, program, informatyka, programowanie. Narzędzia wspomagające programowanie. Pojęcie typu i wartości. Pierwszy program w języku C: przykład

2

Stałe: typ i wartość. Zmienne: typ, wartość, nazwa. Nazwa i referencja - wprowadzenie. Typy podstawowe języka C.

Konta, system plików, komunikacja ze światem. zadania

l

3

Pojecie definicji zmiennej. Operatory arytmetyczne i przyrównania. Operator podstawienia. Priorytety i łączność operatorów . Informacja o instrukcji if. Informacja o pętli for. przykład 1 przykład 2 Tablica i wskaźnik. Instrukcja switch - wielowejściowy blok kodu łamigłówka 1. Pojęcie iteracji. Parametry formalne i aktualne.

System plików, procesy, edytor, jak uruchomić program. zadania

l

0-5

4

Sortowanie tablicy - przez wstawianie i bąbelkowo - por. przykład i drugi przykład Przykłady użycia pętli i podziału kodu na funkcje.

pierwszy program zadania

l

0-5

5

Funkcja jako nazwany blok kodu. Pojęcie zmiennej lokalnej i globalnej. Przysłanianie zmiennych. Parametry formalne i aktualne: łamigłówka 1, łamigłówka 2, łamigłówka 3. Przykład z wykladu ilustrujacy przekazywanie parametrów przez wartość, referencję i wskaźnik (Uwaga: przekazywanie przez referencje działa w języku C++, wymagany kompilator tego języka). Instrukcja return. Niejawne rzutowania podczas uzgadniania parametrów formalnych i aktualnych oraz przy ustalaniu wartości zwracanej. Jeszcze jeden przykład.

środowisko uruchomieniowe zadania

l

0-5

6

Wskaźniki – idea i zasada analizy. Arytmetyka wskaźników. Relacje między tablicami i wskaźnikami. Argumenty funkcji main: argc i argv. Przykład – funkcja wypisująca na standardowym wyjściu posortowane słownikowo argumenty wywołania.

proste funkcje opis laboratorium

l

7

Dynamiczna alokacja i dealokacja pamięci. Operator sizeof. Stos i sterta. Przykład z wczytywaniem tablicy dynamicznie alokowanej.

jw. , rozdanie zadań projektowych opis laboratorium

l

8

jw. opis laboratorium

l

0-10

9

Powtórka dotychczasowego materiału.przyklad z wykladu

zasięg zmiennych opis ćwiczenia

c

10

kolokwium kolokwium z poprzedniej edycji przedmiotu kolokwium z obecnej edycji przedmiotu

0-25

struktury, klasy pamięci opis ćwiczenia

c

11

Struktura (struct) jako typ zagregowany z dostępem do składowych przez nazwę. Strumienie: stdin, stdout, stderr, strumienie plikowe. Typ FILE*. Kolejki LIFO, FIFO i priorytetowa: zasada działania.

mechanizmy wywołań funkcji

c

12

Realizacja kolejek za pomocą tablic jest tutaj, natomiast realizacja za pomocą listy liniowej jednokierunkowej (LIFO) i dwukierunkowej (FIFO) jest tutaj. Uwaga: proszę zastanowić się nad listową reprezentacją kolejki priorytetowej.

c

13

Rekurencja - analogia do zasdy indukcji matematycznej, przyklad obliczania wartosci funkcji silnia. Rozwiązywanie problemów przez ich rekurencyjną dekompozycję. Rekurencja z odrywaniem i przez podział. Przykład na problemie wież Hanoi. Tu mozna znaleźć jeszcze jedno i drugie rozwiazanie tego samego problemu, nie rozniace sie algorytmem lecz sposobem zapisu i towarzyszacymi mu komentarzami.

rekurencja opis ćwiczenia

c

14

Rekurencji ciag dalszy. Realizacja zadania konika szachowego, rozbita na 3 pliki: solwer, interfejs uzytkownika, plik naglowkowy. Prosze zwrocic uwage na deklaracje zmiennych globalnych poprzez extern. Pojecie wskaznika do funkcji, przyklad sortowania babelkowego tablicy czegokolwiek.

Przeszukiwanie z nawrotami opis ćwiczenia

c

15

kolokwium kolokwium z poprzedniej edycji przedmiotu kolokwium z aktualnej edycji przedmiotu

0-25

odbiór zadań projektowych

l

0-25


Zasady zaliczania

Do zdobycia jest w sumie 100 punktów. Warunkiem koniecznym zaliczenia jest zdobycie w sumie co najmniej 13 punktów (na 50) z kolokwiów wykładowych i co najmniej 13 punktów (na 50) z laboratoriów i ćwiczeń.

Ocena z przedmiotu będzie wystawiana na podstawie zdobytej liczby punktów wg schematu:

liczba punktów

ocena

0-50

2

51-60

3

61-70

3.5

71-80

4

81-90

4.5

91-100

5

Trzy ćwiczenia laboratoryjne są punktowane w skali 0-5 i trwają 2 godziny. Ćwiczenie 10-punktowe (miniprojekt) jest wykonywane w czasie dwóch kolejnych tygodni zajęć. Projekt jest oceniany w skali 0-25 i terminem jego oddania jest ostatni termin laboratorium w semestrze.

Prowadzący ćwiczenia mogą przyznać za aktywność do 5 dodatkowych punktów, jednak łączna ocena z części ćwiczeniowej nie może przekroczyć 50 punktów, a dodatkowe punkty można przyznać jeśli ocena z części ćwiczeniowej przekracza 15 punktów. Podobne zasady obowiązują na wykładzie.

Kolokwia wykładowe polegają na samodzielnym rozwiązaniu zadań; można na nich korzystać z własnych notatek i książek, natomiast nie wolno korzystać z urządzeń elektronicznych.


Zalecana literatura

N. Wirth: Algorytmy + struktury danych = programy
B. Kernighan, D. Ritchie: Język C
P. Silvester: System operacyjny unix


Użyteczne oprogramowanie narzędziowe

Na wykładach używam kompilatora gcc i debuggera ddd.