Wykładowca | Wykłady | Literatura | Zaliczenie | Kolokwium | Haszówki | Wyniki | Laboratorium | Moodle | Zadania
logo

Programowanie w systemie Unix - 2022/2023


UWAGA KOLOKWIUM:
2022-12-12 --- Kolokwium zaliczeniowe odbędzie się 2 lutego w godz.11-13.
Dodatkowe informacje w sekcji Kolokwium.


Tematy i materiały do wykładów

W tym miejscu dla ułatwienia pracy i wygody studentów wykładowca udostępni przygotowane przez siebie materiały wykorzystywane na wykładzie. Celem ich udostępnienia jest wyłącznie uniknięcie konieczności robienie odręcznych notatek na wykładach. To nie jest internetowy podręcznik do samodzielnego studiowania!! Dodatkowe odnośniki do materiałów źródłowych znajdują się w sekcji Literatura.

Materiały udostępnione za pomocą poniższej tabelki objęte są prawami autorskimi. Można je wykorzystywać wyłącznie do własnych prywatnych celów, i nie wolno ich w żaden sposób rozpowszechniać, na przykład przez umieszczenie na ogólnie dostępnych stronach internetowych, ani w żaden inny sposób.

nr temat wykładu slajdy
1 Uniksowy interpreter komend, skrypty PDF
2 Uniksowe filtry tekstowe. Wyrażenia regularne PDF
3 Programowanie procesów PDF
4 Operacje wejścia/wyjścia niskiego poziomu PDF
Komunikacja międzyprocesowa 1 (potoki)
Komunikacja międzyprocesowa 2 (pamięć współdzielona i semafory)
Komunikacja międzyprocesowa 3 (gniazdka)
PDF
5
6
Zaawansowane mechanizmy wejścia/wyjścia PDF
7 Wybrane funkcje systemowe Unixa PDF


Literatura

Podręcznik:

Literatura uzupełniająca:

Materiały internetowe:


Zaliczenie wykładu

Warunkiem zaliczenia wykładu jest: (1) pozytywne zaliczenie laboratorium, i (2) pomyślne napisanie kolokwium zaliczeniowego, które odbędzie się pod koniec semestru.
Ocena z wykładu wpisana do indeksu będzie średnią ważoną oceny z laboratorium (waga 0.6) i oceny z kolokwium (waga 0.4), zaokrągloną do najbliższej oceny połówkowej.

Kolokwium

Zgodnie z uzgodnieniem, kolokwium zaliczeniowe odbędzie się w formie stacjonarnej w dniu 2 lutego 2023 w godz.11-13 w sali 212/C-2.
Obowiązują wszystkie reżimy i przepisy sanitarne.
W przypadku, gdyby przeprowadzenie kolokwium stacjonarnego nie było możliwe ze względu na wprowadzone i obowiązujące w danym dniu przepisy, kolokwium zostanie przeprowadzone w tym samym terminie w formie zdalnej na platformie Zoom.
Jest to jedyny termin kolokwium i szansa na zaliczenie wykładu. Proszę zarezerwować sobie ten termin i dobrze się przygotować.
Kolokwium jest obowiązkowe dla wszystkich, którzy nie uzyskają zwolnienia w wyniku pisania haszówek.
Ostateczne wyniki dotyczące zwolnienia z kolokwium będą dostępne w sekcji Wyniki.
Uwaga: warunkiem dopuszczenia do kolokwium jest posiadanie zaliczenia laboratorium, albo oczekiwanie na uzyskanie tego zaliczenia po spełnieniu wszystkich wymagań do jego uzyskania.
Na kolokwium zaliczeniowym obowiązuje cały materiał z wykładu i laboratorium.

„Haszówki”

Na wszystkich wykładach będą się odbywały 10-minutowe testy tzw. „haszówki” obejmujące materiał z bieżącego wykładu. Uzyskanie pozytywnego sumarycznego wyniku z wszystkich haszówek daje prawo do zwolnienia z kolokwium zgodnie z poniższą tabelą.
Na haszówkach obowiązują punkty ujemne.
Oceny zaliczenia kolokwium na podstawie punktacji z haszówek:
punkty [%] 86.6673.3360.0046.6633.33
ocena 5.0 4.5 4.0 3.5 3.0

Na haszówkach nie można korzystać z żadnych pomocy, książek, notatek ani urządzeń elektronicznych. Nie ma usprawiedliwień ani odrabiania w razie nieobecności.
Haszówki można pisać do wyboru w wersji papierowej lub elektronicznej, za pomocą aplikacji na telefon z systemem Android. Nie jest dopuszczalne pisanie jednocześnie na papierze i telefonie.
Uwaga:
W przypadku zmiany w trakcie trwania semestru formy zajęć na zdalną, haszówki będą przeprowadzane zdalnie przez system eportal.pwr.edu.pl. Proszę sprawdzić poprawność swojego hasła i dostęp do konta w tym systemie.

