In this thesis, we propose a systematic code for correcting t = 1 insertion/deletion errors of the character ”0” that can occur between any two consecutive 1’s in a binary string. The code requires balanced input strings, where each word of length n contains ⌈n/2⌉ 0’s and ⌊n/2⌋ 1’s. This error model is shown to be related to zero-error capacity-achieving codes for a limited-magnitude error channel. We prove that the inputs can be partitioned in to different subsets and the words in the same subset can be assigned a unique check for this error model. We deduce that the upper bound for the number of checks required is 2w, where w is the weight of the input. Efficient encoding and decoding algorithms are provided. Our algorithms return variable-length checks and may require up to r = 3w check bits. While the optimal rate for this error model is not known, we establish our rate to be between 0.4 and 0.666 and demonstrate potential avenues for improvement.