Samples of my work

General Projects and Documents


Elementary Proofs: Mathematical Induction

A short tutorial on Mathematical Induction. This is a method commonly used to proove the validity of equasions. It is a very important method in Computer Science.
View Mathematical Induction

Sorting Strings

An short document on how to apply the sorting algorithms shown on this site to sorting a vector of strings, using strcmp() and stricmp(). This document uses "Bubble Sort" as it's example.
View Sorting Strings the easy way

Introduction to Pointers

An introduction to pointers. Covers declaration, de-refrencing, arithemetic, arrays, and addressing. Geared towards C or C++ users.
View Pointer Tutorial.

Linked List Tutorial

An introduction to Linked Lists. A definition of what a linked list is, how it works, and elementary linked list functions (the "set and get" functions), both singly and doubly linked lists are covered. Examples in pseudocode and C++.
View the Linked List Tutorial

Hashing and Hash Tables

A comprehensive introduction to hash tables written by myself. Covers the definition of a hash-table, computing the hash function, simple uniform hashing and a complexity analisys. Source code in C++ and an example to follow.
View Hashing and Hash Tables

Windows/PC


Recursive programming in Assembly Language

This is an example of a recursive programming in AL, and a full working example is given (the fibonacci sequence). It covers how to read off the stack arbitrarily, allocate dynamic memory on the stack and how to access parameters from the stack.
View Recursive Programming in AL

Ackermann's Function

This is an interesting function - it grows very large, very quickly. It is used to test the recursive ability of compilers - in the parameter list to the function, there is a call to the function itself. Run it and see what I mean - here is some sample output (from APL):
ack(4,0) = 13
ack(4,1) = 65535
ack(4,2) = 265535-3
ack(4,3) = 2265535-3
(be warned - it took my Machine Structures professor all weekend to come up with the last value on the alpha at the University!)
Requires: 486 running Windows 95
Reccomended: The fastest computer you can possibly find
Click here to download ackermann.cpp
Click here to download ackermann.exe

Better Heapsort

This version of the heapsort algorithm uses an array to represent a heap. It runs in O(nlogn) time, which is good (but not the "ultimate" sort by any means!). I wrote this for extra marks in Data Structures.
Download heapsort.cpp
Download Executable for MS-DOS

QuickSort

I was just exploring "efficient sorting algorithms" and aside from the Radix sort (which runs in constant time), there is the QuickSort algorithm. This version of the QuickSort is in C++ and the testing program runs with 20 integers. It can be changed to handle almost any datatype though.
Required: ANSI C++ compiler, a computer
Download QuickSort
Download Executable for MS-DOS

Merge Sort

Yet another sorting algorithm, not quite as fast as QuickSort, but faster than O(n^2).
Required: ANSI C++ compiler, a computer
Download MergeSort

Hex To Decimal

This was an assignment given to us in Machine Structures. It converts a Hex digit (0-F) to a decimal digit.
Required: 8086 (I guess), Dos or Windows 95
Download the executable (VERY SMALL!)
Download the source code

Fibonacci Calculator

I wrote this origonally to measure the time it would take my Amiga to figure out Fib(40) (about 20 minutes ;), but I decided to run it on the PC too - not much faster! Fibonacci {Fib(n)} numbers are the sum of Fib(n-1)+Fib(n-2), if n is > 2, otherwise n is returned. Of course, this is a recursive function and runs in O(nlogn) time (I think - not sure).
Download Fibonacci
Download Source Code

Character Linked List

Not so much of a program rather than a class for C++. A linked list is a form of Array that allows for dynamic allocation quite easily. To get an idea of how it works, look at the header file (charlist.h) to see how it functions. Also, look at the sample program that uses it (lexico.cpp). The linked list runs in approx. O(N^2), and lexico runs in O(N) time.
Download Character Linked List Header File
Download Character Linked List Source File
Download Lexicographical Character Program

Amiga


SuperClock V2

This is a clock program that I designed in C++. It's unique because it uses an array of images as the numbers (it's a digital clock). I did the numbers in Photoshop 4, and used Personal Paint to convert them to C Source code. NB: You need AGA to run this clock since it opens on a 32 color HIRES or DoubleNTSC screen.
Required: AmigaOS 3.0+, 60K Free Chip RAM, AGA or Graphics Card, M68020.
Click here to download SuperClock
Click here to view the README file

Star Animation

An animation I did using ImageFX's Arexx Port. It's simply a radial star that grows and shrinks. I thought I would include it here since it is kind of neat.
Required: AGA, Animation Player
Click here to download Stars.lha

Slides from Pyramid Systems

In college, I did a systems project with other students. We had to do presentations, and while everyone was using PowerPoint, we used Scala on my A1200 (and it looked a heck of a lot nicer than Powerpoint). These are the slides we did. It includes all animations, backdrops, Entity Relationship Diagrams and Data Flow Diagrams.
Required: AGA/Graphics Card, SCALA or IFF Picture Viewer
Click here to download Pyramud_sys.lha (3.5MB)
Click here to view .readme file

Klondike III Cardset - DanKovacs.reko

This is a 256 color cardset designed for use with the great amiga solitaire game "Klondike III". It's the first set I ever did, and has photos of me, my fiancee, and some friends in it.
Required: Amiga, 68020 Min. 2Mb RAM, AGA or graphics card.
Click here to download Dankovacs.lha

Klondike III Cardset - kovacs.reko

This is another cardset designed for use with Klondike III. This one is very much like my first one, but is in HAM8 (262,144 colors). A better color resolution means better looking cards - and these ones are the best.
Required: Amiga, 68020 Min. 2Mb RAM, AGA or graphics card.
Click here to download kovacs.lha

Klondike III Cardset - bbw.lha

This is my newest set of cards - compiled from images collected from alt.binaries.pictures.erotica.plumpers and alt.sex.fetish.fa. This is about the best looking set I have done - mainly since the quality of the images are better than in my other sets and they where rendered directly to HAM8. This cardset contains images which may not be suitable for younger users.
Required: Amiga, 68020 Min. 2Mb RAM, AGA or graphics card.
You can download BBW.lha by clicking here.

HAM Workbench: Display Patches for Workbench 3.0+

Ham Workbench (HamWB) is a set of patches that force Workbench to run in HAM. I got the idea for this from wbhacksaga.lha, a file I had received from a borrowed cover disk. It is useful for web browsing, since it is about 90% compatible with the internal image-decoders in IBrowse, although you will have to fiddle with the settings.
Required: Amiga, 68000 Min. 2Mb RAM, AGA or graphics card, Workbench 3.0
You can download HamWB.lha by clicking here.

You can view the readme by clicking here.

TimeList: Amiga Usage Monitor

I had a real difficult time deciding on a name for this nifty little utility. I was sitting at home one night, (obviously) very bored and wrote this little program. It records when the last time your amiga was booted, and will test to see if the internal clock was changed (some games and demos reset my internal clock). I don't know how reliable that feature is (it has worked for me every time).
Required: Amiga, 68000 Min. Workbench 1.3.
You can download timelst.lha by clicking here.

You can view the readme by clicking here.

Back to top