Wersja papierowa - wysyłanie wyników haszówek przez stronę WWW

Wzór formularza na którym można pisać i oddawać wersję papierową: PDF

Dodatkowo warunkiem niezbędnym do zwolnienia z kolokwium jest poprawne wprowadzenie pełnej treści wypełnionego formularza odpowiedzi w ciągu tygodnia (166 godzin po haszówce) na stronie: SENDHASH
Formularz wymaga zalogowania się danymi używanymi do logowania się do serwerów diablo/panamint.
Tak wysłane wyniki będą przetwarzane codziennie rano (około godziny 5:45) i udostępniane przez formularz w sekcji Wyniki.

W przypadku niepoprawnego wypełnienia formularza z odpowiedzią, która nie została zaakceptowana, można wysłać ponownie odpowiedź we właściwej formie. Jeśli to nie pomaga, i wyniku nadal nie ma, lub jest źle obliczony, proszę o zgłoszenie się na konsultacje.

W przypadku wysłania wyniku poprawnego formalnie, ale z błędnie wpisaną odpowiedzią, dla której wynik obliczył się i jest widoczny w formularzu wyników, skorygowanie tej sytuacji bezwzględnie wymaga osobistego kontaktu na konsultacjach.

Brak poprawnie wypełnionej w terminie odpowiedzi, odpowiedź przysłana w niepoprawnym formacie, lub niezgodna z odpowiedziami na oddanej pracy pisemnej są podstawą do nieuznania wyniku haszówki!

Wersja elektroniczna - wysyłanie wyników haszówek smartfonem

Istnieje możliwość pisania haszówek na telefonie Androidowym, zamiast na kartce papieru. Telefon wysyła odpowiedzi na serwer w czasie rzeczywistym, dzięki czemu nie trzeba ani nic pisać na papierze, kodować odpowiedzi, ani wysyłać potem odpowiedzi e-mailem. W czasie pisania testu można wracać do poprzednich pytań i ponownie na nie odpowiadać. Drugi raz wysłana odpowiedź na dane pytanie nadpisuje wcześniejszą. Aplikacja zapisuje jednocześnie cały przebieg testu w pliku na telefonie, który może być wykorzystany w przypadku zerwania połączenia z Internetem, lub innej awarii smartfona.

Wyniki haszówek przesłane przez aplikację obliczane są jednorazowo bezpośrednio po teście, i udostępniane na tej stronie przez formularz w sekcji Wyniki.

Pisanie testów na telefonie jest alternatywą pisania na papierze i obowiązują te same zasady:
  1. Test można pisać wyłącznie osobiście, w sali wykładowej, w czasie normalnego wyświetlania testu.
  2. Nie można korzystać z żadnych materiałów źródłowych, notatek, materiałów z Internetu, itp.
Do pisania testów na telefonie potrzebny jest smartfon z systemem Android w wersji wymaganej przez aplikację (>= 4.0) z dobrej jakości połączeniem z Internetem. Należy zainstalować wersję aplikacji właściwą dla danego testu, oraz wpisać w aplikacji swoje dane, nazwę przedmiotu, kod testu, i adres serwera testu (te dane podaje prowadzący).

Aplikację można pobrać z poniższego linka:
Aplikacja Android do pisania haszowek - Haszowki wersja 1.0.16b

Dla wypróbowania aplikacji można wykorzystać następujący test próbny: PDF. Z danymi tego testu można wystartować aplikację oraz odpowiadać na dowolne pytania. Odpowiedzi są wysyłane przez Internet na serwer testów ale do niczego się nie liczą.

UWAGA: powyższa aplikacja smartfonowa przydaje się nie tylko do pisania testu i wysyłania wyników przez Internet. Można ją również wykorzystać do obliczenia numeru grupy testu pisanego na kartce i wysyłanego e-mailem. Warto to zrobić, ponieważ pomyłka przy ręcznym obliczaniu numeru grupy praktycznie dyskwalifikuje napisany test.

Aplikacja Android - szczegółowe instrukcje i procedury awaryjne

Elektronika jest zawodna, lecz pisanie testu na telefonie jest procedurą sprawdzoną i bezpieczną, pod warunkiem przestrzegania poniższych zasad.

Wyniki

