1 of 73

Proof Automation

Class 2: Ethics

Lightning Lecture

2 of 73

2

Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, and Simon Winwood. seL4: formal verification of an OS kernel. SOSP 2009.

Last Class

3 of 73

“Of course we want to make

autonomous helicopters safe!”

- naive me

3

4 of 73

“Of course we want to make

autonomous helicopters safe!”

- naive me

4

5 of 73

“Of course we want to make

military drones safe!”

- naive me

5

6 of 73

“Of course we want to make

military drones safe!”

- naive me

6

?

?

?

?

?

7 of 73

“Of course we want to make

military drones safe!”

- naive me

7

?

?

?

?

?

Who benefits?

8 of 73

“Of course we want to make

military drones safe!”

- naive me

8

?

?

?

?

?

Who benefits?

Is hacking justified?

9 of 73

“Of course we want to make

military drones safe!”

- naive me

9

?

?

?

?

?

Who benefits?

Is hacking justified?

Is participation inherently bad?

10 of 73

“Of course we want to make

military drones safe!”

- naive me

10

?

?

?

?

?

Who benefits?

Is hacking justified?

Is participation inherently bad?

Who is responsible?

11 of 73

“Of course we want to make

military drones safe!”

- naive me

11

?

?

?

?

?

Who benefits?

Is hacking justified?

Is participation inherently bad?

Who is responsible?

Does the good outweigh the bad?

12 of 73

“Verification is inherently good.”

  • an oft-held axiom

- naive me

12

13 of 73

Is it good to verify a drone?

- naive me

13

14 of 73

Verification is a technology that can be used for profound good

and for profound evil.

- naive me

14

15 of 73

Proof automation makes it

easier to do profound good

and profound evil.

- naive me

15

16 of 73

Dual Use:

when your research makes it

easier to do profound good

and profound evil.

- naive me

16

17 of 73

Dual Use:

when your research makes it

easier to do profound good

and profound evil. This is everywhere in PL/FM/SE.

17

18 of 73

Ethics in Proof Automation

18

19 of 73

Ethics has more questions

than answers.

19

?

?

?

?

?

Ethics in Proof Automation

20 of 73

There isn’t a single universal

ethical framework.

20

Ethics in Proof Automation

21 of 73

The ACM Ethics Code is one

ethical framework.

21

Ethics in Proof Automation

22 of 73

The ACM Ethics Code is one

ethical framework. Most of you are bound by it.

22

Ethics in Proof Automation

23 of 73

23

24 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

24

ACM Ethics Code

General Ethical Principles

25 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

25

ACM Ethics Code

General Ethical Principles

26 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

26

ACM Ethics Code

General Ethical Principles

?

?

27 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

27

ACM Ethics Code

General Ethical Principles

28 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

28

ACM Ethics Code

General Ethical Principles

29 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

29

ACM Ethics Code

General Ethical Principles

?

30 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

30

ACM Ethics Code

General Ethical Principles

?

?

31 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

31

ACM Ethics Code

General Ethical Principles

?

?

?

32 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

32

ACM Ethics Code

General Ethical Principles

?

?

?

?

33 of 73

A computing professional should...

1.1 Contribute to society and to human well-being,

acknowledging that all people are stakeholders in computing.

1.2 Avoid harm.

1.3 Be honest and trustworthy.

1.4 Be fair and take action not to discriminate.

1.5 Respect the work required to produce new ideas, inventions,

creative works, and computing artifacts.

1.6 Respect privacy.

1.7 Honor confidentiality.

33

ACM Ethics Code

General Ethical Principles

?

?

?

34 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

2.4 Accept and provide appropriate professional review.

2.5 Give comprehensive and thorough evaluations of … systems …

2.6 Perform work only in areas of competence.

2.7 Foster public awareness … of computing … and … consequences.

2.8 Access computing and communication resources only when

authorized or when compelled by the public good.

2.9 Design and implement systems that are robustly and

