Homeworks from the Introduction to Java programming language course.
Solved six simple problems using Java.
Created a class that is used as a collection interface and a linked list implementation. Created a stack from that linked list using the Adapter design pattern.
- Created a simple lexer with unit test as an example.
- Created a lexer and parser for a script language called SmartScript
- Created another implementation of the String class.
- Using an unmodifiable char array to store the characters.
- Creating substrings in O(1) by using the same character array.
- Using Rabin-Karp algorithm to implement the find method in O(n).
- Created a simple raster drawing app that can draw circles, quadriterals and triangles.
Implemented a simple hash table collection. The hash table uses linked lists in case of multiple values having the same hash code. Implemented the Iterator design pattern.
- Implemented an IntegerStorage collection that uses the Observer design pattern.
- Created a generic collection that can return the median of the elements in it.
- Created an iterable prime number collection that has a givne number of elements and is able to iterate througt them, without storing them in memory.
- Created a multistack collection that acts as a map and allows to store multiple values with the same key.
- Created a console application that can:
- calculate the SHA checksum of a file and check if it is the same as expectd.
- encrypt a file using AES crypto-algorithm
- decrypt a file using AES crypto-algorithm
- Part 2 of the homework is available once encrypted with part 1.
- Created a command prompt console application that supports the following:
- multiline commands
- cat - prints out the given file
- charsets - lists out names of supported charsets
- copy - copies the source file to the destination path
- exit - exits from the shell
- help - writes down all the commands with their description, provides aditional help for every comand.
- hexdump - prints a hexdump of a given file
- ls - prints the content of the current folder with all the file attributes
- mkdir - creates a folder
- tree - prints a hierarchical view of everything in the current folder and all it's subfolders.
Created a simulation of a CPU writen in Java that is able to execute an assembly language created just for this simulation. Created a few assembly programms like a recursive fibonacci calculation to test everything. Using mockito for unit tests.
- Created a program that draws fractals using Newton-Raphson iteration.
- Created a ray-tracer for rendering of 3D scenes.
- Created a custom layout manager.
- Created a calculator app that supports stack operations.
- Created an app that can create and display bar charts.
Created a simpe Notepad++ clone with the following features:
- create new document
- open document
- save document
- save document as (warn user if the document already exists)
- close document (warn user if it is not saved)
- cut/copy/paste text
- statistical information
- display current date and time
- change language
- display multiple documents in diferent tabs
All features are available from:
- menus
- dockable toolbars
- keyboard shortcuts
The application is translated into 3 languages: English, Croatian and German. The internationalization is done in such a way to enable the user to change the language while using the application, and still enabling the garbage collector to remove unused objects.
Created a webserver that is able to:
- handle HTTP requests
- store cookies
- execute SmartScript scripts (a script language created in homework 3)
- display html pages
- display pictures
Used the Visitor design pattern and Composite design pattern in order to create the engine to execute SmartScript scripts.
Created a few simple web pages with the following options:
- Change the background color
- Calculate the values of sin(x) and cos(x) of all the angles x in a given interval.
- Show a short story with random text color.
- Create a report for a survey about OS usages with dynamically created charts.
- Calculate powers of a given number and download the result as a Microsoft Office Excel document.
Created a database and an web application for surveys. After voting for something in the survey, the app displays the results in a table, displays a pie chart with the result data and allows the user to download the votes as a Microsoft Office Excel document.
Created a web application for a blog using hibernate with second level cashing. The app allows:
- Creating a new user
- Writing a blog post
- Reading a blog post from another user
- Editing a blog post
- Commenting a blog post
Created a search engine and a console application that enables the user to use it. The search engine searches through documents that are in a folder that is given as an argument while starting the application. The console application allows teh user to search for a given phrase and see the most relevant results. He is also able to ead the whole document in the console.
Created a paint application with the following options:
- Choosing the background and foreground color
- Drawing shapes like lines and circles
- Displaying a list of all the objects
- Saving the picture as a .jpeg image
- Saving the picture in a format that can be opened and edited again
- Opening pictures
- Editing objects
Created a simple calculator app that supports sending error reports using e-mail.
Created a single page application for a picture gallery. All pictures are categorized and a single picture can be in multiple categories. Used technologies:
- JavaScript
- AJAX
- jQuery
- CSS