Wyniki haszówek powinny być dostępne w systemie eportal w krótki czas po teście. W przypadku, gdyby eportal obliczał te wyniki inaczej niż określają to podane na tej stronie zasady, obowiązują zasady, i wyniki publikowane tutaj, otrzymywane za pomocą poniższego formularza.
Pisownia imion i nazwisk dokładnie jak w systemie Edukacja. Podwójne imiona i wieloczłonowe nazwiska muszą być wprowadzone z oddzielającymi podkreślnikami, jak: Manuel_Antonio, albo de_la_Vega. Numery indeksu sześciocyfrowe.

W przypadku ocen laboratorium obowiązuje pisownia nazwisk jak w eportalu, z polskimi literami tak jak tam są wpisane, i ze spacjami w imionach i nazwiskach zastąpionymi podkreślnikami.

Imię/Imiona:
Nazwisko: Oblicz modulo 16:
Numer indeksu:

Zauważone błędy albo niezgodności w dostępnych tu wynikach można zgłaszać prowadzącemu mailem, jednak istotne problemy będzie można rozwiązać jedynie w ramach konsultacji.


Zaliczenie laboratorium

Warunkiem zaliczenia laboratorium jest samodzielne wykonanie wszystkich ćwiczeń - zgodnie z harmonogramem - i uzyskanie minimum 50% punktów w skali całego semestru. Na zajęcia należy pojawiać się przygotowanym, i dołożyć wszelkich starań aby wykonać jak najwięcej elementów zadanego zadania. Na każdych zajęciach należy zaprezentować prowadzącemu wykonane zadania, a także sporządzić pisemny raport i wraz z programami źródłowymi i innymi wymaganymi materiałami przesłać je prowadzącemu w systemie Moodle zgodnie z instrukcją Moodle.

Przygotowanie

Przygotowanie do zajęć laboratoryjnych obejmuje: (1) znajomość materiału przedstawionego wcześniej na wykładzie, i (2) wstępną znajomość i zrozumienie zadania, udostępnionego na stronie kursu. Niezrozumienie jakichś partii materiału, lub treści zadania, można zgłaszać prowadzącemu, koniecznie na początku zajęć, przed przystąpieniem do pracy nad zadaniem.

Prowadzący może sprawdzać przygotowanie do zajęć laboratoryjnych, i w skrajnych przypadkach kompletny brak przygotowania do realizacji zadania może być podstawą do niedopuszczenia danej osoby do zajęć.

Samodzielność

Wszystkie prace oddawane na zaliczenie ćwiczeń muszą być opracowane samodzielnie. Naruszenie tego wymagania traktowane będzie jako poważne naruszenie zasad etyki i regulaminu studiów.

Jednak wymaganie samodzielności nie oznacza, że nie można korzystać z materiałów źródłowych, nawet jeśli one znacznie ułatwiają wykonanie zadania. Wręcz przeciwnie, rozwiązanie zadania z użyciem gotowych znalezionych gdzieś elementów będzie traktowane jako lepsze (i może być wyżej ocenione), niż rozwiązanie gdzie wszystko jest być może niepotrzebnie napisane od podstaw. Jednak pod dwoma warunkami: korzystać można tylko z ogólnie dostępnych, opublikowanych materiałów, a fakt wykorzystania w zadaniu tych materiałów musi być skrupulatnie odnotowany w raporcie.

Przydatną techniką pracy nad zadaniami mogą być konsultacje z kolegami/koleżankami z grupy. Te konsultacje są jak najbardziej dozwolone i wskazane, ale tylko na etapie zrozumienia materiału, treści i istoty zadania, poszukiwania materiałów, i ogólnych rozwiązań koncepcyjnych. Od momentu rozpoczęcia pisania kodu praca musi być samodzielna.

Prezentacja

Warunkiem zaliczenia zadania, po jego wykonaniu na zajęciach, jest zgłoszenie tego prowadzącemu, zademonstrowanie działania programu prowadzącemu, i ewentualne odpowiedzenie na pytania, jeśli takie się pojawią.
W niektórych zadaniach część zadania jest obowiązkowa do wykonania na zajęciach, i należy dołożyć wszelkich starań, aby tę część wykonać i zaprezentować. Pozostałą część zadania należy wykonać ,,w domu'', i opisać w raporcie. Niekiedy część zadania może być wykonana na zajęciach lub opcjonalnie w domu, ale wyższą ocenę można dostać za wykonanie zadania na zajęciach.

Raport

Zadania oddawane w eportalu wymagają opracowania raportu. W większości przypadków zadania składają się z szeregu oddzielnych punktów, i w raporcie należy przede wszystkim napisać, które punkty zostały wykonane, a które nie zostały. Zadanie wykonane częściowo jest akceptowalne, i może być uznane za wystarczające do zaliczenia danego zadania.

