38
snick snack CPSC 121: Models of Computation 2009 Winter Term 1 Introduction & Motivation Steve Wolfman, based on notes by Patrice Belleville and others 1

Snick snack CPSC 121: Models of Computation 2009 Winter Term 1 Introduction & Motivation Steve Wolfman, based on notes by Patrice Belleville and others

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

snick

snack

CPSC 121: Models of Computation2009 Winter Term 1

Introduction & Motivation

Steve Wolfman, based on notes by Patrice Belleville and others

1

Learning Goals: In-Class

By the end of the unit, you should be able to:– Give an example of how we can apply formal

reasoning and computers to a simple, real-world task.

– Give an example of how a computational solution to a simple task might go wrong.

– Describe the two “big stories” of CS121: reasoning about computation and building computers.

2

Outline

• Introductions

• Introductions Exercise

• The CS121 Story

• Course Administration• I Can’t Believe It’s Not a Pop Quiz

(but it isn’t)

• Next Lecture Notes

3

Introductions

Steven [email protected]

ICICS 239; office hours; some every day, listed on the website

I also have an open door policy:If my door is open, come in and talk!Also, I will usually be available after class.And, you can make appointments with me.

4

Outline

• Introductions

• Introductions Exercise

• The CS121 Story

• Course Administration• I Can’t Believe It’s Not a Pop Quiz

(but it isn’t)

• Next Lecture Notes

5

More Introductions

Introduce yourselves… how?

6

Introduce Yourselves in Groups of 4-ish

FIND ~3 people around you, preferably people you’ve never met. Form a group.

Have everyone in the group introduce themselves to everyone else in the group. (Count the number of intros this takes.)

Tell everyone why you’re here, your favorite career that you’ll never have, and one unusual thing about you.

7

Problem: How Many Introductions?

Problem: How many introductions does it take for everyone in a group to meet everyone else in a group?

8

Concept Q: Intros for 4

How many introductions does a group of 4 people take?

a.3

b.4

c.6

d.12

e.None of these

9

Problem: How Many Introductions?

Problem: How many introductions does it take for everyone in a group to meet everyone else in a group?

To solve this problem, we need to model it more formally.10

How Many Introductions?

Model: One “introduction” is one person introducing themselves to another person. (Two people need two introductions to introduce themselves to each other.)

A group has “introduced themselves” when every group member has introduced themselves to every other member. (No self-introductions!)

Hi, I’m Grace H.

Hi Grace, I’m Alan T.Intro #1

Intro #211

How Many Introductions?

Problem: How many introductions does it take for a group of n people to introduce themselves?

12

How Many Introductions?

For 2 people?

For 3 people?

For 4 people?

For 5 people?

For n people?

13

How Many Introductions?

For 100 people?

For 8675309 people?

For 1526097757 people?

14

Program for Introductions

introductions n = n * (n - 1)

(In a programming language called Haskell.)

int introductions(int n){ return n * (n - 1);}

(In the Java programming language.)

Do you believe it?15

Program for Introductions: Testing

Java version with 100: 9900

Do you believe it?16

Program for Introductions: Testing

Java version with 100: 9900

Java version with 8675309: 265642364

Do you believe it?17

Program for Introductions: Testing

Java version with 100: 9900

Java version with 8675309: 265642364

Java version with 1526097757: -645820308

Um.. Do you believe it?Does this fit with your “model” of Java computation?

18

Program for Introductions: Testing

Haskell version with 100: 9900

Haskell version with 8675309: 75260977570172

Haskell version with 1526097757: 2328974362394333292

Do you believe it?Will Haskell always get the right answer?

19

Outline

• Introductions

• Introductions Exercise

• The CS121 Story

• Course Administration• I Can’t Believe It’s Not a Pop Quiz

(but it isn’t)

• Next Lecture Notes

20

Questions that CPSC121 Answers

How can we prove that our formula for the number of introductions is correct? (induction)

What went wrong in our Java implementation? (number representation)

How do we model and reason about computational systems at various levels of abstraction? (propositional and predicate logic, proof, sets, functions, DFAs, relations, ...)

21

CPSC 121: The Big Stories

Theory

How do we model computational systems (programs/computers) in order to design and analyze them?

End goal: Reason about what is and isn’t possible to compute.

Hardware

How do we build devices that can compute out of real materials (“sand and rocks and water”)?

End goal: break down a full

computer into simple “gates”.

Bonus end goal: Develop tools to communicate computational ideas clearly and precisely. 22

Our Working Computer

23

CPSC 121: The (By?)Products

Theory

Products:• Propositional logic• Predicate logic• Sets and functions• Proof techniques (especially

induction!)

• Finite Automata/Regular Expressions

• Universal machines• Uncomputability

