Advanced Programming

Advanced Programming

Code: 40731
ECTS: 6.0
Lecturers in charge: izv. prof. dr. sc. Maro Cvitan - Lectures
Lecturers: Maro Cvitan - Laboratory exercises
Take exam: Studomat
Load:

1. komponenta

Lecture typeTotal
Lectures 30
Laboratory exercises 30
* Load is given in academic hour (1 academic hour = 45 minutes)
Description:
COURSE GOALS: Raise the level of knowledge of object oriented programming using exception handling, design patterns, as well as basic elements of SWING library for creating user interface.

LEARNING OUTCOMES AT THE LEVEL OF THE PROGRAMME:
1. KNOWLEDGE AND UNDERSTANDING
1.5. describe the purpose and use of common software packages;
1.6. list and describe the methods for manipulating data, basic principles of databases and fundamental algorithms in programming;
2. APPLYING KNOWLEDGE AND UNDERSTANDING
2.1. identify and describe important aspects of a particular physical phenomenon or problem;
2.2. recognize and follow the logic of arguments, evaluate the adequacy of arguments and construct well supported arguments;
2.8. prepare pupils for lifelong learning in digital environment;
4. COMMUNICATION SKILLS
4.4. use the written and oral English language communication skills that are essential for pursuing a career in physics, informatics and education;
5. LEARNING SKILLS
5.1. search for and use professional literature as well as any other sources of relevant information;

LEARNING OUTCOMES SPECIFIC FOR THE COURSE:
Upon completing the course, students will be able to:
* develop simple software using java programming language together with SWING library
* use java instructions that enable handling of exceptional events (exception handling)
* use programming patterns of the following types: Strategy, Observer, Factory, Decorator, Singleton
* use professional literature as well as any other sources of relevant information, with emphasis on internet

COURSE DESCRIPTION:
Content by week:
1. Java and object oriented programming: basic elements
2. Java and object oriented programming: classes and objects
3. Java and object oriented programming: handling of exceptions
4. Java and object oriented programming: principles of object oriented programming
5. Java and object oriented programming: interfaces, abstract classes
6. Java and object oriented programming: specifics of working with various data types (primitive/object, mutable/immutable, static/non-static, private/protected/public)
7. Library SWING, basics (JFrame, JPanel, JTextField, JButton, paintComponent, BorderLayout)
8. Java and object oriented programming: comparison with python
9. Design pattern: Observer
10. Library SWING and the Observer pattern (various ActionListeners);
Java and object oriented programming: anonymous inner classes
11. Design pattern: Strategy
12. Design pattern: Decorator
13. Programming multithreaded application in SWING environment (SwingWorker) - example animation of projectile motion
14. Design patterns: Factory method and Abstract factory
15. Design pattern: Singleton, double-checked locking algorithm

REQUIREMENTS FOR STUDENTS:
Attending lectures, writing homework assignments and final project assignment.

GRADING AND ASSESSING THE WORK OF STUDENTS:
During semester students deliver homework weekly (65%) and do short tests (10%). At the end of semester they work on a project assignment (25%). Grading by oral exam of solved homework and project. Final mark according to the following thresholds: 40% 2; 55% 3; 70% 4; 85% 5.
Literature:
  1. E. T. Freeman, E. Robson, B. Bates, K. Sierra, Head First Design Patterns, O'Reilly Media, 2004
  2. http://docs.oracle.com/javase/tutorial
  3. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.
Prerequisit for:
Enrollment :
Passed : Object Oriented Programming
5. semester
Mandatory course - Mandatory studij - Physics and Computer Science Education
Consultations schedule:

Repository

Repository is empty

Poll

No polls currently selected on this page!