First YearSecond YearThird YearFourth YearOthers

Simple video games

A set of simple single player games. We were a group of four and we made three games: Dominos, BlackJack and Arkanoid). These games were selected carefully to gain experience in some programming techniques. From Dominos we learnt displaying the pieces and turning the round between players. We made simple AI strategies in the BlackJack game. The Arkanoid game was a real time game which needs some synchronizing techniques.

Source code: not avaialable.
Binary files: not available.


First YearSecond YearThird YearFourth YearOthers

Basic Data structures

Implementation of basic data structures using C language. These data structures are: sparse matrix, Linked List, Linked Queue.

Source code: download
Binary files: not available.


Source code: download
Binary files: not available.

Applications for Data Structures

Some applications that use the data structures implemented previously. The applications include Mail Server (don't be fooled with the name), Arithmatic Parser and Huffman Compression/Decompression.


Graphics Algorithms

Simple algorithms that are used extensively in graphics. Algorithms are Bresenham (mid-point) line algorithm, Bresenham (mid-point) circle algorithms and Bezier curves.

Source code: download
Binary files: not available.


Source code: not avaialable.
Binary files: not available.

Signal Flow Graph

This program is an implementation for the Signal Flow Graph algorithm originally invented by Mason. The program is used to find the transfer function (gain) between two nodes in a system modeled by a graph. The program was coded in the C language. I have made this program with one of my colleagues (namely Mohamed Nashat), so I will not be able to put the program here till I get his approval.


Root Locus

This program was also made for the Automatic Control. It is used to find the locus of all roots for a rational function changing with the absolute term k in the denominator. The program was made using Visual C++ 6.0. However, it was purely C language; no OOP techniques was used. This program was shared with my colleague Ahmed Aglan, so ,again, I will not be able to publish it here without his approval.

Source code: not avaialable.
Binary files: not available.


Source code: download
Binary files: download

IBM 360 Assembler

As a part of the system programming course, we have made an assembler for a subset of the IBM 360 assembly language. It was made using C language for fast assembling.


First YearSecond YearThird YearFourth YearOthers

Search Algorithms

An implementation for most well known search algorithms in array.
For unsorted list: Sequential Search, Fast Sequential Search and Self-Organizing Search (Move-to-front and Transpose).
For sorted list: Sequential Search, Binary Search, Ternary Search, Interpolation Search and Random Search.

Source code: download
Binary files: download


Source code: download
Binary files: download

Telephone Book

This program is an implementation for the AVL tree. It stores telephone entries in an AVL tree and implement some operations like: add, edit, delete and find. The program is made with Borland C++ Builder 5.0.


Sorting Algorithms

This is an implementation for may sorting alogrithms. They are made with Borland C++ Builder 5.0. A comparison is made between them by the means of displayed bars. The implemented algorithms are: Selection sort, Insertion sort, Bubble sort, Shell sort, Merge sort, Heap sort and Quick sort.

Source code: download
Binary files: download


Source code: download
Binary files: download

Graph Algorithms

In this program I implemented many basic algorithms for directed and undirected graphs. Again the program is made with Borland C++ Builder 5.0. There is GUI to be able to add nodes, move it around and implement some algorithms.
Implemented algorithms for directed graphs: Find source, sink and root nodes. Find shortest paths using Dijkstra's and Floyd's.
Implemented algorithms for undirected graphs: Find a cycle, all bridges in the graph and minimum cost spanning tree using Kruskal's and Prim's. Find shortest paths using Dijkstra's and Floyd's.


Symbol Table Construction using Hashing Techniques

This program is an application for hashing techniques. This time it is programmed using Visual C++ and the GUI is made using Visual Basic. Hashing techniques used are: External Chaining, Open Addressing using Linear Probing, Open Adressing using Psuodo-Random Probing, Open Addressing using Quadratic Residue Search, Open Addressing Using Double Hashing.

Source code: download
Binary files: download


Source code: not avaialable.
Binary files: not available.

Subset of MIPS processor

In architecture course we designed a processor that is based on MIPS architecture. The processor was made using pipelining. It was tested and simulated using Xilinx.


First YearSecond YearThird YearFourth YearOthers

Student Registeration System

In DBMS (Database Management System) course, the term project was a Student Registeration System for the faculty. A student can register for courses for the next term. Professors can enter final grades for the courses assigned to each one. A student can view a status report with the courses he has finished.
The system was designed and implemented using Oracle 8i. The forms and reports were developed using Oracle Designer 6i.

Source code: download
Binary files: not available.


Source code: download
Binary files: download

Simulation to Bank System

In Internet Programming course we have studied Java as a language for internet. We have taken an assignment about threading in Java. We were asked to simulate to queue systems and analyze the differences.


First YearSecond YearThird YearFourth YearOthers

New Arkanoid

New Arkanoid is a brick-out clone using Pascal. It supports different levels. You can buy some items to use during the game play. See the New Arkanoid page for more details.

Source code: download
Binary files: download


Source code: download
Binary files: download

Haridy Columns

This game is a mixture of puyo-puyo and columns. You have to arrange the colored blocks in order to form a line of three similar colors. See the Haridy Columns page for more details.


Root Locus

This program was first made during the 2nd year class. It was made using C language under Visual Studio 6. After that I found it will be good to remake it using OOP techniques under different IDE (Borland C++ Builder 5). You can see the Root Locus page for more details.

Source code: download
Binary files: download


Source code: download
Binary files: download

CD Builder

I have made this program for my own sake. I wanted to backup my hard disk on CDs. No problem with that, but the files I wanted to put were larger than one CD. So, I had to split them on many CDs, and this is the job of CD Builder. You can drag and drop the files and/or folders you want to burn from your computer to this program, then it will automatically split them on different CDs trying to minimize the total number of CDs and maximize the utilization of each CD.
The program was made with Java, and I found it a good chance to learn about many features in Java GUI building. I learnt Drag'n'Drop and many other features in Swing.


Database for library

While I was training at the Informatics Technology Institute in Mubarak City, I made a database for the library with another trainee (Mahmoud El-Komi). We used the MS Access for the database and Visual Basic to build the GUI.
Of course the source code and binary files will not be available as it is not mine :).

Source code: not avaialable.
Binary files: not available.