A UNIX clone with source code for operating systems courses
ACM SIGOPS Operating Systems Review
PortOS: an educational operating system for the Post-PC environment
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Experiences teaching operating systems using virtual platforms and linux
Proceedings of the 36th SIGCSE technical symposium on Computer science education
A survey of contemporary instructional operating systems for use in undergraduate courses
Journal of Computing Sciences in Colleges
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Using iPodLinux in an introductory OS course
Proceedings of the 39th SIGCSE technical symposium on Computer science education
An experimental laboratory environment for teaching embedded operating systems
Proceedings of the 39th SIGCSE technical symposium on Computer science education
The pintos instructional operating system kernel
Proceedings of the 40th ACM technical symposium on Computer science education
Teaching operating systems using virtual appliances and distributed version control
Proceedings of the 41st ACM technical symposium on Computer science education
Linux kernel projects for an undergraduate operating systems course
Proceedings of the 41st ACM technical symposium on Computer science education
Structured linux kernel projects for teaching operating systems concepts
Proceedings of the 42nd ACM technical symposium on Computer science education
Reading mobile games throughout the curriculum
Proceeding of the 44th ACM technical symposium on Computer science education
Learning mobile security with android security labware
Proceeding of the 44th ACM technical symposium on Computer science education
Exploring misconceptions of operating systems in an online course
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Developing a pre- and post-course concept inventory to gauge operating systems learning
Proceedings of the 45th ACM technical symposium on Computer science education
Hands-on introduction to computer science at the freshman level
Proceedings of the 45th ACM technical symposium on Computer science education
Teaching operating systems using code review
Proceedings of the 45th ACM technical symposium on Computer science education
Opportunities for android projects in a CS1 course
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
The computing landscape is shifting towards mobile devices. To learn about operating systems, it is increasingly important for students to gain hands-on kernel programming experience in these environments, which are quite different from traditional desktops and servers. We present our work at Columbia University to teach operating systems using Android, an open, commercially supported software platform increasingly used on mobile and embedded devices. We introduce a series of five Android kernel programming projects suitable for a one semester introductory operating systems course. Each project teaches a core operating system concept infused with Android or mobile device specific context, such as Android specific process relationships, use of sensors, and design considerations for resource constrained mobile devices. We also introduce an Android virtual laboratory based on virtual appliances, distributed version control, and live demonstrations which gives students hands-on Android experience, with minimal computing infrastructure. We have used these Android kernel programming projects and the Android virtual lab to teach an introductory operating systems course. Although this was our first time teaching the course using Android, over 80% of students surveyed enjoyed using Android and the majority of students preferred Android to traditional desktop development.