Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Object oriented programming and software engineering
Tok studiów:
2019/2020
Kod:
RIMA-1-613-s
Wydział:
Inżynierii Mechanicznej i Robotyki
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Mechatronic Engineering with English as instruction language
Semestr:
6
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 aim of the course is to familiarize students with a modern approach to creating information systems of medium and large scale based on the model, testing, group work and continuous integration.

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 the object-oriented approach to software development, knows and understands the overall structure of the object program in C ++, knows and understands the concept of class (its purpose, components and their availability, notation in C ++) and object, knows and understands the concept of abstract class; knows and understands the concept of a derived class, its importance in the software development process, application and definition (including the basis of an abstract base class, implementation of the polymorphism mechanism), knows and understands operator functions, their purpose, methods of defining and advantages of use, knows and understands the mechanism of functions and template classes, its use and notation, knows and understands streaming operators << and >>, including how to define them for any classes and streams, knows and understands static class components, friends and internal classes, knows and understands the mechanism exception handling in C ++ and its importance for software reliability; knows the way to handle system and program exceptions, as well as a unified approach to both types of exceptions, knows the C ++ standard library and understands how to handle dynamic data structures (vectors, lists, queues, maps) in the STL library. IMA1A_W10 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W002 knows the general organization of the software development process; knows the leading techniques and tools of the CASE type supporting this process, knows the basic assumptions of the concept of model-based system architecture (MDA), knows the properties and role of the UML language in this context IMA1A_W10 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W003 knows and understands the structure of the information system model in UML 2. *, knows and understands the purpose of selected UML diagrams - use cases, sequences, classes and objects, state machine, activity and interface, knows the symbols used and their meaning IMA1A_W10 Kolokwium
M_W004 knows and understands the basic object-oriented design patterns (Singleton, Multipleton, Iterator, Observer, State, Composite) IMA1A_W10 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W005 knows and understands the basic software development life cycle kinds and development methodologies, knows how to debug and test the software system IMA1A_W10 Kolokwium
Umiejętności: potrafi
M_U001 can analyze the problem and plan the overall course of its solution in the form of an IT system, can select technologies and tools for its implementation IMA1A_U14 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U002 is able to build an IT system model in UML language, using usage case diagrams, sequences, classes and objects, state machines and activities, is able to select and apply design patterns appropriate to the problem being solved, can apply the principles of object-oriented approach to software development IMA1A_U14 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U003 can simulate the model in an environment provided by the tools used (IBM Rhapsody or others), can implement the system debugging and testing by various methods (data logging, debugger, profiler, assertions, testing code, automated testing tools) IMA1A_U14 Kolokwium,
Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
M_U004 He can implement a complex algorithm in C ++ using the appropriate language constructs IMA1A_U10 Wykonanie projektu,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne: jest gotów do
M_K001 can properly organize the steps necessary to complete the software project IMA1A_K05 Wykonanie projektu
M_K002 can work anassisted and in teams to complete a software project IMA1A_K04 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
126 42 0 70 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 the object-oriented approach to software development, knows and understands the overall structure of the object program in C ++, knows and understands the concept of class (its purpose, components and their availability, notation in C ++) and object, knows and understands the concept of abstract class; knows and understands the concept of a derived class, its importance in the software development process, application and definition (including the basis of an abstract base class, implementation of the polymorphism mechanism), knows and understands operator functions, their purpose, methods of defining and advantages of use, knows and understands the mechanism of functions and template classes, its use and notation, knows and understands streaming operators << and >>, including how to define them for any classes and streams, knows and understands static class components, friends and internal classes, knows and understands the mechanism exception handling in C ++ and its importance for software reliability; knows the way to handle system and program exceptions, as well as a unified approach to both types of exceptions, knows the C ++ standard library and understands how to handle dynamic data structures (vectors, lists, queues, maps) in the STL library. + - + + - - - - - - -
M_W002 knows the general organization of the software development process; knows the leading techniques and tools of the CASE type supporting this process, knows the basic assumptions of the concept of model-based system architecture (MDA), knows the properties and role of the UML language in this context + - + + - - - - - - -
M_W003 knows and understands the structure of the information system model in UML 2. *, knows and understands the purpose of selected UML diagrams - use cases, sequences, classes and objects, state machine, activity and interface, knows the symbols used and their meaning + - + + - - - - - - -
M_W004 knows and understands the basic object-oriented design patterns (Singleton, Multipleton, Iterator, Observer, State, Composite) + - + + - - - - - - -
M_W005 knows and understands the basic software development life cycle kinds and development methodologies, knows how to debug and test the software system + - + - - - - - - - -
Umiejętności
M_U001 can analyze the problem and plan the overall course of its solution in the form of an IT system, can select technologies and tools for its implementation - - + + - - - - - - -
M_U002 is able to build an IT system model in UML language, using usage case diagrams, sequences, classes and objects, state machines and activities, is able to select and apply design patterns appropriate to the problem being solved, can apply the principles of object-oriented approach to software development - - + + - - - - - - -
M_U003 can simulate the model in an environment provided by the tools used (IBM Rhapsody or others), can implement the system debugging and testing by various methods (data logging, debugger, profiler, assertions, testing code, automated testing tools) - - + + - - - - - - -
M_U004 He can implement a complex algorithm in C ++ using the appropriate language constructs - - + + - - - - - - -
Kompetencje społeczne
M_K001 can properly organize the steps necessary to complete the software project - - - + - - - - - - -
M_K002 can work anassisted and in teams to complete a software project - - - + - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 287 godz
Punkty ECTS za moduł 10 ECTS
Udział w zajęciach dydaktycznych/praktyka 126 godz
Przygotowanie do zajęć 70 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 14 godz
Samodzielne studiowanie tematyki zajęć 75 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 (42h):

