A UNIX clone with source code for operating systems courses
ACM SIGOPS Operating Systems Review
A new instructional operating system
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
Root-kits & loadable kernel modules: exploiting the Linux kernel for fun and (educational) profit
Journal of Computing Sciences in Colleges
Using iPodLinux in an introductory OS course
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
Teaching operating systems using android
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Visualization of student-implemented OS algorithms in Java
Journal of Computing Sciences in Colleges
Exploring misconceptions of operating systems in an online course
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Teaching operating systems using code review
Proceedings of the 45th ACM technical symposium on Computer science education
A virtual graphics card for teaching device driver design
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
Linux has emerged as a widely-used platform for enabling hands-on kernel programming experience to learn about operating system concepts. However, developing pedagogically-effective programming projects in the context of a complex, production operating system can be a challenge. We present a structured series of five Linux kernel programming projects suitable for a one semester introductory operating systems course to address this issue. Each assignment introduces students to a core topic and major component of an operating system while implicitly teaching them about various aspects of a real-world operating system. Projects are of modest coding complexity, but require students to understand and leverage core components of the Linux operating system. The learning benefits for students from this approach include learning from real-world operating system code examples by expert kernel designers and gaining software engineering experience managing production code complexity. We have successfully used these structured Linux kernel projects to teach over a thousand students in the introductory operating systems course at Columbia University.