1. EMERGING TRENDS IN COMPUTING
EDUCATION
Trends and Innovations in Operating Systems Courses
Gagandeep Kaur
Deptt. of CSE&IT
JIIT, NOIDA
1
6th – 11th July, 2015
“...if we teach today as we taught yesterday, we rob our children of tomorrow.”
John Dewey
2. CONTENTS
Trends in the past 15 years or so: Where does it
fit in now?
Innovations specific to teaching of OS course
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
2
4. CURRICULUM GUIDELINES FOR UNDERGRADUATE
DEGREE PROGRAMS IN COMPUTER SCIENCE 2013 ACM
Many courses in Operating Systems draw material from across
following knowledge areas:
Systems Fundamentals (SF),
Networking and Communication (NC),
Information Assurance and Security(IAS), and
Parallel and Distributed Computing (PD)
Systems Fundamentals includes topics such as performance,
virtualization and isolation, and resource allocation and
scheduling;
Parallel and Distributed Systems includes parallelism
fundamentals; and
Information Assurance and Security includes forensics and
security issues in depth
4
5. POPULAR COURSE NAMES & COURSE CONTENTS
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
5
Operating
Systems
Operating
Systems
Engineering
Operating
Systems
Design &
Implementatio
n
Principles of
Operating
Systems
Introduction to
Operating
Systems
Operating
Systems &
Networks
Operating
Systems &
Systems
Programming
Overview of Operating Systems
Operating System Principles
Concurrency
Scheduling and Dispatch
Memory Management
Security and Protection
Virtual Machines
Device Management
File Systems
Real Time and Embedded
Systems
Fault Tolerance
System Performance Evaluation
6. • Open Shop, Batch Processing,
Multiprogramming, Timesharing,
Concurrent Programming
• Personal Computing, Distributed
Systems,
90’s-early
2000
• Embedded, Security, networking,
multimedia, Real time,
Virtualization,
• Mobility, hand-held, wireless,
THOUGHT BASED!
2001
onwards
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
6
7. 1. OPERATING SYSTEMS, WILLIAMS COLLEGE
Where OS fits in their under-graduate
program:
Open to juniors & seniors but not
compulsory
Project based
An average class of 15-20
Covers design & implementation of
modern OSs namely Unix, Windows, Mach,
and the various generations of Mac OS
Course is delivered mainly through class lectures via Teacher Student interaction
No Lab but some part is taught in lab for projects help
Students are assessed based on:
4 implementation projects that include significant programming,
2-3 written homework assignments,
6-8 research paper evaluations, and
a midterm exam.
Projects typically span 2-3 weeks and require 20-30 hours of work each. 1 Project fully
dedicated to security
Written homework assignments and paper evaluations require 3-10 hours of work each.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
7
Knowledge Area Total Hours of Coverage
Operating Systems (OS) 30
Systems Fundamentals (SF) (Overlap with OS hours)
Networking and Communication
(NC)
2
Parallel and Distributed Computing
(PD)
(Overlap with OS hours)
8. 2. OPERATING SYSTEMS, EMBRY-RIDDLE AERONAUTICAL UNIVERSITY
Where OS fits in their under-graduate
program:
Open to 3rd year or 4th year UGs
Project based
Covers basic concepts of operating
Systems based on OSs namely Unix/LINUX and Windows,
Course is delivered mainly through class lectures ( 3 lectures/week) via
TS interaction
Students are assessed based on:
Homework assignments
several programming projects, lab assignments based on Java, JVM
a midterm exam.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
8
Knowledge Area Total Hours of Coverage
Operating Systems (OS) 24
Parallel and Distributed Computing
(PD)
5
Systems Fundamentals (SF) 4
9. 3. OPERATING SYSTEMS, U. OF ARKANSAS AT LITTLE ROCK
Where OS fits in their under-graduate
program:
Open to 3rd year or 4th year UGs
Covers basic concepts of operating Systems with lectures devoted to
network security and protection wrt OS.
Course is delivered mainly through class lectures ( 3 lectures/week) via
TS interaction
Lab system based on NACHOS
Students are assessed based on:
Homework assignments
Lab assignments, extensive pgmng on Synchronization
exam.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
9
Knowledge Area Total Hours of Coverage
Operating Systems (OS) 24
Parallel and Distributed Computing
(PD)
5
Systems Fundamentals (SF) 4
10. 4. OPERATING SYSTEMS, REYKJAVIK UNIVERSITY
Where OS fits in their under-graduate
program:
4th semester of a 3-year program
Project based
To understand how the OS interacts with hardware, how higher level systems
interact with the OS, and be able to program against these lower-level abstractions.
Lectures are given 2x1.5 hours per week over 12 weeks . In an auditorium, plus 1.5
hours of optional recitation sessions in regular classrooms.
Online recordings are provided of all lectures and sessions.
Two big written homework assignments are solved in pairs, and five major lab
2-week projects.
After the Operating Systems course, high-scoring students are invited to a follow-up
3-week computer security course in which low-level assembly, C programming,
reverse engineering and exploit writing skills are developed further.
Lab System: Shared access to a CentOS 5 Linux shell server.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
10
Knowledge Area Total Hours of Coverage
Operating Systems (OS) 18
Architecture and Organization (AR) 8
Systems Fundamentals (SF) 4/5
Networking and Communication
(NC)
4
11. 5. OPERATING SYSTEMS, UNIVERSITY OF HELSINKI
Where OS fits in their under-graduate
program:
Open to 2nd year UGs
Project based
Covers OS basic structure,
principles and methods of OS implementation..
Course is delivered mainly through class lectures & homework
assignments: 18 lectures of (2h) & 9 homework practice
Lab system based on NACHOS
Students are assessed based on:
Extensive Homework assignments
Lab assignments,
2 exams
special emphasis on concurrency
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
11
Knowledge Area Total Hours of Coverage
Operating Systems (OS) 23
Parallel and Distributed Computing
(PD)
3
Systems Fundamentals (SF) 4
Architecture and Organization (AR) 2
12. A SIMULATOR SUPPORTING LECTURES ON OPERATING
SYSTEMS
Luiz Paulo Maia1 2003
Teaching Operating Systems Administration with User Mode Linux Renzo Davoli 2004
A SURVEY OF CONTEMPORARY INSTRUCTIONAL
OPERATING SYSTEMS FOR USE IN UNDERGRADUATE
COURSES
Charles L. Anderson 2005
Experiences Teaching Operating Systems Using Virtual Platforms and
Linux
Jason Nieh 2005
WebgeneOS: A Generative and Web-Based Learning Architecture
to Teach Operating Systems in Undergraduate Courses
Felix Buendía , et al. 2006
Using VMware VCenter Lab Manager in Undergraduate Education
for System administration and Network Security
2010
Teaching Operating Systems Using Virtual Appliances and Distributed
Version Control
Oren Laadan 2010
Teaching Operating Systems – Windows Kernel Projects Alexander Schmidt 2010
SIME: MEMORY SIMULATOR FOR THE TEACHING OF
OPERATING SYSTEMS
Átila Rabelo
Lopes1, et. al.
2011
Teaching Operating Systems as How Computers Work Peter Desnoyers 2011
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
12
13. 7/22/2015JAYPEE INSTITUTE OF INFORMATION TECHNOLOGY,
NOIDA
13
Building XenoBuntu Linux Distribution for Teaching and Prototyping
Real-Time Operating Systems
Nabil LITAYEM,
et al.
2011
INTRODUCTION OF VIRTUALIZATION IN THE TEACHING OF
OPERATING SYSTEMS FOR CS UNDERGRADUATE
PROGRAM*
Kevin Grammer,
et al.
2011
Teaching Operating Systems with Projects Stephen Taylor 1999
Structured Linux Kernel Projects for Teaching Operating Systems
Concepts
Oren Laadan 2011
Teaching Operating Systems Using Android Jeremy Andrus 2012
A Down-to-Earth Educational Operating System for Up-in-the-Cloud
Many-Core Architectures
MICHAEL
ZIWISKY et al.
2013
Using Game-Based Cooperative Learning to Improve Learning
Motivation: A Study of Online Game Use in an Operating Systems
Course
Bin-Shyan Jong,
et. al.
2013
Using Clouds for MapReduce Measurement Assignments ARIEL RABKIN,
et al.
2013
Teaching Operating Systems Concepts with Execution Visualization 2014
PortOS: An Educational Operating System for the Post-PC
Environment
Benjamin Atkin
Emin Gün Sirer
2002
TEACHING LINUX BASED OPERATING SYSTEM Warren Ebell 2004
14. WEBGENEOS: A GENERATIVE AND WEB-BASED LEARNING ARCHITECTURE TO
TEACH OPERATING SYSTEMS IN UNDERGRADUATE COURSES
This paper applies generative learning methods and Web-based
applications to operating systems courses. WebgeneOS is presented as an
experimental learning system that leads students through a more active
participation in the learning process.
WebgeneOS combines the universal connectivity of Web technologies with
the educational theory provided by the generative learning methods.
Webgene complements traditional content-based learning platforms by
including practical activities on operating systems subjects and allowing
students to send their system programs using Web forms, execute them in a
native operating system, and receive their results and additional feedback
information through Web browsers.
The proposed practical work basically covers laboratory exercises related to the
C programming language,
command shell interpreter,
operating systems administration, and
kernel extension.
The laboratory platform is based on the Linux operating system.
maximum of 40 students interact with Linux servers
Students using WebgeneOS improved their grades by about 13%.
14
15. 7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
15
The architecture considers three
main elements:
clients connections,
theWebgene core system,
external entities.
WEBGENEOS
17. INTRODUCTION OF VIRTUALIZATION IN THE TEACHING OF OPERATING
SYSTEMS FOR CS UNDERGRADUATE PROGRAM*
For many colleges, virtualization is a low-cost solution for providing hands-on lab activities for computer science
courses. This paper describes the design and implementation of a series of projects for an undergraduate operating
systems course.
By utilizing Linux virtual machines on students’ personal computers, these projects teach reinforce students’
understanding of operating system concepts as well as teach students the basics of virtualization.
The main objectives of the projects were to have students update the Linux kernel, add a system call, and
work on process-and thread-related projects in the Linux environment.
Due to the limited resources in the department (students do not have administration rights on the machine) and
course setting (no in-class lab time), a non-traditional solution was found to overcome these challenges
To design OS projects that can be implemented on students’personal computers.
Use VMware Workstation and VirtualBox.
Focused on :
(1) any student with no background in Linux should still be able to complete them,
(2) students should be given a chance to “see” the inside of Linux and to make some modifications to it, and
(3) some projects which covered the most important concepts of the OS (such as processes and threading) should
be simple enough to be implemented
Project 0: Open Source OS and Virtualization
Project 1: Updating the Linux Kernel and Adding a System Call
Project 2 and Project 3: Processes and Multithreading in C/Java
more than 80% of students replied that the projects greatly helped them understand the related subjects
and use the latest technology. About 85% of students used VMware for the projects, while others used different
virtualization software packages with success.
17
18. TEACHING OPERATING SYSTEMS USING ANDROID
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.
The paper presents work carried out at Columbia University to teach operating systems
using Android, an open, commercially supported software platform increasingly used on
mobile and embedded devices.
A series of Android kernel programming projects suitable for a one semester
introductory operating systems course was introduced.
Each project taught 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.
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 was also introduced.
Used these Android kernel programming projects and the Android virtual lab to teach an
introductory operating systems course.
18
19. The projects build in complexity, and cover various important OS topics:
(1) system calls and process based on the unique process hierarchy of an Android device,
(2) synchronization where a global resource such as the orientation sensor is shared amongst many
processes,
(3) scheduling by exploiting Android's single-application usage model to increase device
responsiveness,
(4) virtual memory and the exact size and nature of Android's inter-process shared memory, and
(5) systems with automatic geo-tagging.
Developed concept of live demonstrations The five areas covered by the assignments
were: system calls and processes, synchronization, scheduling, virtual memory, hand le
systems.
Android project was used in a 100 student introductory OS course at Columbia
University. Over 80% of students surveyed enjoyed applying OS concepts to the Android
platform, and the majority of students preferred Android over traditional desktop
development.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
19
21. WHY IS IT INTERESTING TO USE ANDROID IN AN OS COURSE
Firstly, as a production system it enables students to learn about real-world OS issues which are
hard to glean from simplified pedagogical projects.
Secondly, since Android is based on the open-source Linux kernel, students can leverage a wealth
of Linux tools and documentation.
Thirdly, Android's use of the Linux kernel provides a familiar transition path from courses already
using Linux to teach OS.
Fourthly, Android is the fastest growing mobile platform to date, and its popularity makes it of
tremendous interest to students.
Fifth, Android is open-source which allows exploration of a complete production system including
the OS kernel, user space libraries, and a graphical user environment written in Java.
Moreover, as a commercial platform, Android continues to be developed and improved which
naturally evolves the platform as a pedagogical tool, enabling students to learn in a modern context.
7/22/2015
21
22. USING GAME-BASED COOPERATIVE LEARNING TO IMPROVE LEARNING
MOTIVATION: A STUDY OF ONLINE GAME USE IN AN OPERATING SYSTEMS
COURSE
With advances in computer and network technology, many courses can now be held or supplemented
online, and students can use their own computers to access course content on the Web. This makes it
possible to use game-based learning in the development of learning technology such that students are no
longer confined to a classroom setting when learning.
Although college students, on the other hand, prefer multiplayer online games in which they can interact
with others.
Many researchers have studied the use of game-based learning.
Game-based learning takes many forms, including virtual reality, role playing, and performing
tasks.
For students to learn specific course content, it is important that the selected game be suited to the
course. Thus far, no studies have investigated the use of game-based cooperative learning in an
operating systems course.
For this study, an online game was developed to enable students to learn cooperatively.
The findings indicate that students’ desire to win the game motivates them to learn from online
course materials before they play, which in turn can enable them to achieve better learning
outcomes.
22
24. ROLE OF SIMULATORS & SMALL SCALE OS IN TEACHING OPERATING
SYSTEMS
Some simulation tools, such as OSP [2], RCOS [3],
or SOsim [4], are typically used in introductory
courses to reinforce concept understanding and to
clarify any doubt or misconception.
In addition, instructional operating systems, such as
MINIX [5] or Nachos [6], hide the complexity of
real systems and allow students to understand the
underlying fundamentals.
In addition, practical activities based on the use of
real operating systems are also recommended to
improve students’ skills.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
24
25. University/Institute
Name
Simulator Small OS/
MIT QEMU Emulator, Xv6(indigenous)
Stanford, IIT DElhi Bochs , QEMU Emulator , JOS.
Caltech VMware NACHOS,
Princeton GNU
UCLA, Linkopings, NYU NACHOS
Cornell JOS
University of Sydney
University of British
Columbia, University of
Toronto
MIPS Emulator GNU
Technical University of
Munich, Ecole
Polytechnique France
SDK Platform Android
4.1.2
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
25
26. REFERENCES
1. Maia, L.P. ; Fed. Univ. of Rio de Janeiro, Brazil ; Pacheco, A.C., Jr, “A SIMULATOR SUPPORTING
LECTURES ON OPERATING SYSTEMS”, in Frontiers in Education, 2003. FIE 2003 33rd Annual (Volume:2 )
, 2003
2. R. Davoli. Teaching operating systems administration with user mode linux. In Proceeding of the 9th Annual
Conference on Innovation and Technology in Computer Science Education. ACM, 06 2004. Leeds, UK
3. Charles L. Anderson, Minh NguyenA SURVEY OF CONTEMPORARY INSTRUCTIONAL OPERATING
SYSTEMS FOR USE IN UNDERGRADUATE COURSES”, in Journal of Computing Sciences in Colleges
archive Volume 21 Issue 1, October 2005 Pages 183-190
4. Jason Nieh, Chris VaillExperiences Teaching Operating Systems Using Virtual Platforms and Linux”, ACM
SIGOPS Operating Systems Review Homepage archive Volume 40 Issue 2, April 2006 Pages 100 - 104
5. Buendia, F., Cano, J.-C, “WebgeneOS: A Generative and Web-Based Learning Architecture to Teach Operating
Systems in Undergraduate Courses”, Education, IEEE Transactions on (Volume:49 , Issue: 4 ) , pp 464 – 473,
2006
6. Xinli Wang, Guy C. Hembroff, Rick Yedica, “ Using VMware VCenter Lab Manager in Undergraduate Education
for System administration and Network Security”, Proceedings of the 2010 ACM conference on Information
technology education pp. 43-52, 2010
7. O. Laadan, J. Nieh, and N. Viennot.Teaching Operating Systems Using Virtual Appliances and Distributed
Version Control, In Proceedings of the 41st ACM Technical Symposium on Computer Science Education,
SIGCSE'10, pages 480{484, March 2010.
8. Schmidt, A. Polze, and D. Probert., „Teaching Operating Systems – Windows Kernel Projects”, In SIGCSE '10:
Proc. of the 41st ACM tech. symp. on computer science education, pages 490-494, 2010.
9. Lopes, A.R.; Araujo de Souza, D.; de Carvalho, J.R.B.; Silva, W.O.; de Sousa, V.L.P. , “SIME: MEMORY
SIMULATOR FOR THE TEACHING OF OPERATING SYSTEMS”, In Computers in Education (SIIE), 2012
International Symposium on Year: 2012 , pp. 1 - 5
10. P. J. Desnoyers, Teaching Operating Systems as How Computers Work”, In Proceedings of the 42nd ACM
technical symposium on Computer science education, SIGCSE '11, pages 281{286, New York, NY, USA, 2011.
ACM.
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
26
27. 11. Litayem, N., Achballah, A.B., and Saoud, S.B. (2011), “Building XenoBuntu Linux Distribution for
Teaching and Prototyping Real-Time Operating Systems”, International Journal of Advanced Computer
Science and Applications. 2(2)
12. K. Grammer, J. Stolerman, B. Yi. Introduction of Virtualization in the Teaching of Operating Systems for
CS Undergraduate Program. Journal of Computing Sciences in Colleges, vol. 26, issue 6, pp. 44-50, June
2011.
13. O. Laadan, J. Nieh, and N. Viennot. Structured Linux Kernel Projects for Teaching Operating Systems
Concepts. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education,
SIGCSE'11, pages 287{292, March 2011.
14. J. Andrus and J. Nieh, “Teaching Operating Systems Using Android,” SIGCSE’12, Feb. 29 – Mar. 3,
Raleigh, NC, USA.
15. M. Ziwisky, K. Persohn, and D. Brylow. A down-to-earth educational operating system for up-in-the-cloud
many-core architectures. Trans. Comput. Educ., 13(1):4:1{4:12, Feb. 2013
16. B.S. Jong, C.H. Lai, Y.T. Hsia, T.W. Lin and Lu C.Y. Using Game-Based Cooperative Learning to Improve
Learning Motivation: A Study of Online Game Use in an Operating Systems Course. IEEE Transactions on
Education. May 2013, Vol. 56 Issue 2, p183-190
17. A. Rabkin, C. Reiss, R. H. Katz, and D. A. Patterson. Using clouds for mapreduce measurement
assignments. TOCE, 13(1):2, 2013.
18. Francis Giraldeau, Michel R. Dagenais, Hanifa Boucheneb,” Teaching Operating Systems Concepts with
Execution Visualization”, In 121st ASEE conference & Exposition, 2014
19. B. Atkin and E. G. Sirer. PortOS: An Educational Operating System for the Post-PC Environment. In
Proceedings of the ACM Technical Symposium on Computer Science Education, 2002.
20. Warren Ebell, et al. TEACHING LINUX BASED OPERATING SYSTEM
7/22/2015JAYPEE INSTITUTE OF
INFORMATION TECHNOLOGY,
NOIDA
27
REFERENCES