Module also offered within study programmes:
General information:
Name:
Advanced Java Programming
Course of study:
2017/2018
Code:
IES-1-710-s
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
First-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
7
Profile of education:
Academic (A)
Lecture language:
English
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr inż. Orzechowski Tomasz Marcin (tomeko@agh.edu.pl)
Academic teachers:
dr inż. Orzechowski Tomasz Marcin (tomeko@agh.edu.pl)
Module summary

This module is intended to provide students who has some computing experience in Java programming.

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 Student cooperates with others in solving problem issues ES1A_K04 Project,
Execution of a project
M_K002 Student understands necessity of continouos self-learning ES1A_K01 Project,
Execution of a project
Skills
M_U001 Student practically uses the knowledge of the stages of software development. ES1A_U04, ES1A_U01 Execution of a project,
Project
M_U002 Student implements advanced Java applications using different Java packages. ES1A_U24 Project
Knowledge
M_W001 Student knows and understands advanced elements and mechanisms of object oriented programming language ES1A_W08 Activity during classes,
Project
M_W002 Student has knowledge about software engineering process - models and stages. ES1A_W08 Project,
Activity during 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 Student cooperates with others in solving problem issues - - - + - - - - - - -
M_K002 Student understands necessity of continouos self-learning - - - + - - - - - - -
Skills
M_U001 Student practically uses the knowledge of the stages of software development. - - - + - - - - - - -
M_U002 Student implements advanced Java applications using different Java packages. - - - + - - - - - - -
Knowledge
M_W001 Student knows and understands advanced elements and mechanisms of object oriented programming language + - - - - - - - - - -
M_W002 Student has knowledge about software engineering process - models and stages. + - - - - - - - - - -
Module content
Lectures:
  1. Organizing classes (1h)

    - discussing the rules and validation
    - important information about individual projects and terms

  2. Software Engineering  –  Software Process and Software Process Models (1h)

    Presentation of different Software Development Life Cycle (SDLC):
    - Software development lifecycle methodologies: Agile, DevOps, Iterative, Lean, Spiral & Waterfall
    - 4 important software process activities: Software specification, Software design and implementation, Software verification and validation & Software evolution

  3. GUI development with NetBeans (4h)

    - NetBeans – Installation and Configuration
    - SWING Components in Practise
 in NetBeans
    (JButtons, Images, Look&Feel, Presenting HTML Content)
    - Introduction to JavaFX

  4. Sequential and Associative Collections (1h)

    - Presentation of differencies and similaritites beween Sequential and Associative Collections
    - Collection, List and Set interfaces
    - The use of ArrayList, HashSet, TreeSet
    - Map, TreeMap and HasMap in practise
    - Sorting elements in Collections

  5. Distributed Programming (2h)

    - JavaIDL vs RMI
    - Introduction to JADE

  6. The Java 8 Advantages (1h)

    - The use of Lambda Expressions 
(Syntax, Scope, Method references, Functional Interfaces)
    - The use of Default Methods
    - Streams

Project classes:
  1. Selection the topic to be implemented

    - detailed discussion about chosen task.
    - the work plan and the relevant elements to be evaluated.

    Possibilities:
    1. Development of a graphical application using Swing or JavaFX, allowing to process data from the Internet (parsing) and present it, using selected components.
    2. Development of a distributed application based on RMI or JavaIDL
    3. Development of a distributed application using the JADE agent platform.

  2. Software specification – the analysis stage

    student’s presentation:
    - understanding the essence of the problem;
    - analysis of selected tools

  3. Software design

    student’s presentation:
    - system structure,
    - components and relationships between components,
    - interfaces

  4. Software implementation phase and validation

    - demonstration of alpha and beta versions of the application
    - testing the application with an intention of finding bugs
    - improved the application performance

  5. Final evaluation

    - final evaluation of practical work

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 80 h
Module ECTS credits 3 ECTS
Participation in lectures 10 h
Participation in project classes 20 h
Completion of a project 50 h
Additional information
Method of calculating the final grade:

Following elements are considered when the total grate is calculated: the analysis of the received programming problem, correct presented project of the application, presentations of alpha and beta versions of the application, validation of the application by carrying out appropriate tests.

Positive evaluation can only be obtained when the final result is a properly functioning application that is accompanied by appropriate documentation.

Prerequisites and additional requirements:

Students are expected to have previous programming experience in Java Programming.

Recommended literature and teaching resources:

1. Cay S. Horstmann and Gary Cornell, Core Java II – Advanced Features, ISBN-10: 0134177290
2. Online documentation: Java 8 API: https://docs.oracle.com/javase/8/docs/api
3. Java Tutorial: https://docs.oracle.com/javase/tutorial

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

Additional scientific publications not specified

Additional information:

None