theory

How do you handle small sets of data?

With really small sets of data, the policy where I work is generally to stick them into text files, but in my experience this can be a development headache. Data generally comes from the database and when it doesn't, the process involved in setting it/storing it is generally hidden in the code. With the database you can generally see all...

Balancing a Binary Tree (AVL)

Ok, this is another one in the theory realm for the CS guys around. In the 90's I did fairly well in implementing BST's. The only thing I could bever get my head around was the intricacy of the algorithm to balance a Binary Tree (AVL). Can you guys help me on this? ...

Could a truly random number be generated using pings to psuedo-randomly selected IP addresses?

The question posed came about during a 2nd Year Comp Science lecture while discussing the impossibility of generating numbers in a deterministic computational device. This was the only suggestion which didn't depend on non-commodity-class hardware. Subsequently nobody would put their reputation on the line to argue definitively for or ...

Simple enough explanation of a Distributed Hash Table (DHT)

Could any one give an explanation on how a DHT works. Nothing too heavy, just the basics. ...

What are the techniques for face detection on a bitmap?

I'm quite curious about this since it's quite a leap in image processing. In a broad way, how would one do face recognition on a bitmap? Edit: My intention is a brief description on how a face is recognized. Not for comparison. Just how to recognize that there is a face in a bitmap. The Wikipedia article is sparse on algorithm explana...

What are the techniques for word recognition in a sound stream?

I'm quite curious about this. In a broad way, how does one go about doing the following: Detection of word separations. Detection of syllables. Compensate for normal speech word connections. ...

Teaching: Field, Class & Package Relationships

In general I think I can convey most programming related concepts quite well. Yet, I still find it hard to summarise the relationship between Fields, Classes and Packages. How do You summarise "Fields", "Classes" and "Packages" and "Their Relationship" ? ...

Key concepts to learn in Assembly

I am a firm believer in the idea that one of the most important things you get from learning a new language is not how to use a new language, but the knowledge of concepts that you get from it. I am not asking how important or useful you think Assembly is, nor do I care if I never use it in any of my real projects. What I want to know ...

Generating 'neighbours' for users based on rating

I'm looking for techniques to generate 'neighbours' (people with similar taste) for users on a site I am working on; something similar to the way last.fm works. Currently, I have a compatibilty function for users which could come into play. It ranks users on having 1) rated similar items 2) rated the item similarly. The function weighs ...

Computer Science text book way to do text/xml/whatever parsing.

It's been ratling in my brain for a while. I've had some investigation on Compilers/Flex/Byson and stuff but I never found a good reference that talked in detail about the "parsing stack", or how to go about implementing one. Does anyone know of good references where I could catch up? Edit: I do appreciate all the compiler references,...

Way to go from recursion to iteration

I've used recursion quite a lot on my many years of programming to solve simple problems, but I'm fully aware that sometimes you need iteration due to memory/speed problems. So, sometime in the very far past I went to try and find if there existed any "pattern" or text-book way of transforming a common recursion approach to iteration an...

Theory: "Lexical Encoding"

I am using the term "Lexical Encoding" for my lack of a better one. A Word is arguably the fundamental unit of communication as opposed to a Letter. Unicode tries to assign a numeric value to each Letter of all known Alphabets. What is a Letter to one language, is a Glyph to another. Unicode 5.1 assigns more than 100,000 values to th...

Refactoring an application.

If you had to fix and stabilize a MVC application, where would you start: the Model, Controller or View? The problems are spread equally throughout the application, with bad programming practices that make it hard to add functionality. The application is written in PHP if it makes a difference. ...

Encrypted data base query

I've just found out about stackoverflow.com and just checking if there are ideas for a constraint I'm having with some friends in a project. Although this is more a theoretical question to which I've been trying to find an answer for some time. I'm not much given into cryptography but if I'm not clear enough I'll try to edit/comment to ...

How to pick what unit to display a value in?

I have a value and I known that it's units is meters^(mn/md) * kg^(kn/kd) * s^(sn/sd) * K^(Kn/Kd) * A^(An/Ad) Note: the exponents are rational, units of m^0.5 are valid The question is how to pick how to break down the units into something more compact for instance if md=kd=sd=Kd=Ad=1 mn=Kn=An=0 kn=1 sn=-1 I can use N/m I suspec...

What is an NP-complete problem?

What is an NP-complete problem? Why is it such an important topic in computer science? ...

What is referential transparency?

What does the term referential transparency mean? I've heard it described as "it means you can replace equals with equals" but this seems like an inadequate explanation. ...

How do you apply Theoretical Computer Science?

Why is theory useful? Do you ever use it in your day-to-day coding? For example, we learned about the halting problem, Turing machines, reductions, etc... a lot of classmates are saying it's abstract and useless and there's no real point to knowning any of it (meaning, you can forget it once the course is over and not lose anything). ...

The Halting Problem in the Field

When have you ever personally come upon the halting problem in the field? This can be when a co-worker / boss suggested a solution which would violate the fundamental limits of computation, or when you realized yourself that a problem you were trying to solve was, in fact, impossible to solve. The most recent time I came up with it was ...

What's a Turing machine?

What is a Turing machine and why do people keep mentioning it? My IBM PC is all I need to do my computation! Why does anyone care about these machines? ...