This is not a new or innovative algorithm. This person is performing one step of the conversion of a CFG to Chomsky Normal Form. Please see Sipser’s “Theory of Computation,” page 107.
See also, "preliminary step a of part 2 of my senior compiler project."
Aren't compilers classes common in undergraduate CS programs? Don't they all do this?
E: In case you were curious, "part 2" of the project was implementing a LL(1) recursive descent parser, so you had to juggle the grammar to work with that kind of parser.
I think you'll find this algorithm in just about any book on formal languages and automata, won't you? In any case, it doesn't seem terribly useful in practice, as tools like yacc seem to deal well enough with \epsilon productions.