What does a person with an undergraduate degree in CS still need to learn to be employable as a developer?
To know that you know nothing.
Recent graduates can be afflicted by arrogance or low self worth. These are two sides of the same problem.
It is important to know that you are at the beginning of a journey, that has no end. The sum of all knowledge that is known, is but a drop in an ocean, and your personal knowledge is but an atom.
However this has not stopped other such as Turing, Lovelace, Hopper, Ritchie, Liskov, Stallman, et al; It has not stopped you in the past; and it will not stop you in the future.
Experience
I have heard many a new journeyman say “To get a job I need experience, but how do I get experience without a job?”.
So get experience: Find a good Free Software / Open Source project, that you are interested in, and contribute to the project.
Software engineering tools
As well as testing (@BenI). Revision control: Learn how to use revision control tools, for example: mercurial (hg), git, subversion (svn).
Of these subversion is previous generation, but still has some use-cases that best suit it. It is still widely used.
Mercurial and git are more modern, distributed systems. git is the most popular, but is a git to use, and very hard to learn. Mercurial is similar in how it works, but much easier to use (it has a more intuitive command line interface, and a nice graphical interface(tortoise hg)).