Question: I am a student of computer science with interest in image processing. I have learned how to apply a few effects to images like making them grayscale, sketching them out of lines, etc. 

I would like to learn more about the algorithmic techniques behind creative manipulation of images like making them sepia-tone, smudging them, etc. 

**Can someone please point me in the right direction?** 
How do I learn the fundamentals of these algorithms?

Answer: 
There are books on digital image processing which you can look into. Many common image manipulation techniques, such as smudging (usually known as blurring) are accomplished by [image filtering](http://lodev.org/cgtutor/filtering.html), which is a process of applying a two-dimensional filter to an image: the value of each pixel in the new image is a linear combination of its original value and the original values of its neighbors. Sepia tone is an example of color manipulation: assuming the image is stored as RGB, this amounts to applying some carefully constructed mapping on the R,G,B values of each pixel. The mapping can be represented as a table $\{0,\ldots,255\}^3 \to \{0,\ldots,255\}^3$, or alternatively some formula can be applied instead.
I have been working on that very same thing recently, albeit for a very different purpose. Asides from SO, I have been referring to Google code examples, and forums related to the platform and language that I am working in. Sometimes, I found some information and techniques from [Image Processing Online](http://www.ipol.im/).

One technique that I found was particularly helpful, was to outline the processes that I wanted to do first and research each major programming decision, testing it as I go.

I hope this helps.