Raport powinien być krótki, precyzyjny, i rzetelny. Jeśli zadanie, lub dana jego część, została wykonana w pełni zgodnie z wymaganiami, to wystarczy krótkie stwierdzenie, np. Punkt 3 wykonany, przetestowany, działa poprawnie.

Podstawową platformą do wykonywania zadań i uruchamiania programów będzie platforma Sun/Solaris (komputer diablo). Uruchomienie programu na innej platformie unixowej (np. MacOS, HP/UX, SG/Irix, IBM/AIX, albo Linux, FreeBSD, NetBSD, itp.) jest zawsze mile widziane, i w niektórych zadaniach będzie za to można dostać dodatkowe punkty. Jeśli z programem są jakieś problemy, np. nie kompiluje się lub nie działa poprawnie na diablo, wywala się, itp., to proszę opisać z czym jest problem, jak się objawia, i jak możnaby go próbować rozwiązać.

Jeśli w pracy nad programem wykorzystane były jakieś materiały to należy to opisać w raporcie. Brak takiej adnotacji oznacza, że zadanie zostało opracowane w całości samodzielnie.

Jeśli sposób kompilacji i/lub uruchomienia programu nie jest oczywisty, albo nie jest zgodny z wymaganiami zadania, to proszę go krótko opisać.

Nieobecności i odrabianie

Zaliczenie laboratorium wymaga przynajmniej minimalnego wykonania wszystkich objętych planem zadań. Nie ma przewidzianych terminów odrabiania niezaliczonych zadań. W przypadku nieobecności na zajęciach wynikającej z ważnych przypadków losowych, należy: (1) samodzielnie wykonać w jak największym stopniu opuszczone zadanie, (2) jak najszybciej zgłosić prowadzącemu fakt opuszczenia zajęć, i (3) zastosować się do zaproponowanego planu nadrobienia materiału.


Oddawanie programów w systemie Moodle (eportal)

Dla celów oddawania zadań ten kurs jest zarejestrowany na serwerze:
http://eportal.pwr.wroc.pl/
Należy zapisać się na ten kurs (hasło dostępne u prowadzącego), i oddawać zadania zgodnie z zamieszczonymi tam instrukcjami, ale zgodnie z terminami oddawania zadań dla poszczególnych grup określonymi w sekcji Zadania. (Termin oddawania zadania określony w Moodle służy tylko jako ostateczna blokada oddawania zadań daleko po terminie.)

W przypadku skryptów, proszę przysyłać same pliki tekstowe zawierający skrypty. Jeśli w zadaniu oczekiwany jest jeden skrypt, a napisanych zostało kilka skryptów, to można utworzyć plik tekstowy z wklejonymi po kolei skryptami, i przysłać ten plik. Do zadania proszę dołączyć bardzo krótki raport o wykonaniu zadania. W najprostszym przypadku raport może zawierać formułkę typu: ,,Skrypt został napisany zgodnie z wymaganiami, został uruchomiony i przetestowany na systemie diablo.'' Raport może być przysłany w oddzielnym pliku, dołączony jako komentarz Moodle'a do zadania, lub nawet wklejony jako komentarz w nagłówku skryptu.

W przypadku zadań na programowanie w C, należy oddać (1) raport przygotowany jako plik tekstowy zgodnie z punktem Raport, oraz (2) komplet programów źródłowych, i plików dodatkowych, jeśli są potrzebne (np. Makefile). Wszystkie pliki proszę przysyłać w wersji źródłowej.


Zadania na pracownię

nrtematopisczasmateriały
1 Zapoznanie się z komputerami laboratorium i systemem Unix opis część 1 1godz.
opis część 2 opis podstawowe polecenia Emacsa
2 Zapoznanie się z poleceniem find opis 1godz.
3a Polecenia i skrypty interpretera poleceń (1) opis 1godz. opis podstawy Bourne shella i basha - tutorial
3b Polecenia i skrypty interpretera poleceń (2) opis 1godz.
4a Filtry tekstowe i wyrażenia regularne (1) opis 1godz.
4b Filtry tekstowe i wyrażenia regularne (2) opis 1godz.
5 Wstęp do programowania procesów opis 2godz.
6 Współbieżność i synchronizacja procesów opis 3godz.
7 Komunikacja międzyprocesowa opis 2godz. try_sock_dgr_ser.c, try_sock_dgr_cli.c


Wykładowca | Wykłady | Literatura | Zaliczenie | Kolokwium | Haszówki | Wyniki | Laboratorium | Moodle | Zadania
Licznik odwiedzin strony od 1 października 2002: licznik
Aktualizacja: Monday, 06-Feb-2023 04:43:32 CET   Valid XHTML 1.0 Transitional! Valid CSS!