usably secure.

34

ACM Ethics Code

Professional Responsibilities

35 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

2.4 Accept and provide appropriate professional review.

2.5 Give comprehensive and thorough evaluations of … systems …

2.6 Perform work only in areas of competence.

2.7 Foster public awareness … of computing … and … consequences.

2.8 Access computing and communication resources only when

authorized or when compelled by the public good.

2.9 Design and implement systems that are robustly and

usably secure.

35

ACM Ethics Code

Professional Responsibilities

36 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

2.4 Accept and provide appropriate professional review.

2.5 Give comprehensive and thorough evaluations of … systems …

2.6 Perform work only in areas of competence.

2.7 Foster public awareness … of computing … and … consequences.

2.8 Access computing and communication resources only when

authorized or when compelled by the public good.

2.9 Design and implement systems that are robustly and

usably secure.

36

ACM Ethics Code

Professional Responsibilities

?

37 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

2.4 Accept and provide appropriate professional review.

2.5 Give comprehensive and thorough evaluations of … systems …

2.6 Perform work only in areas of competence.

2.7 Foster public awareness … of computing … and … consequences.

2.8 Access computing and communication resources only when

authorized or when compelled by the public good.

2.9 Design and implement systems that are robustly and

usably secure.

37

ACM Ethics Code

Professional Responsibilities

38 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

… Computing professionals must abide by … rules unless there is a

compelling ethical justification to do otherwise. Rules that are

judged unethical should be challenged … A computing professional

should consider challenging the rule through existing channels

before violating the rule. A computing professional who decides to

violate a rule because it is unethical, or for any other reason, must

consider potential consequences and accept responsibility …

38

ACM Ethics Code

Professional Responsibilities

39 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

… Computing professionals must abide by … rules unless there is a

compelling ethical justification to do otherwise. Rules that are

judged unethical should be challenged … A computing professional

should consider challenging the rule through existing channels

before violating the rule. A computing professional who decides to

violate a rule because it is unethical, or for any other reason, must

consider potential consequences and accept responsibility …

39

ACM Ethics Code

Professional Responsibilities

40 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

… Computing professionals must abide by … rules unless there is a

compelling ethical justification to do otherwise. Rules that are

judged unethical should be challenged … A computing professional

should consider challenging the rule through existing channels

before violating the rule. A computing professional who decides to

violate a rule because it is unethical, or for any other reason, must

consider potential consequences and accept responsibility …

40

ACM Ethics Code

Professional Responsibilities

41 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

… Computing professionals must abide by … rules unless there is a

compelling ethical justification to do otherwise. Rules that are

judged unethical should be challenged … A computing professional

should consider challenging the rule through existing channels

before violating the rule. A computing professional who decides to

violate a rule because it is unethical, or for any other reason, must

consider potential consequences and accept responsibility

41

ACM Ethics Code

Professional Responsibilities

42 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

… Computing professionals must abide by … rules unless there is a

compelling ethical justification to do otherwise. Rules that are

judged unethical should be challenged … A computing professional

should consider challenging the rule through existing channels

before violating the rule. A computing professional who decides to

violate a rule because it is unethical, or for any other reason, must

consider potential consequences and accept responsibility

42

ACM Ethics Code

Professional Responsibilities

43 of 73

A computing professional should...

2.1 Strive to achieve high quality in … professional work.

2.2 Maintain high standards of … competence … and ethical practice.

2.3 Know and respect existing rules pertaining to professional work.

… Computing professionals must abide by … rules unless there is a

compelling ethical justification to do otherwise. Rules that are

judged unethical should be challenged … A computing professional

should consider challenging the rule through existing channels

before violating the rule. A computing professional who decides to

violate a rule because it is unethical, or for any other reason, must

consider potential consequences and accept responsibility

43

ACM Ethics Code

Professional Responsibilities

?

44 of 73

44

ACM Ethics Code

An Aside on Sponsors

