Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Informatics in mechatronics
Tok studiów:
2019/2020
Kod:
RIMA-2-102-MD-s
Wydział:
Inżynierii Mechanicznej i Robotyki
Poziom studiów:
Studia II stopnia
Specjalność:
Mechatronic Design
Kierunek:
Mechatronic Engineering with English as instruction language
Semestr:
1
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Angielski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
dr inż. Miękina Lucjan (miekina@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

The course aims at introducing the students into the selected information technologies, related to the Java and Scala ecosystems in application to creation of mechatronic solutions.

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 knows and understands the principles of object-oriented programming IMA2A_W02 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W002 knows the Java programming language: classes, objects, inheritance, polymorphism, generics and elements of parallel programming. IMA2A_W02 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W003 knows and understands the elements of functional programming in Java IMA2A_W02 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W004 knows and understands methods of distributed programming in Java: UDP, TCP, RMI, SOAP and RESTful web services IMA2A_W02 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
Umiejętności: potrafi
M_U001 can build the object-oriented software with the Java language using classes, objects, inheritance, polymorphism, generics and elements of parallel programming. IMA2A_U10, IMA2A_U09, IMA2A_U12 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U002 can apply the selected functional programming techniques in the Java language IMA2A_U12 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U003 can build distributed programs in Java using UDP, TCP, RMI, SOAP and RESTful web services IMA2A_U12 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
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
68 28 0 26 14 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 knows and understands the principles of object-oriented programming + - + + - - - - - - -
M_W002 knows the Java programming language: classes, objects, inheritance, polymorphism, generics and elements of parallel programming. + - + + - - - - - - -
M_W003 knows and understands the elements of functional programming in Java + - + + - - - - - - -
M_W004 knows and understands methods of distributed programming in Java: UDP, TCP, RMI, SOAP and RESTful web services + - + + - - - - - - -
Umiejętności
M_U001 can build the object-oriented software with the Java language using classes, objects, inheritance, polymorphism, generics and elements of parallel programming. - - + + - - - - - - -
M_U002 can apply the selected functional programming techniques in the Java language - - + + - - - - - - -
M_U003 can build distributed programs in Java using UDP, TCP, RMI, SOAP and RESTful web services - - + + - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 158 godz
Punkty ECTS za moduł 6 ECTS
Udział w zajęciach dydaktycznych/praktyka 68 godz
Przygotowanie do zajęć 28 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 32 godz
Samodzielne studiowanie tematyki zajęć 28 godz
Egzamin lub kolokwium zaliczeniowe 2 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 (28h):
  1. The first part of lecture covers the following topics:

    • The Java programming language, its main constructs and usage
    • parallel programming in Java
    • network programming in Java with the UDP and TCP protocoles
    • distributed programming in Java with RMI, SOAP and RESTful web services
    • functional programming in Java
      The discussion of above theoretical topics is mixed with presentation of a complete example of a client-server architecture.

    The second part covers web applications:

    • database systems – data administration
    • the SQL language – data creation, administration and processing
    • the object-relational mapping – JPA, Hibernate, EJB
    • application servers: GlassFish, JBoss, WebSphere – usage scenarios, configuration
    • tools supporting integration and visualization in enterprise systems – the MVC model, JSP, JSF
    • popular solutions to visualization problems in enterprise systems – Wicket, Vaadin, ICEFace
    • security problems in web applications

  2. Applications of the Scala programming language

    • introduction, installation and configuration of the development system
    • Scala – introduction to the language
    • SBT – a project management tool
    • Play – structure, templates, basic syntactic constructions, forms, validation
    • Slick – work with a database system (relational)
    • Play – advanced tasks – ajax, file transfer, web streams

Ćwiczenia laboratoryjne (26h):
  1. During laboratories the students:

    • learn how to use the java language to implement software
    • work individually on a jointly discussed and realized examples of UDP and TCP networking, distributed Java RMI application and web services
    • use the Spring Framework in building the flexible software

    In the second part of the laboratories students design and implement a web application, using:

    • the SQL language
    • object-relational mapping
    • application servers
    • tools and libraries for visualization (Wicket, Vaadin, ICEFaces)
    • security solutions

  2. Applications of the Scala programming language

    Students work on a web application, using:

    • Scala language
    • SBT – project management tool
    • Play – the skeleton of the web application
    • Slick – a framework that works with a database system (relational)

Ćwiczenia projektowe (14h):

During projects the students prepare, individually or in small teams, the software system in Java that is a solution to a particular problem, built according to the client-server architecture.
In the second part of the project exercises, the students design and implement a choosen web application.

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ą.
  • Ćwiczenia projektowe: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

The condition for passing the laboratory exercises is placing the correct code in the repository that is the implementation of the task specified in the instruction for exercises.
The condition for passing the project exercises is placing the correct code in the repository that is the implementation of the task specified in the project topic and justifying the adopted solutions.

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.
  • Ćwiczenia projektowe:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
Sposób obliczania oceny końcowej:

Grades are calculated as follows:

  • software labs 50 %
  • project 50 %
    All of them must be passed.
Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Independent implementation of outstanding topics and presentation of results for evaluation.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :
  • Ability to efficiently program in object-oriented languages (Java)
  • Knowledge of computer networks and databases
Zalecana literatura i pomoce naukowe:
  • The lecture
  • Core Java Volume I – Fundamentals, Cay S. Horstmann, 10 Ed.
  • Core Java Volume II – Advanced Features, Cay S. Horstmann, 10 Ed.
  • Functional Programming in Java, Venkat Subramaniam, The Pragmatic Bookshelf, 2014
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:
  • The quizz refers to material presented in the lectures and affects the final grade
  • The final test refers to material discussed in the software labs