Introducing 8 th Grade Girls to Fault Tolerant Computing (An Experience Report) Paul A.G. Sivilotti Murat Demirbas Dept. of Computer & Info. Science The.

Slides:



Advertisements
Similar presentations
Junkbots Junkbots Scott Turner School of Science and Technology, University of Northampton The School of Science and Technology.
Advertisements

Tips for Training (module 6.2).
Professional Development May not be duplicated without permission Final Assignment.
1 University of Utah – School of Computing Computer Science 1021 "Thinking Like a Computer"
Integrate STEM with Design, 3d Printing, Robotics, and Computer Programming Vinny Garrison Brian Perry Christopher Polizzi Nanuet School District.
“The study of algorithms is the cornerstone of computer science.” Algorithms Winter 2012.
Limited Time and Experience: Parallelism in CS1 Fourth NSF/TCPP Workshop on Parallel and Distributed Computing Education (EduPar-14) Steven Bogaerts.
1 CENG 707 Data Structures and Algorithms Nihan Kesim Çiçekli Department of Computer Engineering Middle East Technical University Fall 2010.
CS150 Introduction to Computer Science 1 Professor: Chadd Williams.
June 13, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
COMP 110 Introduction to Programming Jingdan Zhang June 20, 2007 MTWRF 9:45-11:15 am Sitterson Hall 014.
10th Workshop "Software Engineering Education and Reverse Engineering" Ivanjica, Serbia, 5-12 September 2010 First experience in teaching HCI course Dusanka.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Welcome and Overview Richard Anderson University of Washington June 30, 20081IUCEE: Welcome and Overview.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
The Harris County Library should have a coding program for kids Anna Xu 1.
COMPUTER SCIENCE 10: INTRODUCTION TO COMPUTER SCIENCE Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
INFLUENCE OF UNDERGRADUATE COURSE SOFTWARE DESIGN AND ARCHITECTURE TO POSTGRADUATE COURSE ARCHITECTURE, DESIGN AND PATTERNS Magdalena Kostoska Nevena Ackovska.
Mobiles Robotics: Integrated Systems Design. Where are the Robots? Exploration.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
7-Sep-15 Physics 1 (Garcia) SJSU Conceptual Physics (Physics 1) Prof. Alejandro Garcia Spring 2007.
Teaching is not just a process of imparting knowledge to an attentive child. Learning needs to be engaging, social and interactive. It is also vital that.
On Teaching Introductory Programming Abhiram Ranade.
Control technology. What and why? All the automatic electronic devices that regulate and control other devices. Control technology… …helps children understand.
Student Centered Teaching Through Universal Instructional Design Part II.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Computer Networks Lecture 1: Logistics Based on slides from D. Choffnes Northeastern U. and P. Gill from StonyBrook University Revised Autumn 2015 by S.
COMP 171: Principles of Computer Science I John Barr.
Software Specification and Design Sirisin Kongsilp & James Brucker.
Teaching a Distance Learning Course Presented by David R. Maidment, Dept of Civil Engineering University of Texas at Austin 20 January 1999 Concepts of.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Problem of the Day  Why are manhole covers round?
Conditions. Objectives  Understanding what altering the flow of control does on programs and being able to apply thee to design code  Look at why indentation.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
Computer Science An Introduction and Some Advanced Concepts Too! Prof. Paul Sivilotti Dept. of Computer & Info. Science The Ohio State University
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
Fault Tolerance Computer Programs that Can Fix Themselves! Prof’s Paul Sivilotti and Tim Long Dept. of Computer & Info. Science The Ohio State University.
Fault-Tolerant Parallel and Distributed Computing for Software Engineering Undergraduates Ali Ebnenasir and Jean Mayo {aebnenas, Department.
Student Page Title Introduction Task Process Evaluation Conclusion Credits [Teacher Page]Teacher Page A WebQuest for 5th Grade Science Designed by Aaron.
Welcome to CIS 2168 ! Data Structures and Algorithms
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
Mobiles Robotics: Integrated Systems Design. Where are the Robots? Exploration.
Introduction Fall 2001 Foundations of Computer Systems Prerequisite:91.166* or * Section A Instructor: Dr. David Hutchinson Office:
Using Alice in an introductory programming course for non-CS majors Adelaida A. Medlock Department of Computer Science Drexel University
Course Administration Data Structures and File Management Computer Science Dept Va Tech January 2002 ©2002 McQuain WD 1 CS 2604 Welcome to Computer Science.
CIS 842: Specification and Verification of Reactive Systems Lecture ADM: Course Administration Copyright , Matt Dwyer, John Hatcliff, Robby. The.
CEN First Lecture CEN 4010 Introduction to Software Engineering Instructor: Masoud Sadjadi
CS 463 Sample Presentation G. S. Young Computer Science Department.
CS 162 Introduction to Computer Science II Winter, 2014: 60 Spring, 2014: 60 Summer, 2014: 71.
CS 161 Computer Science I Andrew Scholer
Data Structures and Algorithms in Java AlaaEddin 2012.
Computer Science Lecture 28, page 1 CS677: Distributed OS Today: Final Thoughts.
CS 161 Introduction to Computer Science I Winter, 2014: 112 Spring, 2014: 131 Summer, 2014: 132.
B.A. (Mahayana Studies) Introduction to Computer Science November March Preliminaries Some background information for this course.
FINAL PRESENTATION 25% of Your Total Grade. PRESENTATION INSTRUCTIONS Give a short presentation based on one of the main topics from the text (the topics.
Introduction to probability (3) Definition: - The probability of an event A is the sum of the weights of all sample point in A therefore If A1,A2,…..,An.
Advanced Programing practices
CS 664 Sample Presentation
Introducing Control in an Open Online Course
Computer Engineering Department Islamic University of Gaza
CSCI 203: Introduction to Computer Science I
Computational Thinking in the Classroom
Programming for Visually Impaired Learners
EECE 310 Software Engineering
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Andy Wang Operating Systems COP 4610 / CGS 5765
The Nifty-Fifty A PowerPoint on the 50 states of the U.S. and their capitals and location. By: Gloria McClure.
CS 6640 Sample Presentation
CSCI 203: Introduction to Computer Science I
Presentation transcript:

Introducing 8 th Grade Girls to Fault Tolerant Computing (An Experience Report) Paul A.G. Sivilotti Murat Demirbas Dept. of Computer & Info. Science The Ohio State University

2 The Context “Future Engineers’ Summer Camp” Piloted at OSU Summer 2002 Workshop for 8 th grade girls 30 participants 1 week (days only) on campus Theme: Introduction to “engineering and science” Mechanical, chemical, civil, astronomy, environmental, industrial, … Lectures, lab tours, activities

3 The Challenge Design a 3-hour module for CS Goals: Fun Educational Reflection of CS as a discipline Requirements: No CS background assumed

4 Approach 1: Logo Use a simple imperative programming environment E.g. “Darwin’s World” exercise in CS 1/2 Simple programming language to control bug movement, replication Bugs interact, infect, thrive, die Ref: SIGCSE ’99 panel on nifty assignments Appeal: Conditionals, iteration, recursion,… Problems: Syntax is a distraction Low engagement for this audience

5 Approach 2: Using App’s Use engaging applications E.g. tool for designing web pages Appeal: Gender-appropriate applications can be chosen Clear, identifiable skill is learned Sense of accomplishment from an impressive final product Problem: Not CS!

6 Our Approach Teach: 1. Software engineering principles 2. Parallel programming 3. Self-stabilizing distributed algorithms Three graduate-level CS topics! Each builds on the previous Each consists of lecture + activity (1 hr) Consistent theme: Programs as recipes Computers as chefs

7 Topic 1: Programs Lego Mindstorm robots Light sensors Follow grid lines Instructions Turn, forward, take sample Printed on cards Cards stacked to form programs Straight-line Simple requirements Uploaded to robots

8 Topic 2: Parallel Programs Each person holds a number Physically move to represent data movement Sequential sort Bubble sort Parallel sorts Even-odd transposition Radix Differences apparent Execution time Multiple threads SIGCSE ’94 paper

9 Topic 3: Fault Tolerance Lecture Nature of faults (chef analogy) Easy answer: redundancy Follows directly from parallel algorithm unit Self-stabilizing token ring algorithm Correct state: 1 token (mutual exclusion) Possible faults: token loss or duplication Converges to correct state Distributed control

10 Fault Tolerance Activity Design goals Simple rules Reinforce distributed nature of algorithm Dramatic difference between correct & incorrect states Satisfaction in re-establishing correct state Solution: Use music! Students are in a ring, each with a chime When they have the token, they play their note Correct (1 token) = melody Incorrect (multiple/none) = chaos / silence

11 Fault Intolerant Token Ring Problem: What about faults? What happens if token is lost? One fault means disaster!

12 Prevent Loss of Token: Binary Ring Rule (for most people): if left neighbor is different from me, then I have the token Make my number equal to that neighbor’s

13 Completing the Ring One person is special: if left neighbor is same as me, then I have the token Make my number differ from that neighbor’s “1” token

14 Fault: Corruption of Values Problem: multiple tokens in ring Tokens chase each other around ring One fault means disaster “1” token “0” token

15 k-State Token Ring Solution: use more values than people! Same rule If left neighbor different from me: I have the token! (use it) Change my value to be equal to neighbor Again, one person is special If left neighbor same as me I have the token (use it) Change my value to be one bigger

16 Activity Form a ring Each person has number cards Each person has a chime When you get the token: Play your chime Then change your number We’ll run different versions I’ll introduce “faults” and see if you can recover!

17 FT Demo: Tips for Success Recognizable tune with equal note lengths TTLS, a scale, Frère Jaques, Carmen Ohio… Use a large group (14 notes worked well) Do not align tune with processor 0 Supervise the “special processor” Binary ring: Allow tune to emerge, then disrupt After fault, make sure all 3 tokens appear Change tune after binary ring K-state ring: Disrupt before tune emerges Start from random state for effect

18 Participant Evaluation “How much did you know about CS before?” 2.8 (1 = none, 5 = a lot) “Is CS now more or less interesting?” 4.0 (1 = less, 5 = more) “Most important thing learned?” “It’s really fun” “Computers need specific instructions” “Sequential programs are slow” “How a program can recover from faults” “In which activity did you learn the most?” Most popular selection: CS

19 Conclusions Effectiveness of anthropomorphism Caveat: encourages operational reasoning Try the fault tolerance activity! Works best as a 3-part series But each part can work individually too Age neutral Middle school, HS, UG, Grad Slides, notes, and code available:

20 Acknowledgements Graduate student assistants Sandip Bapat Florina Comanescu, Scott Pike, Nigamanth Sridhar, Hilary Stock School of Music Amy Giles, Prof. Ken Williams FESC Workshop Prof. Linda Weavers Funding: National Science Foundation Ameritech

Introducing 8 th Grade Girls to Fault Tolerant Computing (An Experience Report) Paul A.G. Sivilotti Murat Demirbas Dept. of Computer & Info. Science The Ohio State University