A program that takes as input the plaintext and a key that the
shift indicates, receives and outputs the ciphertext. A way to deal with punctuation marks and spaces.
A program, for the possibility of decryption, as inputs you need plus the ciphertext and the key.
Really, even if we were willing to do your homework for you, you'd be sorry come the exam. And, if you're really interested in learning some computer science, this isn't the way to do it.
originally I think it was smalltalk / sqeak I saw a post jens said something about the only reason its in javascript is so that it can work in the browser (which still amazes me)