Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowania
Strona główna

Programowanie sieciowe

Informacje ogólne

Kod przedmiotu: 1000-I1ProgSiec
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Programowanie sieciowe
Jednostka: Wydział Matematyki i Informatyki
Grupy:
Strona przedmiotu: http://przymus.org/sk
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Wymagania wstępne:

1. Znajomość języków skryptowych typu sh, awk, perl.

2. Znajomość języka programowania "C".

3. Znajomość systemu operacyjnego Linux na poziomie zwykłego użytkownika.

Rodzaj przedmiotu:

przedmiot obowiązkowy

Całkowity nakład pracy studenta:

30 godzin - wykład,

30 godzin - laboratorium

30 godzin - bieżące przygotowanie do zajęć

25 godzin - studiowanie literatury

35 godzin - przygotowanie do egzaminu i zaliczenia


Razem: 150 godzin


Efekty uczenia się - wiedza:

W1. Ma wiedzę na temat podstawowych elementów komunikacji między procesami na jednej i na różnych maszynach.

W2. Zna pojęcie "protokołu komunikacyjnego" w każdym powyższym przypadku.

W3. Zna model komunikacji sieciowej OSI oraz podstawowe protokoły sieciowe przypisane do każdej warstwy.

W4. Zna zasadę komunikacji opartą o model klient - serwer i

Efekty uczenia się - umiejętności:

U1. Potrafi zaprojektować i zaprogramować zadanie związane z komunikacją między procesami na jednej maszynie z wykorzystaniem narzędzi IPC

U2. Potrafi zaprojektować i zaprogramować serwera i klienta zadania komunikacyjnego z użyciem gniazd i różnych protokołów transportowych.

U3.Potrafi sformułować i zaimplementować prosty protokół komunikacyjny.

U4. Potrafi poprzez analizę zadania komunikacyjnego przypisać je do właściwej warstwy metody OSI i potrafi zastosować właściwe dla tej warstwy protokoły sieciowe.

Efekty uczenia się - kompetencje społeczne:

U1. Potrafi zaprojektować i zaprogramować zadanie związane z komunikacją między procesami na jednej maszynie z wykorzystaniem narzędzi IPC

U2. Potrafi zaprojektować i zaprogramować serwera i klienta zadania komunikacyjnego z użyciem gniazd i różnych protokołów transportowych.

U3.Potrafi sformułować i zaimplementować prosty protokół komunikacyjny.

U4. Potrafi poprzez analizę zadania komunikacyjnego przypisać je do właściwej warstwy metody OSI i potrafi zastosować właściwe dla tej warstwy protokoły sieciowe.

Metody dydaktyczne eksponujące:

- pokaz

Metody dydaktyczne podające:

- wykład informacyjny (konwencjonalny)
- wykład konwersatoryjny
- wykład problemowy

Metody dydaktyczne poszukujące:

- ćwiczeniowa
- klasyczna metoda problemowa
- laboratoryjna

Metody dydaktyczne w kształceniu online:

- metody służące prezentacji treści
- metody wymiany i dyskusji

Skrócony opis:

Zapoznanie się modelem OSI programowania sieciowego oraz z niektórymi protokołami sieciowymi warstwy sieci i warstwy transportu. Poznanie narzędzi realizujących komunikację między procesami na jednym komputerze oraz między procesami na różnych komputerach. 

