Introduction to Java Programming Language

Data is displayed for academic year: 2023./2024.

Course Description

Java as a programming language. Java as a processor independent platform. Classes and objects - inheritance, polymorphism, encapsulation, hiding. Java collection framework - sets, lists, trees, stacks, queues, maps. Java Generics. Multithreading and multithreaded applications. Synchronization problems and synchronization techniques (mutexes, semaphores, barriers). Design and development of applications with graphical user interface: AWT and Swing; usage of existing and development of custom components. MVC paradigm. Test Driven Development (TDD). Working with files and file systems. Data streams. Distributed applications (java.net packet). Usage of UDP and TCP protocol. HTTP protocol. Design of Web applications. Java Servlets and Java Server Pages (JSP). Web forms. Apache Tomcat. Security in Web applications. Advanced technologies: ANT, Hibernate, MySQL. Working with relational databases. Mapping and storage of objects into relational databases (O/R mapping).

Study Programmes

University undergraduate
Skills (4. semester) (6. semester)
Skills (4. semester) (6. semester)
[FER2-HR] Computer Engineering - module
Skills (6. semester)
[FER2-HR] Computer Science - module
Skills (6. semester)
[FER2-HR] Computing - study
Skills (4. semester)
[FER2-HR] Control Engineering and Automation - module
Skills (6. semester)
[FER2-HR] Electrical Engineering and Information Technology - study
Skills (4. semester)
[FER2-HR] Electrical Power Engineering - module
Skills (6. semester)
[FER2-HR] Electronic and Computer Engineering - module
Skills (6. semester)
[FER2-HR] Electronics - module
Skills (6. semester)
[FER2-HR] Information Processing - module
Skills (6. semester)
[FER2-HR] Software Engineering and Information Systems - module
Skills (6. semester)
[FER2-HR] Telecommunication and Informatics - module
Skills (6. semester)
[FER2-HR] Wireless Technologies - module
Skills (6. semester)
University graduate
[FER3-HR] Computing - study
Skills (2. semester)
[FER3-HR] Electrical Engineering and Information Technology - study
Skills (2. semester)
[FER3-HR] Information and Communication Technology - study
Skills (2. semester)
[FER2-HR] Computer Engineering - profile
Skills (2. semester)
[FER2-HR] Computer Science - profile
Skills (2. semester)
[FER2-HR] Control Engineering and Automation - profile
Skills (2. semester)
[FER2-HR] Electrical Engineering Systems and Technologies - profile
Skills (2. semester)
[FER2-HR] Electrical Power Engineering - profile
Skills (2. semester)
[FER2-HR] Electronic and Computer Engineering - profile
Skills (2. semester)
[FER2-HR] Electronics - profile
Skills (2. semester)
[FER2-HR] Information Processing - profile
Skills (2. semester)
[FER2-HR] Software Engineering and Information Systems - profile
Skills (2. semester)
[FER2-HR] Telecommunication and Informatics - profile
Skills (2. semester)
[FER2-HR] Wireless Technologies - profile
Skills (2. semester)

General Competencies

Students will be able to develop desktop and web applications using Java programming language. They will be able to use built-in data collections, work with files, develop graphical user interface and employ multithreading. They will be able to write distributed applications which communicate by computer network. They will be able to combine application with relational database and use O/R mappers. They will understand internal working of web application and will be able to create them.

Learning Outcomes

  1. create programs using Java programming language
  2. use Java collection framework for data organization and work with files
  3. develop graphical user interface using Swing
  4. apply multithreading
  5. combine Java application and relational database and use O/R mappers
  6. construct web-servers and use Servlet and JSP technologies for construction of web applications
  7. develop distributed applications which communicate by computer network

Forms of Teaching

Lectures

Will be held in computer laboratories so that students can work out presented examples and solve given course tasks.

Exams

Students will be given a series of problems to solve as part of regular homeworks. At the end, an individual student project will be given which is mandatory for positive grade.

Week by Week Schedule

  1. Introduction. Java as programming language, Java as platform. First program
  2. Classes and objects. References
  3. Test-driven development
  4. Java collection framework (1)
  5. Working with files
  6. Java collection framework (2)
  7. Multithreaded applications
  8. Swing (1)
  9. Swing (2)
  10. Distributed applications. java.net package
  11. Web applications
  12. Web forms. Tomcat servlet container. Web security.
  13. Additional technologies (ANT, Hibernate, MySQL)

Literature

Marko Čupić (2007.), Materijali za Java tečaj,
Kent Beck (2006.), Test-Driven Development, By Example, Addison-Wesley, Boston
(.), Tutorijali s http://java.sun.com/,
Bruce Eckel (2002.), Thinking in Java, 3rd Edition (Free electronic book), Prentice-Hall

For students

General

ID 38047
  Summer semester
4 ECTS
L0 English Level
L1 e-Learning
60 Lectures
0 Seminar
0 Exercises
15 Laboratory exercises
0 Project laboratory
0 Physical education excercises

Grading System

Excellent
Very Good
Good
Sufficient