CSE 341 S. Tanimoto Social/Ethical Issues - 1 Social and Ethical Issues in Programming Language Design Can harm be done by designers of programming languages?

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

The Therac-25: A Software Fatal Failure
Background Increasing use of automated systems Hardware and software technology are improving rapidly User interface technology is lagging Critical bottleneck.
An Investigation of the Therac-25 Accidents Nancy G. Leveson Clark S. Turner IEEE, 1993 Presented by Jack Kustanowitz April 26, 2005 University of Maryland.
+ THE THERAC-25 - A SOFTWARE FATAL FAILURE Kpea, Aagbara Saturday SYSM 6309 Spring ’12 UT-Dallas.
Motivation Why study Software Engineering ?. What is Engineering ? 2 Engineering (Webster) – The application of scientific and mathematical principles.
© The McGraw-Hill Companies, 2006 Chapter 9 Software quality.
Reasons to study concepts of PL
CSE S. Tanimoto Visual Languages 1 Visual Languages (Outline) Motivation Control Flow Diagrams Data Flow Diagrams Iconic Programming, Iconic Representation.
CS CS 5150 Software Engineering Lecture 21 Reliability 3.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CSE305 Programming Languages Notes are based primarily on Sebesta text. Quotes are from Sebesta text, unless otherwise noted. Sources other than Sebesta.
CSE S. Tanimoto Visual Languages 1 Visual Languages (Outline) Motivation Control Flow Diagrams Data Flow Diagrams Iconic Programming, Iconic Representation.
Dreamweaver 8 Concepts and Techniques Introduction Web Site Development and Macromedia Dreamweaver 8.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
Your Interactive Guide to the Digital World Discovering Computers 2012.
An overview of the electronic work permit system in use at the ISAC facility ISAC Electronic Work Permit System Rob Shanks, TRIUMF, Vancouver CANADA,
Lecture 7, part 2: Software Reliability
DJ Wattam, Han Junyi, C Mongin1 COMP60611 Directed Reading 1: Therac-25 Background – Therac-25 was a new design dual mode machine developed from previous.
Introduction to Programming End Show. Resource Team R.P Ranjan-Lecturer, SPICTEC, Galle. W.M.A.S. Wijesekara-Centre manager,CRC Hali-Ela H.P.U.S Indra.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Introduction to Computer Programming itc-314
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Slide 1 Standard Grade Computing Studies Systems Software.
1 Can We Trust the Computer? What Can Go Wrong? Case Study: The Therac-25 Increasing Reliability and Safety Perspectives on Failures, Dependence, Risk,
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
CSE 403 Lecture 14 Safety and Security Requirements.
Security and Reliability THERAC CASE STUDY TEXTBOOK: BRINKMAN’S ETHICS IN A COMPUTING CULTURE READING: CHAPTER 5, PAGES
Therac-25 Case Family vs. Programmer. People Suffered From Different Type of Bad Programming Database accuracy problems. Many people could not vote in.
Programming With C.
Dimitrios Christias Robert Lyon Andreas Petrou Dimitrios Christias Robert Lyon Andreas Petrou.
©2001 Southern Illinois University, Edwardsville All rights reserved. Today Fun with Icons Thursday Presentation Lottery Q & A on Final Exam Course Evaluations.
By Ian Jackman Davit Stepanyan.  User executed untested code.  The order in which statements were meant to be executed are different than the order.
Sharda University P. K. Mishra (Asst.Prof) Department of Computer Science & Technology Subject Name: Programming Using C Sub Code: CSE-106 Programming.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
MS Visual Basic 6 Walter Milner. VB 6 0 Introduction –background to VB, A hello World program 1 Core language 1 –Projects, data types, variables, forms,
FOUNDATION IN INFORMATION TECHNOLOGY (CS-T-101) TOPIC : INFORMATION SYSTEM – SOFTWARE.
How to execute Program structure Variables name, keywords, binding, scope, lifetime Data types – type system – primitives, strings, arrays, hashes – pointers/references.
Dr. Rob Hasker. Classic Quality Assurance  Ensure follow process Solid, reviewed requirements Reviewed design Reviewed, passing tests  Why doesn’t “we.
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
CSE 403, Software Engineering Lecture 6
©2001 Southern Illinois University, Edwardsville All rights reserved. Today Finish Ethics Next Week Research Topics in HCI CS 321 Human-Computer Interaction.
Introduction to Computer Programming itc-314 Lecture 04.
Chapter – 8 Software Tools.
Dr. Rob Hasker. Classic Quality Assurance  Ensure follow process Solid, reviewed requirements Reviewed design Reviewed, passing tests  Why doesn’t “we.
Compilers and Interpreters
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
Programming Language Basics. What is a Programming Language? “A computer, human-created language used to write instructions for a computer.” “An artificial.
Chapter 2 Introduction to Static Analysis. Chapter Outline Capabilities and Limitations of Static Analysis  Type checking  Style checking  Program.
Increasing use of automated systems
Why study Software Design/Engineering ?
Chapter 14: System Protection
ATTRACT TWD Symposium, Barcelona, Spain, 1st July 2016
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Therac-25 Accidents What was Therac-25? Who developed it?
CS 5150 Software Engineering
Week 13: Errors, Failures, and Risks
Programming Language Basics
Ethics in Programming Languages and Software Engineering
Social and Ethical Issues in Programming Language Design
Social and Ethical Issues in Programming Language Design
Social and Ethical Issues in Programming Language Design
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

