# project idea ???

I am looking for an innovative project idea ..... related to program or algorithm development ...can anybody suggest some ???  Anything interesting that can be explored in Data Structures... (I have knowledge of C/C++ )... Any idea on some existing Algorithm which can be improved may also do....

thanks in advance !!!!!  (prompt response might be of greater help)
###### Who is Participating?

x

Commented:
project that i did which explored both of those, is a smart fibonacci algorithm

what i mean by this, is write a recursive structure, which has the ability to save its values and look them up later

so when you figure out what fib(n) is, you can use that as a base case.

why this is good for both, since the fib() function has the algorithm efficiency of 2^n, you can see how much it helps the effiency, plus you can implement your data structure with a linked list, which is a more advanced data structure.

if youre not sure what any of the terms are i explained, let me know, id be glad to explain it in more detail.

~b
0

Commented:
Trying to parse and calculate an expression is fun and tricky.

4 + 2

Is simple enough, but how do you handle:

12 * ( 4 + 1 ) / 10

You have to account for order of operations and stuff.

One of the textboxes I used to learn programming converted everything to postfix notation then used stacks to run through the expression and arrive at the final result. It was pretty neat. I've heard of people doing this with binary trees also.
0

Software ArchitectCommented:
Any kind of collaborative process using UDP or TCP sockets always is a good idea, so you can create "supercomputers" based on dozens or hundreds of pcs with the proper network interface software and some core calculus functionality.
0

Commented:
You could write a scripting language, that could accept values from a database ( a comma or tab delimited text file). Consider a text file with columns and rows:

ID, X, Y
1, 300, 200
2, 700, 1000
etc

A template xml file as follows:
<test>
<id>@ID</id> // the column name
<x>@X</x>
<y>@Y</y>
</test>

the program should accept the text file as input, the xml as a template and create 2 xml files called <@ID>.xml, ie, 1.xml and 2.xml. The values from the text file should be used to fill each xml, eg
1.xml should look like:
<test>
<id>1</id> // the id from first record is inserted here
<x>300</x> // the x value first record is inserted here
<y>200</y> // the y value first record is inserted here
</test>

Think about it, you could use expressions to evaluate to fill the output file, example instead of @X, you could specify (@X + 5000)*(@Y^3)/@ID...and so on. The template could be any file (not necessary xml) All you have to do is replace the expression with the appropriate values from the database. The database could even be an access or dbf or even a table in sql or oracle.
Another example.
Consider a text file with names of directories to delete as in

Folder
c:\temp
c:\abcd
c:\efgh

You could have a template that looks like this
echo "deleting folders"
[Records]
del @Folder
[Footer]
echo "folders deleted"

The output batch file would look like
echo "deleting folders" // the header
// the records
del c:\temp
del c:\abcd
del c:\efgh
// the footer
echo "folders deleted"

you could specify the output file name in the command line, or use a variable to specify different files (eg @ID.xml as the output file)

0

Commented:
When I said "textboxes" I meant "textbooks". :-D My fingers have a mind of their own after a long day of coding!
0

Author Commented:
...evaluating postfix expr. , it's all around , nothing innovative

...someciuriousguy.... ur idea went over my head.. u apparently r suggesting use of oracle etc. which , presently ,I  have no knowledge of!!

...jaime_olivares... ur idea was not too explanatory would like u to shed some light

...I am not satisfied .want more ideas.....something in direction of algorithms or data structures , if programming...any other innovative idea(but not too complex ) is also welcome
what abt digital watermarking ...is it doqable in short time of 15 days with not much knowledge of background of it!!!
0

Commented:
look at it this way.
A program to generate thousands of similar files by using values from a comma delimited text file. This text file is like a table with columns and rows. Each output file gets it value from a single record in the text file. So if you have a 1000 records in the text file, you will get a thousand output files, where all output files are similar except the values in them. So the input to the program would be the text file and the sample file, of which the output files are to be generated. The program will read the first record from the text file, fill the variables in the sample file from the values of the first record, and create an output file. Then it reads the second record, and creates a second file, etc. Now go back to the xml sample and see if you can understand it.

Dont worry about the second sample. If you can understand the first sample, you should be able to figure out the second one.

If you understand the text file as a table, you could in future substitute the text file with another table, like an access, sql or oracle table.

Hope this helps :)
0

Commented:

Why not you try for a innovative algorithms like Genetic Algorithms for Optimizations.
You try to optimize some traditional problems like TSP.
All the best.
0

Commented:
speaking of algorithms..

maybe you could do something that would accept inputs in the form of formulas (eg. n(n*2)/2)
and calculate the notations, the BIg Oh's, Big Omega's, etc.. and graph them visually... :) and calculate the best cases, average and worst cases, that kind of project could be more challenging..
0

Commented:
How about recreating the functionality of an advanced graphing calculator (including solving algebraic expressions, calculus limits, etc)?
0

Commented:
Or build your own language and/or optimizing compiler (which typically makes heavy use of data structures).
0

Author Commented:
any more suggestions ???
0

Ideator Commented:
how about designing a DB using multiple different RDMS, attaching them to a front end, and then produce reports on a form that showed the performance differences (seektime, sort speed, query retrival etc.) between them all, you could also show the performance difference between the various RDMS and local vs networked DBms' . That would be interesting...especially to see the different stats that you could produce and all the different visual ways to represent the data

-- croag
0

Commented:
You didn't share your sill level but here are a few random ideas.

Writing simple games is usually a great way to stretch your programming muscle. If you are coding in C, you will have a lot of opportunities to use variety of data structures and algorithms.

If you have some TCP/IP skills, you could explore network mapping (for LAN should be fairly simple). Having a program Generate network diagrams on the fly can be fun and educational especially if you like working with tree structures.

If you want to play with strings and search algorithms, a simple AI simulation could be fun. You could ask computer a question and try to simulate intelligent responses. Of course, you would want to stick with a very narrow topic or you could spend a lifetime on this.

Try writing a robot that searches for certain kind of informaton on the Internet.

Write a spam filter.

If you like playing with images (you mentioned watermarks) try scanning some documents with randomly placed bar codes and have a program that will locate the bar code on the document and read it. Make it more complex by trying to locate other fields such as SSN etc.

I could go all night. What's important is that you are having fun and challenging yourself at the same time.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.