Lecture covers the following topics:

  • software engineering as a discipline,
  • principles of object-oriented programming, and the advantages it brings
  • a software engineering proces
  • an overview of CASE tools
  • software systems modeling in UML, including a complete example of system
  • use case diagrams
  • class and object diagrams
  • behavioral diagrams: sequence, activity and state nmachine
  • system development methods (RUP, Scrum, XP, etc.)
  • object-oriented design patterns
  • round-trip engineering
  • software testing methods

Ćwiczenia laboratoryjne (70h):

During laboratories the students:

  • learn how to use the software modeling environment (IBM Rhapsody)
  • work individually on a jointly discussed and realized example of software model in UML, using the basic UML diagrams (use case, sequence, class and object, state machine, activity, panel (UI))
  • deploy and simulate a model in IBM Rhapsody environment
  • test the system with data logging, debugger, profiler, assertions, automatic testing tools – Rhapsody TestConductor)
  • test units (classes) with testing code generated automatically (JUnit)

Ćwiczenia projektowe (14h):

During projects the students prepare individually or in small teams in UML a model of a simple object-oriented program.
Example projects:

  • control of compound device (washing machine, ATM, music player, etc.)
  • airline reservation system
  • warehouse
  • library
    Upon completion, the model is simulated in IBM Rhapsody environment. Next, test cases are prepared and executed.

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 to perform tasks commissioned during the course and pass the test of knowledge of C ++ and UML.
The condition for passing the project exercises is completion of the project and presenting it for evaluation, combined with the justification of the solutions used.
The condition for admission to the exam is to obtain positive marks for laboratory and design exercises.

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Tak
    – 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 25 %
  • quizz 25 %
  • final test 25 %
  • project 25 %
    All of them must be passed.
Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Self-fulfillment of outstanding tasks and presentation for evaluation.

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

Ability to efficiently program in the C language

Zalecana literatura i pomoce naukowe:
  • Booch G., Rumbaugh J., Jacobson I.: The Unified Modeling Language User Guide, Addison
    Wesley Longman, 1999
  • Gamma E., Helms R., Johnson R., Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995
  • Binder R.: Testing object-oriented systems, Addison Wesley Longman , 2000
  • Gregoire M., Professional C++, Third Edition, John Wiley & Sons, Inc., 2014
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Inżynieria oprogramowania. Skrypt AGH SU 1707, Wydawnictwa AGH, Kraków 2009

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