W tej części pojawią się instrukcje laboratoryjne i różne dodatki (na przykład programy w Blockly realizujące omawiane funkcje).
Zasady zaliczania zajęć W10RAP-SI0074P (Informatyka I) i W10MTR-SI0035L (Wprowadzenie do informatyki)
Zajęcia są obowiązkowe.
Tematyka1 poszczególnych zajęć znajduje się na mojej stronie: myszka.kmim.wm.pwr.edu.pl/dydaktyka/c/lab/.
Nie wykluczam pojawienia się krótkich „sprawdzianów” na początku zajęć.
Dopuszczalne maksimum dwie nieobecności (ale będzie miało to wpływ na ocenę końcową).
Studenci, którzy uważają, że znają język C wystarczająco — mogą poprosić o sprawdzenie ich kompetencji i zaliczenie zajęć.
Możliwości odrobienia zajęć są bardzo ograniczone!
Prace przesyłane są za pośrednictwem e-portalu w trakcie trwania zajęć.
Prace przechodzą kontrolę antyplagiatową2 (narzędzia dostępne w e-portalu); zbytnie podobieństwo dyskwalifikuje wszystkie podobne prace.
Prace z błędami kompilacji są odrzucane.
Osobiście odradzam korzystanie z usług Sztucznej Inteligencji do pisania programów, ale jeżeli już to zdarzy się, to zamiast liczyć na to, że prowadzący nie będzie w stanie tego zauważyć i udowodnić sugeruję następującą procedurę:
- Należy poinformować o użyciu SI do stworzenia kodu programu.
- Trzeba podać „prompt” użyty do wygenerowania rozwiązania.
- Opisać algorytm użyty do rozwiązania zadania (to trochę teoretyczne, bo poszczególne kroki kodu dostarczanego przez AI są nieźle skomentowane), ale chodzi o opis istoty algorytmu
- Przedstawić protokół testowania programu.
Ocena zapewne będzie niższa…
Jako prowadzący będę starał się sprawdzić, czy program realizuje algorytm dla wszystkich dopuszczalnych danych. Zadania które nie są algorytmem (w tym rozumieniu) będą oceniane niżej.
Przedstawione zadania są oceniane, ocena końcowa wynika z ocen wszystkich zadań.
W przypadku pojawienia się wątpliwości uniemożliwiających ocenę zaliczenie odbędzie się na podstawie oceny kolokwium (ostatnie zajęcia).
Minimalne wymagania na ocenę dostateczną
- Zna podstawowe typy danych i rozumie ich ograniczenia.
- Rozumie ideę zmiennej (prostej) i potrafi ją zadeklarować.
- Wie co to instrukcja prosta i złożona.
- Zna podstawowe operacje arytmetyczne i rozumie różnice w ich implementacji.
- Rozumie instrukcje warunkowe (
if
–elseif
–else
orazswitch
) i potrafi praktycznie je zastosować. - Zna podstawowe instrukcje konstruowania pętli (
while
,do
–while
,for
) i potrafi ich użyć; rozumie cel i działanie poleceńbreak
icontinue
.. - Potrafi zadeklarować tablicę wybranego typu i ją obsłużyć (na przykład wyzerować albo wyliczyć sumę elementów).
- Rozumie ideę funkcji i potrafi napisać prostą funkcję, której argumentami są zmienne i/lub tablice jednowymiarowe.
Regulamin porządkowy pracowni komputerowej na Wydziale Mechanicznym
Do bezwzględnego przestrzegania
604
Tam gdzie odbywają się zajęcia
C w Windows
Instrukcje laboratoryjne i komentarze
Laboratorium 1: Ala ma kota
Dosyć szybki i nie tak łatwy wstęp
Ala ma kota w Blockly
Wydaje się, że czasami Blockly potrafi coś rozjaśnić…
Laboratorium 2: Algorytm Euklidesa
Pętle nie są takie proste, ale też nie jakoś strasznie trudne
Laboratorium 3: Algorytm B
Nawet w przypadku tak prostego algorytmu jak Algorytm Euklidesa można myśleć o efektywności obliczeń. Ale kod jest nieco bardziej zagmatwany.
Algorytm B dla bystrzaków
Trochę wyjaśnień…
Laboratorium 4: Funkcje. Metoda połowienia
Zaczynamy liczby zmiennoprzecinkowe i funkcje; szukamy zera.
Metoda połowienia dla bystrzaków
Gdyby ciągle były jakieś problemy
Rekurencyjna metoda połowienia
Nieco bardziej zaawansowane, ale za to w Blockly
Laboratorium 5: Tablice. Wyszukiwanie binarne
Jak szybko znalęźć to, czego nie zgubiliśmy…
Tablice w czasach zarazy
Już prościej nie potrafię
Wyszukiwanie binarne dla bystrzaków
Kolejna próba rozjaśnienia problemu…
Laboratorium 5a: Wyszukiwanie binarne — doskonalenie aplikacji
Jak dopisać do tablicy to, co znaleźliśmy…
Laboratorium 6: Funkcje. Metoda Newtona-Raphsona
Rozwiązywanie równań, albo szukanie zera
Laboratorium 7: Funkcje — rekurencja
Przyspieszamy Armageddon
Laboratorium 8: Tablice (i funkcje)
Właściwie proste…
Stos i sterta
Kupując komputer zawsze myślimy o pamięci: im więcej tym lepiej. Nie zastanawiamy się jak jest zorganizowana. Stos (ang: stack) to liniowa struktura pamięci, w której dane dodawane są na wierzch stosu i są z niego pobierane.
Język C: dynamiczne tablice dwuwymiarowe i funkcje
…ale nie tak do końca
Laboratorium 9: Ruchoma średnia
Wygładzamy dane
Laboratorium 10: „Maszyna stanów”
Do czego nada się maszyna Turinga?
Laboratorium 10a: Liczby autobusowe kwadratowe
Kolejne zadanie operujące na pojedynczych znakach liczby
Suma cyfr liczby w Blockly
Wydaje się, że czasami Blockly potrafi coś rozjaśnić…
Laboratorium 11: Struktury danych: Operacje z uwzględnieniem błędów
Liczymy trochę mniej dokładnie
Laboratorium 11a: Struktury danych: Operacje na ułamkach
Wracamy do szkoły podstawowej
Działania na ułamkach
Kolejna próba wyjaśnień problemu działań na ułamkach.
Laboratorium 12: Anagramy
arbuz? burza?
Laboratorium 13: Statystyka znaków
Policzmy literki
Laboratorium 14: Zaawansowane wejście/wyjście...
Gdy się chce zajrzeć do pliku
Wejście i wyjście
Jeszcze trochę o wejściu-wyjściu