45 of 73

45

ACM Ethics Code

An Aside on Sponsors

$$$

$$$

46 of 73

46

ACM Ethics Code

An Aside on Sponsors

$$$$$$$$$

$$$

47 of 73

47

ACM Ethics Code

An Aside on Sponsors

$$$$$$$$$

$$$

$$$$$$$$$

48 of 73

48

ACM Ethics Code

An Aside on Sponsors

$$$$$$$$$

$$$

$$$$$$$$$

?

?

?

49 of 73

49

ACM Ethics Code

An Aside on Sponsors

$$$

50 of 73

50

ACM Ethics Code

An Aside on Sponsors

$$$

51 of 73

51

ACM Ethics Code

An Aside on Sponsors

$$$

?

?

52 of 73

52

ACM Ethics Code

An Aside on Sponsors

$$$

53 of 73

A computing professional, especially one acting as a leader, should...

3.1 Ensure that the public good is the central concern during all

professional computing work.

3.2 Articulate, encourage acceptance of, and evaluate fulfillment of

social responsibilities by members of the organization or group.

3.3 Manage … resources to enhance the quality of working life.

3.4 Articulate, apply, and support policies and processes that

reflect the principles of the Code.

3.5 Create opportunities … to grow as professionals.

3.6 Use care when modifying or retiring systems.

3.7 Recognize and take special care of systems that become

integrated into the infrastructure of society.

53

ACM Ethics Code

Professional Leadership Principles

54 of 73

A computing professional, especially one acting as a leader, should...

3.1 Ensure that the public good is the central concern during all

professional computing work.

3.2 Articulate, encourage acceptance of, and evaluate fulfillment of

social responsibilities by members of the organization or group.

3.3 Manage … resources to enhance the quality of working life.

3.4 Articulate, apply, and support policies and processes that

reflect the principles of the Code.

3.5 Create opportunities … to grow as professionals.

3.6 Use care when modifying or retiring systems.

3.7 Recognize and take special care of systems that become

integrated into the infrastructure of society.

54

ACM Ethics Code

Professional Leadership Principles

55 of 73

What You Can Do

55

56 of 73

ACM COPE

https://ethics.acm.org/about/

56

What You Can Do

57 of 73

Direct Confrontation

57

What You Can Do

58 of 73

Direct Confrontation

58

What You Can Do

$$$$$$$$$

59 of 73

Direct Confrontation

59

What You Can Do

$$$$$$$$$

60 of 73

Direct Confrontation

60

What You Can Do

61 of 73

Direct Confrontation

61

What You Can Do

Not always safe!

62 of 73

Ask a Mentor

62

What You Can Do

63 of 73

Ask a Friend

63

What You Can Do

64 of 73

Get Into Department Policy

64

What You Can Do

65 of 73

Get Into SIGPLAN Policy

65

What You Can Do

66 of 73

Get Into ACM Policy

66

What You Can Do

67 of 73

Get Into National Tech Policy

67

What You Can Do

68 of 73

Case Studies

68

69 of 73

Next Class

69

70 of 73

  1. Write one paragraph before each discussion
  2. Write one paragraph after each hack sesh
  3. Co-facilitate one discussion
  4. Give one elevator pitch toward the end of class
  5. Write one 2-5 page group project proposal

70

Next Class

Post!

71 of 73

  • Write one paragraph before each discussion
  • Write one paragraph after each hack sesh
  • Co-facilitate one discussion
  • Give one elevator pitch toward the end of class
  • Write one 2-5 page group project proposal

71

Sign Up!

Next Class

72 of 73

Philosophy of Logic

Ethics

Dependent Type Theory

Language Design

Solver-Aided Verification

Program Synthesis

Compilers

Systems

Security

Software Engineering

Human-Computer Interaction

Deep Learning

72

Foundations

Next Class

73 of 73

I hope you feel

informed and empowered

to ask questions

and do the right thing.

73