CSE 341 S. Tanimoto Social/Ethical Issues - 1 Social and Ethical Issues in Programming Language Design Can harm be done by designers of programming languages? Support for system safety in P.L. Security policies. Who gets to program? Should languages be easy to learn or easy to use? Is there a right to literacy in programming? (to read programs? to write programs?) What part do programming languages play in ethical and unethical uses of technology?

CSE 341 S. Tanimoto Social/Ethical Issues - 2 Can harm be done by designers of programming languages? Direct harm ? Indirect harm ?

CSE 341 S. Tanimoto Social/Ethical Issues - 3 Software Can Kill: The Yakima Software Bug “On Saturday, January 17, 1987, the second patient of the day was to be treated for a carcinoma. This patient was to receive two film verification exposures of 4 and 3 rads plus a 79 rad photon treatment (for a total exposure of 86 rads)... The console displayed ‘beam ready,’ and the operator hit the B key to turn the beam on... the patient...reported ‘feeling a burning sensation’ in his chest. Later in the day, the patient developed a skin burn over the entire treatment area...The patient died in April from complications related to the overdose.” [from N. Leveson: Safeware, pp ].

CSE 341 S. Tanimoto Social/Ethical Issues - 4 The Yakima Software Bug (cont) “The software problem... is fairly well established....Every pass through the Set Up Test routine...increments... a shared variable called Class3. If Class3 is nonzero, there is an inconsistency and treatment should not proceed. A zero value for Class3 indicates that the relevant parameters are consistent with treatment and the software does not inhibit the beam.” Problem: Class3 was a 1-byte variable. Adding 1 to 255 produced 0. Being treated with the Therac-25 radiation treatment machine was a bit like playing Russian roulette.

CSE 341 S. Tanimoto Social/Ethical Issues - 5 Who is responsible for damage caused by bugs in a program ? (a) the user (b) the author of the program (c) the compiler writer (d) the designer of the programming language the patient? the hospital? the manufacturing company? the software designer? coder? tester?

CSE 341 S. Tanimoto Social/Ethical Issues - 6 Emergent Language Properties That Relate to Human Errors Masterability Fault proneness understandability maintainability checkability [J. J. Horning: Programming languages for reliable computing systems, 1979].

CSE 341 S. Tanimoto Social/Ethical Issues - 7 Language Features Found to be Prone to Error: pointers control transfers of various kinds defaults implicit type conversions global variables Overloading variable names

CSE 341 S. Tanimoto Social/Ethical Issues - 8 Defensive Programming Design thoroughly Design for testability Design for safety by identifying, preventing, and checking for dangerous conditions Design test methods into the system Test during development Keep a log of testing activities Maintain testing tools as well as product code

CSE 341 S. Tanimoto Social/Ethical Issues - 9 Is There a Right to Program? Literacy as a human right in the 21st century Computer literacy... What forms of programming should be accessible?

CSE 341 S. Tanimoto Social/Ethical Issues - 10 Learning to Program Several important programming languages developed from efforts to make programming easier to learn. Logo: Lisp-like, interpreted language + turtle graphics BASIC -- developed by Kurtz and Kemeny at Dartmouth Univ. to help undergraduates learn about computing. Karel the Robot (a pre-Pascal teaching tool by Richard Pattis) Smalltalk -- envisioned by Alan Kay as a programming language for kids. Visual-rule based simulations (KidSim, Stagecast Creator, AgentBuilder, Visual AgenTalk) Color XFORM (Image processing system) + scripting language (e.g., Lisp) -- a visual & symbolic approach at U of Wash.

CSE 341 S. Tanimoto Social/Ethical Issues - 11 Is Language Learnability Important from an Ethical Standpoint? Some professions create barriers to entry. Should programmers or language designers ever do this? If they do, is it ethical to do it by making languages difficult to learn? Software written so that no one but the author can maintain it can pose a risk for those who depend on the software being up to date.

CSE 341 S. Tanimoto Social/Ethical Issues - 12 “Religious” Attitudes in Programming Should programmers be dogmatic about language features or philosphies? Can a programmer be pluralistic about language and still hold strong convictions? How should programmers respect the tradeoffs between idealism and practicality in the choice and uses of programming languages?

CSE 341 S. Tanimoto Social/Ethical Issues - 13 Using Computer-Based Languages for Human Communication Social issues in language design Cultural biases Limited ontologies Visual vs non-visual (symbolic) Interface biases