Module also offered within study programmes:
General information:
Annual:
2017/2018
Code:
ZIE-1-303-s
Name:
Object-oriented programming
Faculty of:
Management
Study level:
First-cycle studies
Specialty:
-
Field of study:
Information Technology and Econometrics
Semester:
3
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Duda Jerzy (jduda@zarz.agh.edu.pl)
Academic teachers:
dr Skalna Iwona (skalna@agh.edu.pl)
Potiopa Piotr (ppotiopa@zarz.agh.edu.pl)
dr Basiura Beata (bbasiura@zarz.agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 potrafi pracować w zespole i rozwiązywać problemy związane z realizacją projektu oraz prezentować wyniki zespołu IE1A_K03, IE1A_K05, IE1A_K02 Presentation,
Participation in a discussion,
Execution of a project,
Involvement in teamwork
M_K002 ma świadomość ciągłej potrzeby dostosowywania swojej wiedzy do zmieniających się języków i środowisk programistycznych IE1A_K06, IE1A_K01 Examination,
Participation in a discussion
M_K003 Potrafi samodzielnie nauczyć się innego języka programowania opartego o paradygmat obiektowy IE1A_U06, IE1A_K06, IE1A_W12 Examination,
Participation in a discussion
Skills
M_U001 potrafi wykorzystać środowisko programistyczne (np. Visual Studio, NetBeans) w celu edycji kodu, jego kompilacji, usuwania błędów oraz projektowania GUI IE1A_U10, IE1A_U06, IE1A_U09 Execution of a project,
Execution of laboratory classes
M_U002 potrafi wraz z zespołem zaprojektować, a następnie utworzyć aplikację zgodną z określonymi wymaganiami funkcjonalnymi IE1A_U10, IE1A_U17, IE1A_U12 Activity during classes,
Participation in a discussion,
Execution of a project
M_U003 potrafi utworzyć obiektowy model problemu, określić klasy, ich odpowiedzialność oraz związki pomiędzy klasami IE1A_U06, IE1A_U19, IE1A_U17 Execution of a project,
Execution of laboratory classes
M_U004 potrafi odpowiednio zdefiniować klasy (oraz interfejsy) i zapisać ich kod w języku C# lub Java, wykorzystując specyfikę języka IE1A_U10, IE1A_U06, IE1A_U17 Execution of a project,
Execution of laboratory classes
Knowledge
M_W001 zna podstawowe zasady obiektowego paradygmatu programowania oraz tworzenia kodu dla środowiska zarządzanego (maszyna wirtualna) IE1A_W24, IE1A_W12, IE1A_W21 Examination,
Execution of exercises,
Execution of laboratory classes
M_W002 zna podstawowe klasy pozwalające na łatwą agregację obiektów (kolekcje oraz kolekcje generyczne) IE1A_W24, IE1A_W11, IE1A_W12, IE1A_W21 Examination,
Execution of a project,
Execution of laboratory classes
M_W003 zna i rozumie podstawowe mechanizmy programowania obiektowego: abstrakcję, hermetyzację, dziedziczenie i polimorfizm IE1A_W24, IE1A_W12, IE1A_W21 Examination,
Execution of laboratory classes,
Test results
M_W004 zna podstawowe zasady tworzenia graficznego interfejsu użytkownika (GUI), programowania sterowanego zdarzeniami oraz podstawowe elementy dla formatek ekranowych IE1A_W24, IE1A_W11, IE1A_W12 Project,
Execution of exercises,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 potrafi pracować w zespole i rozwiązywać problemy związane z realizacją projektu oraz prezentować wyniki zespołu - - - - - - - - - - -
M_K002 ma świadomość ciągłej potrzeby dostosowywania swojej wiedzy do zmieniających się języków i środowisk programistycznych - - - - - - - - - - -
M_K003 Potrafi samodzielnie nauczyć się innego języka programowania opartego o paradygmat obiektowy - - - - - - - - - - -
Skills
M_U001 potrafi wykorzystać środowisko programistyczne (np. Visual Studio, NetBeans) w celu edycji kodu, jego kompilacji, usuwania błędów oraz projektowania GUI - - - - - - - - - - -
M_U002 potrafi wraz z zespołem zaprojektować, a następnie utworzyć aplikację zgodną z określonymi wymaganiami funkcjonalnymi - - - - - - - - - - -
M_U003 potrafi utworzyć obiektowy model problemu, określić klasy, ich odpowiedzialność oraz związki pomiędzy klasami - - - - - - - - - - -
M_U004 potrafi odpowiednio zdefiniować klasy (oraz interfejsy) i zapisać ich kod w języku C# lub Java, wykorzystując specyfikę języka - - - - - - - - - - -
Knowledge
M_W001 zna podstawowe zasady obiektowego paradygmatu programowania oraz tworzenia kodu dla środowiska zarządzanego (maszyna wirtualna) + - - - - - - - - - -
M_W002 zna podstawowe klasy pozwalające na łatwą agregację obiektów (kolekcje oraz kolekcje generyczne) + - - - - - - - - - -
M_W003 zna i rozumie podstawowe mechanizmy programowania obiektowego: abstrakcję, hermetyzację, dziedziczenie i polimorfizm + - - - - - - - - - -
M_W004 zna podstawowe zasady tworzenia graficznego interfejsu użytkownika (GUI), programowania sterowanego zdarzeniami oraz podstawowe elementy dla formatek ekranowych + - - - - - - - - - -
Module content
Lectures:

Pojęcie paradygmatu. Paradygmat imperatywny, funkcyjny, logiczny (deklaratywny) oraz obiektowy.
Pojęcie abstrakcji, klasy i obiektu. Odpowiedzialność klasy. Metodyka Class-Responsibility-Collaboration (CRC). Definiowanie klas w C#/Java.
Podstawowe mechanizmy paradygmatu obiektowego: hermetyzacja, polimorfizm, związki pomiędzy klasami, dziedziczenie i interfejsy.
Kolekcje i kolekcje generyczne. Iteratory i pętla foreach. Serializacja obiektów.
Programowanie oparte o zdarzenia i tworzenie GUI. Mechanizm delegatów w C#/ Obsługa zdarzeń w Java. Komponenty Windows Forms / Java Swing.
Testowanie i dokumentacja kodu. Testy funkcjonalne i testy jednostkowe. Typy dokumentacji. Wspomaganie dokumentacji kodu w środowiskach programistycznych.

Project classes:
-
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 127 h
Module ECTS credits 4 ECTS
Participation in lectures 14 h
Participation in project classes 28 h
Preparation for classes 14 h
Realization of independently performed tasks 28 h
Completion of a project 7 h
Preparation of a report, presentation, written work, etc. 7 h
Examination or Final test 1 h
Participation in e-learning classes 14 h
Contact hours 14 h
Additional information
Method of calculating the final grade:

Ocena końcowa wystawiana jest przez prowadzącego wykład jest jako średnia z oceny z egzaminu (waga 0,6) oraz oceny z ćwiczeń projektowych (waga 0,4). Ocena z ćwiczeń projektowych wystawiana jest na podstawie ocen uzyskanych z kolokwiów (waga 0,5) oraz oceny z projektu (waga 0,2) i ćwiczeń e-learningowych (waga 0,2).

Prerequisites and additional requirements:

Wymagana znajomość podstaw programowania strukturalnego.

Recommended literature and teaching resources:

Literatura podstawowa:
1. B. Meyer: Programowanie zorientowane obiektowo, Helion, Gliwice 2005
2. J. Liberty: C#. Programowanie, Helion, Gliwice 2006
3. C.S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice 2013
4. MSDN Library Visual C#: http://msdn.microsoft.com/en-us/library
5. Java Platform Standard Edition 7 Documentation: http://docs.oracle.com/javase/7/docs/
Literatura dodatkowa:
1. A. Boduch: Wstęp do programowania w języku C#, Helion, Gliwice 2006
2. M. Lis: C#. Ćwiczenia. Wydanie II, Helion, Gliwice 2006
3. K. Rychlicki-Kicior: C#. Tworzenie aplikacji graficznych w .NET 3.0, Helion, Gliwice 2007
4. M. Lis: Praktyczny kurs Java, Wydanie III, Helion, Gliwice 2011

Oprogramowanie
1. Microsoft Visual Studio z zainstalowanym językiem C# (lub Mono)
2. Środowisko Java SDK (zalecane NetBeans lub Eclipse)

Scientific publications of module course instructors related to the topic of the module:

Analizy komputerowe i metody obliczeniowe w inżynierii produkcji — [Computer aided analysis and computational methods in production engineering] / Piotr ŁEBKOWSKI, Iwona SKALNA, Jerzy DUDA, Bartłomiej GAWEŁ, Katarzyna GDOWSKA, Elżbieta Indyk, Marcin Klimek, Antoni KORCYL, Roger KSIĄŻEK, Marek MAGIERA. — Kraków : Wydawnictwa AGH, 2013

Parallel execution in metaheuristics for the problem of solving parametric interval linear systems / Jerzy DUDA, Iwona SKALNA // W: Parallel Processing and Applied Mathematics : 9th international conference, PPAM 2011 : Torun, Poland, September 11–14, 2011 : revised selected papers, Pt. 2 / eds. Roman Wyrzykowski, [et al.]. — Berlin ; Heidelberg ; Springer-Verlag, cop. 2012

Additional information:

None