{'fraction_non_alphanumeric': 0.015239477503628448, 'fraction_numerical': 0.0, 'mean_word_length': 5.413953488372093, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Workshop learning operating system by designing one

Operating system is an important subject in Computer Science as it bridges the hardware and application worlds. Therefore, teaching operating system is a requirement in most undergraduate Computer Science programs. Operating system is one of the most complex software as it has multiple goals such as effective use and protection of hardware, providing pleasant and convenient interfaces to applications, etc. An effective teaching of operating system involves suitable programming projects/assignments. Programming projects play a key role in enriching students understanding of the subject matter. Designing and carrying out programming projects/assignments successfully is a challenging task. The objective of this workshop is to illustrate one particular approach, which we feel is more interesting and useful.
 In this workshop, after listing several approaches to programming projects, one approach of designing a simple operating system from scratch will be chosen and illustrated. The workshop will involve the overview of the projects, their organization and execution in different phases, and other project extensions. The working code for each phase will be demonstrated in the workshop. The participants will be divided into groups and each group will be assigned a system to experience the project in each phase.