Hardware

Products:• Gates• Combinational circuits• Binary data

representations• Sequential circuits• A full computer

24

What is CPSC 121 Good For?

With CPSC121’s help, you will be able to:• model important problems so that they are easier

to discuss, reason about, solve, and test.

• learn new modeling formalisms more easily.

• communicate clearly and unambiguously with other CS experts on complex topics.

• characterize algorithms (CS problem solutions), such as proving their correctness or efficacy.

• critically read proofs: justifying why each step is correct and judging what the proof means.

25

Outline

• Introductions

• Introductions Exercise

• The CS121 Story

• Course Administration• I Can’t Believe It’s Not a Pop Quiz

(but it isn’t)

• Next Lecture Notes

26

Course Administration

Explore the CPSC 121 website:

http://www.ugrad.cs.ubc.ca/~cs121/

You are required to be familiar with the course website. Ignorance of information on the website may harm you.

27

Additional Administrative Notes

The first quiz is “any marks gives full marks”. So, if you get more than 0%, we’ll count it as 100%.

Labs, tutorials, and the Demco Learning Centre all start NEXT week.

TA assignments will be up by the end of the week (but may change through ~week 2).

28

Outline

• Introductions

• Introductions Exercise

• The CS121 Story

• Course Administration• I Can’t Believe It’s Not a Pop Quiz

(but it isn’t)

• Next Lecture Notes

29

Outline

• Introductions

• Introductions Exercise

• The CS121 Story

• Course Administration• I Can’t Believe It’s Not a Pop Quiz

(but it isn’t)

• Next Lecture Notes

30

Learning Goals: In-Class

By the end of the unit, you should be able to:– Give an example of how we can apply formal

reasoning and computers to a simple, real-world task.

– Give an example of how a computational solution to a simple task might go wrong.

– Describe the two “big stories” of CS121: reasoning about computation and building computers.

31

Next Lecture Learning Goals: Pre-Class

By the start of class, you should be able to:– Translate back and forth between simple

natural language statements and propositional logic.

– Evaluate the truth of propositional logic statements using truth tables.

– Translate back and forth between propositional logic statements and circuits that assess the truth of those statements.

32

Next Lecture Prerequisites

Read Sections 1.1 and 1.4

Solve problems like Exercise Set 1.1, #1-18 and Exercise Set 1.4, #1-17.

You should have completed the open-book, untimed quiz on Vista that’s due by 9PM the day before class.

(You are responsible for ensuring that you have submitted the quiz by 9PM!)

33

snick

snack

Some Things to Try...

(on your own if you have time, not required)

34

What Works is NOT Always Obvious

Let’s sort cards with the Quicksort “Algorithm” :1. If there are no cards in a deck, it’s sorted.

2. Otherwise, pick a card at random.a. Divide the other cards into a deck of cards less than or equal to

that card and a deck of cards greater than it.

b. Give the “less” deck to a helper and have them Quicksort it.

c. Give the “greater” deck to a helper and have them Quicksort it.

d. Put the Quicksorted “less” deck on top of the picked card on top of the Quicksorted “greater” deck. How can that work?

It relies on itself to get its work done!TRY it with a deck of cards.

To compare cards, first: A < 2–10 < J < Q < KIf they’re equal so far: Clubs < Diamonds < Hearts < Spades35

What Doesn’t Work isNOT Always Obvious (1 of 2)

Class Main { public static void main(String[] args) { // Let's add up 4 quarters. System.out.println("4 quarters gives us:"); System.out.println(0.25 + 0.25 + 0.25 + 0.25);

// Let's do something a hundred times. int i = 100; do { // Make i one smaller. i--; } while (i > 0);

System.out.println("Done!"); System.out.println("i ended up with the value: " + i); System.out.println("It went down by: " + (100 - i)); }}

Predict and then TRY: What does this print?(If you’re just taking 111, give it a week and then try.)

36

What Doesn’t Work isNOT Always Obvious (2 of 2)

Class Main { public static void main(String[] args) { // Let's add up 10 dimes. System.out.println("10 dimes gives us:"); System.out.println(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1); // Let's try do something a hundred times.. // but accidentally go forever int i = 100; do { // Make i one LARGER. Oops! i++; } while (i > 0);

System.out.println("Done!"); System.out.println("i ended up with the value: " + i); System.out.println("It went down by: " + (100 - i)); }}

Predict and then TRY: What does this print?37

Even Bigger Story:“Clear Thought”

Computer Science is the science of “clear thought”, but not like philosophy (or religion, or poetry, or...).

CS is the science of thoughts so clear in their expression and intent that we can realize them: execute them or test their truth in the world.

CPSC121 provides and applies the fundamentals you need to model the world with “clear thought”.

38