Skip to content

damjanvucina/advanced-java

Repository files navigation

FER Java Programming Course

Introduction to Java Programming Language course held at the Faculty of Electrical Engineering and Computing.

Repository Contents

Assignment Description
hw01 Java programming language. Java Platform. Maven.
hw02 Array and List backed Collection and Stack implementations. Complex number parser. Adapter Pattern.
hw03 Language processor. SmartScriptLexer and SmartScriptParser. TDD.
hw04 Lindermayer system fractals. Koch curve.
hw05 Parameterized Hashtable implementation. Strategy Pattern.
hw06 Observer Pattern. Functional interfaces. Lambdas.
hw07 AES encryption and decryption. Shell Implementation.
hw08 Further Shell improvements.
hw09 Complex polynomials. Newton-Raphson iteration fractals. Ray caster. Parallelization using ForkJoin.
hw10 Custom LayoutManager implementation. Scientific calculator implementation. Bar Chart implementation.
hw11 Swing. Custom Notepad++ implementation. i18n. Singleton and Bridge patterns.
hw12 Multithread HTTP Server. Cookies and sessions support. Support for parsing SmartScripts.
hw13 Servlets and JSP. Apache TomCat.
hw14 JDBC. Derby database. Voting app.
hw15 Hibernate. Persistence. Blog implementation.
hw16-1 TF-IDF document similarity identifier.
hw16-2 Implementation of a Paint-like app with full suport for exporting, rendering etc.
hw17 Front End. AJAX. JavaScript. DOM.
hw18 Introduction to Android development.

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.
  • 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).
  • Basic Android development.

Course Webpage

Introduction to Java Programming Language

Lecturers in Charge

  • doc.dr.sc Marko Čupić

Prerequisites

  • Java >= 9
  • Maven 3.5.3

About

Course held by doc. dr. sc. Marko Čupić @ FER

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages