CPU Simulator

OK, I’m really proud of this one, so beside the school project tag, I’ll label it as a project as well.

It was a part of the “Computer Architecture and Organization” course. I was a part of the team of 5 students (my great friends Marko Mitrović, Marko Ćirić, Jovan Mahaček and David Filipović). We created a Swing based (yup, you’ve guess it, we used netbeans :)) visual simulator of a CPU. Of course, it is an imaginary processor, but it had all the regular parts like registers, memory, buses, flip flops, multiplexers, demultiplexers, coders, decoders etc.

From this point of view, I can’t really imagine how got it to work, with no version control, chatting, project management tools… I could blame our internet providers, and say that we didn’t have no broadband internet. But to be honest, we were aren’t aware of such tools, but we made it work. And surprisingly (almost) after the first try.

Oh yeah, also we had more than 120 pages of required documentation. Good times, great stuff!

That was back in June 2007.


“What is Smarty, and why should we use it?”

For the class “Business communication and organization” (not sure if the translation is OK), I had to pick a subject, and careful explain it, something like my idea that I should sell to the potential customer. So, going back to my PHP roots, I’ve chosen smarty (at that time version 2) template engine. There I’ve presented all the benefits of separating the presentation from the business layer, and how it then easy to change the view layer at any time. It was pretty cool to write something down and then show it to the world in the traditional way: audiance, projector and myself  :)

The down side is, that it is fully in Serbian Cyrillic and I’m too lazy to translate it, and it is really, really out of date :D

It was in June 2006.

LeakyBucket simlator

Second mini project for the course “Principles of modern telecommunications” was to make a visual simulation of the leaky bucket algorithm. I’ve once again used the netbeans IDE (I was still blown away how great it works, and how it helps me code faster, note: before that I’ve only used JCreator, back at those days, it was notepad with line numbers, and it could compile java files, but didn’t take a look at it since) and it’s great Matisse GUI swing builder. Of course everything in the simulation was configurable .

It was only a couple of weeks after the first task, so it was back in may 2006.

RS232 – serial port

My first contact with serial ports. For course “Principles of modern telecommunications”  I was supposed to connect an electronic diode through a rs232 port to a computer, and make it shine. Simple as that. But the length of the shining and how many times it should shine must be configurable with some kind of software with a GUI.

This was also my first experience with Java’s Swing, and also Netbeans IDE. I was amazed how easy it was to create GUI application with Netbeans’ Matisse.

I’ve finished this mini project in April 2006.

Virtual HDD for C++ kernel

Don’t know how to name it better, anyway, this was a part of “Operating systems 2” class. The goal was to enable the core (kernel) from the first course, to make it work with virtual HDD and to work on caching and optimization algorithms.

Created in june 2006.

Multithreading support for C++

One of my favorite projects during college. It was a part of “Operating systems 1” class (Dragan Milićev was the professor). The goal was to create a multithreading support for C++, with features like context switching, explicit synchronous preemption, asynchronous preemption (caused by an interrupt), time sharing, round-robin scheduling…

It was used as a core for Operating systems 2 class.

This was back in january 2006.