5. RELATED WORK
In recent years, courses using the Linux kernel for OS pro-
gramming projects have become increasingly popular [1, 6,
8, 11]. However, these approaches focus primarily on Linux
desktop and server environments and provide no hands-on
experience with mobile platforms. Lawson et al [9] describe
a single programming project where students modify a Linux
kernel designed to run on an iPod. However, this single
project does not incorporate any mobile device specic ped-
agogy and does not provide a rigorous, project-based cur-
riculum for understanding OS principles in the context of
mobile platforms. The BabyOS [10] and embedded XINU [3]
projects focus on embedded systems, but lack the real-world
applicability of a production Linux kernel. Furthermore, be-
cause Android is based on the Linux kernel, our approach
provides a straightforward transition path for courses that
already use the Linux kernel to incorporate the mobile and
embedded concepts embodied in our Android projects. Our
approach provides a mapping of structured Linux kernel pro-
gramming projects onto the Android platform where stu-
dents gain insight into real-world systems and learn practical
skills immediately applicable in today's job market.