The rank-modulation scheme has been recently proposed for efficiently storing
data in nonvolatile memories. Error-correcting codes are essential for rank
modulation, however, existing results have been limited. In this work we
explore a new approach, \emph{systematic error-correcting codes for rank
modulation}. Systematic codes have the benefits of enabling efficient
information retrieval and potentially supporting more efficient encoding and
decoding procedures. We study systematic codes for rank modulation under
Kendall's $\tau$-metric as well as under the $\ell_\infty$-metric.
In Kendall's $\tau$-metric we present $[k+2,k,3]$-systematic codes for
correcting one error, which have optimal rates, unless systematic perfect codes
exist. We also study the design of multi-error-correcting codes, and provide
two explicit constructions, one resulting in $[n+1,k+1,2t+2]$ systematic codes
with redundancy at most $2t+1$. We use non-constructive arguments to show the
existence of $[n,k,n-k]$-systematic codes for general parameters. Furthermore,
we prove that for rank modulation, systematic codes achieve the same capacity
as general error-correcting codes.
Finally, in the $\ell_\infty$-metric we construct two $[n,k,d]$ systematic
multi-error-correcting codes, the first for the case of $d=O(1)$, and the
second for $d=\Theta(n)$. In the latter case, the codes have the same
asymptotic rate as the best codes currently known in this metric.