Social and Ethical Issues in Programming Language Design

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

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.
Motivation Why study Software Engineering ?. What is Engineering ? 2 Engineering (Webster) – The application of scientific and mathematical principles.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Tutorial 6 & 7 Symbol Table
Reasons to study concepts of PL
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?
CSE305 Programming Languages Notes are based primarily on Sebesta text. Quotes are from Sebesta text, unless otherwise noted. Sources other than Sebesta.
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
Programming Languages CPS120: Introduction to Computer Science Lecture 5.
Slide 1 Standard Grade Computing Studies Systems Software.
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
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.
Sharda University P. K. Mishra (Asst.Prof) Department of Computer Science & Technology Subject Name: Programming Using C Sub Code: CSE-106 Programming.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
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.
Compilers and Interpreters
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.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Game programming 1.
Computer Language
Increasing use of automated systems
Why study Software Design/Engineering ?
Chapter 14: System Protection
Chapter 4 – Requirements Engineering
Introduction to Computer CC111
Chapter 18 Maintaining Information Systems
ATTRACT TWD Symposium, Barcelona, Spain, 1st July 2016
System Design.
COMP60611 Directed Reading 1: Therac-25
Introduction to programming languages, Algorithms & flowcharts
Translators & Facilities of Languages
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Ada – 1983 History’s largest design effort
Chapter 14: Protection.
Therac-25 Accidents What was Therac-25? Who developed it?
A Manufacturing Standpoint
Reliability and Safety
CS 5150 Software Engineering
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Visual Languages (Outline)
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
The Programming Process
Week 13: Errors, Failures, and Risks
Programming Language Basics
Ethics in Programming Languages and Software Engineering
Chapter 14: Protection.
Outline Chapter 2 (cont) OS Design OS structure
Visual Languages (Outline)
and Program Development
Principles of Programming Languages
ICT Programming Lesson 1:
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
Social and Ethical Issues in Programming Language Design
Social and Ethical Issues in Programming Language Design
System calls….. C-program->POSIX call
Chapter 11: Integration- and System Testing
Programming Languages, Preliminaries, History & Evolution
Presentation transcript:

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 Visual Languages

Can harm be done by designers of programming languages? Direct harm ? Indirect harm ? CSE 341 -- S. Tanimoto Visual Languages

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, pp54-1542]. CSE 341 -- S. Tanimoto Visual Languages

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 Visual Languages

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 Visual Languages

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 Visual Languages

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 Visual Languages

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 Visual Languages

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 Visual Languages

CSE 341 -- S. Tanimoto Visual Languages 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 Visual Languages

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 Visual Languages

“Religious” Attitudes in Programming Should programmers be dogmatic about language features or philosophies? 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 Visual Languages

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