Pełny opis:

  • Pliki i procesy
    Operacje Wejście/Wyjście - standardowe funkcje IÓ. Praca z plikami i katalogami, funkcje stat i fstat. Procesy, tworzenie procesów, funkcje exec i wait, atrybuty procesów. 
  • Komunikacja między procesami
    Sygnały i ich programowanie. Komunikacja z użyciem potoków oraz FIFO. Kolejki komunikatów, semafory i pamięć wspólna: POSIX , SYSV. Model klient - serwer.
  • Sieci Komputerowe
    Warstwy i protokoły sieciowe, model OSI. Protokoły IPv4 oraz IPv6, adresy w sieciach. Protokoły warstwy transportu: TCP oraz UDP.
  • Komunikacja między procesami na różnych maszynach
    Gniazda, ich adresy. Typy i rodziny gniazd. Porty zastrzeżone i standardowe usługi w sieci Internet. Realizacja modelu klient-serwer z użyciem gniazd.
  • Zdalne Wywołanie Procedur
    Implementacja RPC w systemach UNIX. Zastosowania RPC: protokół NFS. Kompilator protokołów rpcgen oraz jego zastosowania.
  • Współczesne protokoły sieciowe
  • Przegląd współczesnych implementacji RPC. Historia rozwoju protokołu HTTP.
Literatura:

Literatura podstawowa:

  • W.R. Stevens, "Programowanie zastosowań sieciowych w systemie UNIX"
  • W.R. Stevens, "UNIX Programowanie usług sieciowych
  • K. Haviland, B. Slama, "UNIX System Programming"
  • St. A. Rego, "UNIX System V Network Programming"
  • Dokumentacja systemów: Solaris , Linux, Cygwin 
Metody i kryteria oceniania:

Egzamin

  • Zgodnie z aktualnym zarządzeniem planowany jest egzamin stacjonarny.
  • Ze względu na dynamikę sytuacji forma egzaminu może ulec zmianie.
  • Egzamin składa się z 2 części:
    • Testu teoretyczno/praktycznego z pytaniami wielokrotnego wyboru (podzielone na A1 i A2).
    • Testu sprawdzającego znajomość omawianych na wykładzie schematów.

Laboratoria:

  • 2 kolokwia
    • Kolokwium I - dwuczęściowe: test teoretyczny (10 pkt.) oraz zadanie programistyczne (10p.) - łącznie 20 pkt; przybliżony termin: listopad/grudzień.
    • Kolokwium II - zadania programistyczne - 20 pkt.; przybliżony termin: styczeń.
    • Zakres materiału na kolokwia: całość materiału omówionego w trakcie zajęć laboratoryjnych (od początku semestru do zajęć poprzedzających dane kolokwium), włącznie ze wszystkimi zadaniami sformułowanymi na zajęciach i pracami domowymi.
    • Podczas kolokwiów można korzystać z własnych, odręcznych notatek.
  • 2 projekty programistyczne do domu (kody programów + filmik), po 10 pkt. każdy
    • Rozwiązania projektów należy przysyłać poprzez Moodle (nie będą przyjmowane po terminie).
    • Razem z programem należy przysłać film (ok. 5-8 min.) zawierający prezentację własnego programu (szczegóły techniczne będą doprecyzowane przy konkretnym zadaniu). Jakość/kompletność prezentacji będzie miała wpływ na ocenę całego projektu.
    • Prowadzący może poprosić autora programu o krótką rozmowę w celu weryfikacji samodzielności i zrozumienia użytych technik (wynik tej rozmowy może mieć wpływ na liczbę punktów). Rozwiązania niesamodzielne nie będą akceptowane.
    • Warunkiem koniecznym uzyskania maksymalnej liczby punktów (tj. 10) jest spełnienie wszystkich warunków dobrego projektu.

Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)

Okres: 2023-10-01 - 2024-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 100 miejsc więcej informacji
Koordynatorzy: Piotr Przymus
Prowadzący grup: Jerzy Białkowski, Andrzej Mróz, Piotr Przymus, Jerzy Szymański
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

Zajęcia w cyklu "Semestr zimowy 2024/25" (jeszcze nie rozpoczęty)

Okres: 2024-10-01 - 2025-02-16
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 100 miejsc więcej informacji
Koordynatorzy: (brak danych)
Prowadzący grup: Andrzej Mróz, Piotr Przymus, Jerzy Szymański
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.
ul. Jurija Gagarina 11, 87-100 Toruń tel: +48 56 611-40-10 https://usosweb.umk.pl/ kontakt deklaracja dostępności USOSweb 7.0.3.0-1 (2024-04-02)