Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie imperatywne
Tok studiów:
2019/2020
Kod:
IINF-1-305-n
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
3
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Niestacjonarne
Strona www:
 
Prowadzący moduł:
dr inż. Czech Wojciech (czech@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Celem przedmiotu jest zapoznanie studentów ze składnią i semantyką języka Java oraz zdobycie umiejętności korzystania z biblioteki standardowej wraz z podstawowymi strukturami danych.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Student zna i rozumie podstawowe mechanizmy budowy algorytmów w języku Java INF1A_W02 Egzamin,
Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
M_W002 Student zna słowa kluczowe oraz podstawowe konstrukcje składniowe języka Java INF1A_W05 Egzamin,
Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
M_W003 Student zna i rozumie pojęcia: klasa, metoda, pole, klasa statyczna, metoda statyczna, pole statyczne, interfejs, interfejs funkcyjny, pakiet, ścieżka klas, klasa wewnętrzna, zmienna finalna. INF1A_W03 Egzamin
M_W004 Ma podstawową wiedzę na temat maszyny wirtualnej Javy (JVM) INF1A_W03 Egzamin
Umiejętności: potrafi
M_U001 Potrafi korzystać z biblioteki standardowej języka Java oraz wykorzystywać dokumentację Java API INF1A_U04 Wykonanie ćwiczeń laboratoryjnych,
Aktywność na zajęciach
M_U002 Potrafi zapisywać algorytmy w języku Java wykorzystując mechanizmy takie jak: klasy, pola, metody, interfejsy. INF1A_U05 Wykonanie ćwiczeń laboratoryjnych,
Aktywność na zajęciach,
Egzamin
M_U003 Potrafi skompilować i uruchomić program napisany w języku Java korzystając z linii poleceń systemów operacyjnych: Linux, Windows INF1A_U07 Wykonanie ćwiczeń laboratoryjnych,
Aktywność na zajęciach
M_U004 Potrafi korzystać z wybranego środowiska IDE (IntelliJ, Java) do wspomagania tworzenia oprogramowania w języku Java INF1A_U01 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
M_U005 Potrafi korzystać z zewnętrznych bibliotek języka Java oraz konfigurować ścieżkę klas. INF1A_U01 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne: jest gotów do
M_K001 Student potrafi pracować nad rozwiązaniem problemu w zespole 2-3 osobowym INF1A_K03 Aktywność na zajęciach
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
32 16 0 16 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Student zna i rozumie podstawowe mechanizmy budowy algorytmów w języku Java + - - - - - - - - - -
M_W002 Student zna słowa kluczowe oraz podstawowe konstrukcje składniowe języka Java + - - - - - - - - - -
M_W003 Student zna i rozumie pojęcia: klasa, metoda, pole, klasa statyczna, metoda statyczna, pole statyczne, interfejs, interfejs funkcyjny, pakiet, ścieżka klas, klasa wewnętrzna, zmienna finalna. + - - - - - - - - - -
M_W004 Ma podstawową wiedzę na temat maszyny wirtualnej Javy (JVM) + - - - - - - - - - -
Umiejętności
M_U001 Potrafi korzystać z biblioteki standardowej języka Java oraz wykorzystywać dokumentację Java API - - + - - - - - - - -
M_U002 Potrafi zapisywać algorytmy w języku Java wykorzystując mechanizmy takie jak: klasy, pola, metody, interfejsy. - - + - - - - - - - -
M_U003 Potrafi skompilować i uruchomić program napisany w języku Java korzystając z linii poleceń systemów operacyjnych: Linux, Windows - - + - - - - - - - -
M_U004 Potrafi korzystać z wybranego środowiska IDE (IntelliJ, Java) do wspomagania tworzenia oprogramowania w języku Java - - + - - - - - - - -
M_U005 Potrafi korzystać z zewnętrznych bibliotek języka Java oraz konfigurować ścieżkę klas. - - - - - - - - - - -
Kompetencje społeczne
M_K001 Student potrafi pracować nad rozwiązaniem problemu w zespole 2-3 osobowym - - - - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 134 godz
Punkty ECTS za moduł 5 ECTS
Udział w zajęciach dydaktycznych/praktyka 32 godz
Przygotowanie do zajęć 50 godz
Samodzielne studiowanie tematyki zajęć 45 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Dodatkowe godziny kontaktowe 5 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (16h):
  1. Wykład (2h)

    1. Sprawy organizacyjne
    2. Literatura
    3. Cechy języka Java
    4. Krótka historia języka Java
    5. Maszyna wirtualna Javy (JVM)
    6. Garbage collecting
    7. Poste programy w języku Java
    8. Konwencje nazewnicze
    9. Słowa kluczowe
    10. Prymitywne typy danych
    11. Łańcuchy znaków
    12. Literały
    13. Przekazywanie argumentów
    14. Operatory

  2. Wykład (2h)

    1. Tablice w języku Java
    2. Kontrola przepływu – instrukcje sterujące
    3. Klasa – podstawowe elementy składniowe
    4. Obiekt – wprowadzenie
    5. Pole – wprowadzenie
    6. Metody – wprowadzenie
    7. Zmienna liczba argumentów (varargs)
    8. Pojęcie konstruktora
    9. Modyfikatory dostępu
    10. Klasa String – specyfika użycia

  3. Wykład (2h)

    1. Słowo kluczowe static
    2. Podstawowe informacje na temat dziedziczenia
    3. Operator rzutowania
    4. Słowo kluczowe final
    5. Stałe
    6. Pojęcie interfejsu
    7. Metody domyślne
    8. Metody abstrakcyjne
    9. Klasy abstrakcyjne
    10. Typy uogólnione – wprowadzenie
    11. Podstawowe struktury danych w Javie: lista, zbiór, mapa

  4. Wykład (2h)

    1. Wyjątki
    2. Typy wyliczeniowe
    3. Klasy zagnieżdżone
    4. Typy uogólnione – rozszerzenie
    5. Podstawowa obsługa wejścia/wyjścia: pliki

  5. Wykład (2h)

    1. Typy uogólnione (wildcards)
    2. Strumienie wejścia/wyjścia
    3. Klasa Properties i obsługa plików konfiguracyjnych
    4. Wyrażenia regularne w języku Java
    5. Klasy pomocnicze StringBuilder i StringTokenizer

  6. Wykład (2h)

    1. Java NIO.2 API
    2. Interfejs Comparable i jego zastosowania
    3. Podstawowe informacje na temat refleksji
    4. Interfejsy funkcyjne
    5. Podstawy wykorzystania wyrażeń lambda w języku Java
    6. Streaming API

  7. Wykład (2h)

    1. Biblioteki AWT, Swing
    2. Podstawy tworzenia graficznego interfejsu użytkownika w języku Java

Ćwiczenia laboratoryjne (16h):
  1. Lab (2h)

    1. Środowisko Eclipse lub IntelliJ
    2. Uruchamianie programu z poziomu linii poleceń systemu operacyjnego
    3. Proste wykorzystanie zewnętrznej biblioteki (log4j)
    4. Zarządzanie pamięcią
    5. Podstawowe debugowanie programów napisanych w Javie

  2. Lab (2h)

    1. Operatory
    2. Proste programy w Javie: XOR swap, parzystość, liczby pierwsze, poszukiwanie największego i najmniejszego elementu w tablicy
    3. Klasy w Javie

  3. Lab (2h)

    1. Pola statyczne
    2. Klasy pomocnicze z metodami statycznymi
    3. Prosty interfejs
    4. Mechanizm dziedziczenia
    5. Interfejs Listi jego implementacje
    6. Interfejs Map<K,V> i jego implementacje
    7. Zliczanie częstotliwości występowania słów w tekście

  4. Lab (2h)

    1. Wyjątki weryfikowane i nieweryfikowane
    2. Typ wyliczeniowy
    3. Proste typy uogólnione
    4. Bounded type parameters

  5. Lab (2h)

    1. Bounded types and wildcards
    2. Strumienie wejścia/wyjścia
    3. Klasa Scanner i jej zastosowania
    4. Serializacja
    5. Biblioteka XStream – przykładowe zastosowania

  6. Lab (2h)

    1. Zapis/odczyt danych do pliku
    2. Obsługa ścieżek i katalogów (NIO.2)
    3. Refleksja – podstawowe mechanizmy
    4. Wyrażenia lambda

  7. Lab (2h)

    1. Budowa prostego interfejsu graficznego z wykorzystaniem biblioteki Swing i AWT

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
Sposób obliczania oceny końcowej:

Laboratoria: zaliczenie na podstawie aktywności na zajęciach i wykonania zadań domowych
Egzamin: 1.5h, 10-12 pytań
Ocena końcowa: Średnia ważona oceny z egzaminu (0.6) i oceny z laboratorium (0.4)
Wyrównanie zaległości spowodowanych nieobecnością wymaga rozwiązania zadań z laboratorium i ich przesłania do oceny prowadzącemu. Student, który bez usprawiedliwienia opuścił więcej niż dwa zajęcia może zostać pozbawiony możliwości ich odrabiania poprzez przesłanie zadań.

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Podstawowa znajomość struktur danych (Wstęp do informatyki)

Zalecana literatura i pomoce naukowe:
  1. Bruce Eckel: Thinking in Java 4th Edition, 2006
  2. „The Java Tutorial” – zasoby online (https://docs.oracle.com/javase/tutorial/)
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Stosowane metody kształcenia:

  1. Platforma e-learningowa moodle