Introduction to Java Programming Language

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).

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)

Study Programmes

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

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

Lecturers in Charge

Grading System

ID 38047
  Summer semester
4 ECTS
L0 English Level
L1 e-Learning
60 Lecturers
0 Exercises
15 Laboratory exercises

General

Excellent
Very Good
Good
Acceptable