Cs1022 computer programming principles
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

CS1022 Computer Programming & Principles PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on
  • Presentation posted in: General

CS1022 Computer Programming & Principles. Lecture 3.1 Set Theory (1). Plan of lecture. Why set theory? Sets and their properties Membership and definition of sets “Famous” sets Types of variables and sets Sets and subsets Venn diagrams Set operations. Why set theory?.

Download Presentation

CS1022 Computer Programming & Principles

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cs1022 computer programming principles

CS1022Computer Programming & Principles

Lecture 3.1

Set Theory (1)


Plan of lecture

Plan of lecture

  • Why set theory?

  • Sets and their properties

  • Membership and definition of sets

  • “Famous” sets

  • Types of variables and sets

  • Sets and subsets

  • Venn diagrams

  • Set operations

CS1022


Why set theory

Why set theory?

  • Set theory is a cornerstone of mathematics

  • Provides a convenient notation for many concepts in computing such as lists, arrays, etc. and how to process these

CS1022


Cs1022 computer programming principles

Sets

  • A set is

    • A collection of objects

    • Separated by a comma

    • Enclosed in {...} (curly brackets)

  • Examples:

    • {Edinburgh, Perth, Dundee, Aberdeen, Glasgow}

    • {2, 3, 11, 7, 0}

    • {CS1015, CS1022, CS1019, SX1009}

  • Each object in a set is called an element of the set

  • We use italic capital letters to refer to sets:

    • C = {2, 3, 11} is the set C containing elements 2, 3 and 11

CS1022


Sets indices

Sets – indices

  • Talk about arbitrary elements, where each subscript is a different integer:

    • {ai, aj, ..., an}

  • Talk about systematically going through the set, where each superscript is a different integer:

    • {a1i, a2j, ..., a7n}

    • {Edinburgh1, Perth2, Dundee3, Aberdeen4, Glasgow5}

CS1022


Properties of sets

Properties of sets

  • The order of elements is irrelevant

    • {1, 2, 3} = {3, 2, 1} = {1, 3, 2} = {2, 3, 1}

  • There are no repeated elements

    • {1, 2, 2, 1, 3, 3} = {1, 2, 3}

  • Sets may have an infinite number of elements

    • {1, 2, 3, 4, ...} (the “...” means it goes on and on...)

    • What about {0, 4, 3, 2, ...}?

CS1022


Membership and definition of sets

Membership and definition of sets

  • Membership of a set

    • a S– represents that ais an element of set S

    • a  S – represents that ais not an element of set S

  • For large sets we can use a property (a predicate!) to define its members:

    • S = {x : P(x)} – S contains those values for x which satisfy property P

    • N = { x : x is an odd positive integer} = {1, 3, 5, ...}

CS1022


Why set theory1

Why set theory?

  • Example: check if an element occurs in a collection

search though

collection by

superscript.

CS1022


Names of famous sets

Names of “famous” sets

  • Some sets have a special name and symbol:

    • Empty set: has no element, represented as { } or 

    • Natural numbers: N = {1, 2, 3, ...}

    • Integers: Z = {..., -3, -2, -1, 0, 1, 2, 3, ...}

    • Rational numbers: Q = {p/q : p, q  Z, q  0}

    • Real numbers: R = {all decimals}

  • N.B.: in some texts/books 0 N

CS1022


Types of variables and sets

Types (of variables) and sets

  • Many modern programming languages require that variables be declared as belonging to a data type

  • A data type is a set with a selection of operations on that set

    • Example: type “int” in Java has operations +, *, div, etc.

  • When we declare the type of a variable we state what set the value of the variable belongs to and the operations that can be applied to it.

CS1022


Sets and subsets

Sets and subsets

  • Some sets are contained in other sets

    • {1, 2, 3} is contained in {1, 2, 3, 4, 5}

    • N (natural numbers) is contained in Z (integers)

  • Set A is a subset of set B if every element of A is in B

    • We represent this as A  B

    • Formally,

      A  B if, and only if, x ((x  A) (x  B))

CS1022


Venn diagrams

Venn diagrams

  • A diagram to represent sets and how they relate

  • A set is represented as an oval, a circle or rectangle

    • With or without elements in them

  • Venn diagrams show area of interest in grey

  • Venn diagram showing a set and a subset

D

C

A

B

3

1

472

2

John Venn

D C

CS1022


Set equality 1

Set equality (1)

  • Two sets are equal if they have the same elements

  • Formally, A and B are equal if A  Band B  A

  • That is,

    x ((x  A) (x  B)) and y ((y  B) (y  A))

  • We represent this as

    A = B

CS1022


Set equality 2

Set equality (2)

  • Let A = {n : n2 is an odd integer}

  • Let B = {n : n is an odd integer}

  • Show that A = B

CS1022


Set equality 3

Set equality (3)

Proof has two parts

  • Part 1: all elements of A are elements of B

  • Part 2: all elements of B are elements of A

CS1022


Set operations union 1

Set operations: union (1)

  • The union of sets A and B is

    A  B = {x : x  Aorx  B}

  • That is,

    • Those elements belonging to Atogether with

    • Those elements belonging to Band

    • (Possibly) those elements belonging to both A and B

    • N.B.: no repeated elements in sets!!

  • Examples:

    {1, 2, 3, 4}  {4, 3, 2, 1} = {1, 2, 3, 4}

    {a, b, c}  {1, 2} = {a, 1, b, 2, c}

CS1022


Set operations union 2

Set operations: union (2)

  • Venn diagram (area of interest in grey)

B

A

A B

CS1022


Set operations intersection 1

Set operations: intersection (1)

  • The intersection of sets A and B is

    A  B = {x : x  Aandx  B}

  • That is,

    • Only those elements belonging to both AandB

  • Examples:

    {1, 2, 3, 4}  {4, 3, 2, 1} = {1, 2, 3, 4}

    {a, b, c}  {1, 2} = { } =  (empty set)

CS1022


Set operations intersection 2

Set operations: intersection (2)

  • Venn diagram (area of intersection in darker grey)

A

B

A B

CS1022


Set operations complement 1

Set operations: complement (1)

  • The complement of a set B relative to a set A is

    A – B = A \ B = {x : x  Aandx  B}

  • That is,

    • Those elements belonging to Aandnot belonging to B

  • Examples:

    {1, 2, 3, 4} – {4, 3, 2, 1} = { } =  (empty set)

    {a, b, c} – {1, 2} = {a, b, c}

    {1, 2, 3} – {1, 2} = {3}

CS1022


Set operations complement 2

Set operations: complement (2)

  • Venn diagram (area of interest in darker grey)

B

A

A– B

CS1022


Universal set

Universal set

  • Sometimes we deal with subsets of a large set U

    • U is the universal set for a problem

  • In our previous Venn diagrams, the outer rectangle is the universal set

  • Suppose A is a subset of the universal set U

    • Its complement relative to U is U – A

    • We represent as U – A = A = {x : x  A}

A

CS1022


Set operations symmetric difference

Set operations: Symmetric difference

  • Symmetric difference of two sets A and B is

    AB = {x : (x  Aandx  B)or(x  Bandx  A)}

    That is:

    • Elements in A and not in Bor

    • Elements in B and not in A

      Or: elements in A or B, but not in both (grey area)

A

B

CS1022


Examples

Examples

Let

A = {1, 3, 5, 7} B = {2, 4, 6, 8} C = {1, 2, 3, 4, 5}

Find

  • A  C

  • B  C

  • A – C

  • B C

CS1022


Examples1

Examples

Let

A = {1, 3, 5, 7} B = {2, 4, 6, 8} C = {1, 2, 3, 4, 5}

Find

  • A  C = {1, 3, 5, 7}  {1, 2, 3, 4, 5} = {1, 2, 3, 4, 5, 7}

  • B  C

  • A – C

  • B C

CS1022


Examples2

Examples

Let

A = {1, 3, 5, 7} B = {2, 4, 6, 8} C = {1, 2, 3, 4, 5}

Find

  • A  C = {1, 3, 5, 7}  {1, 2, 3, 4, 5} = {1, 2, 3, 4, 5, 7}

  • B  C = {2, 4, 6, 8}  {1, 2, 3, 4, 5} = {2, 4}

  • A – C

  • B C

CS1022


Examples3

Examples

Let

A = {1, 3, 5, 7} B = {2, 4, 6, 8} C = {1, 2, 3, 4, 5}

Find

  • A  C = {1, 3, 5, 7}  {1, 2, 3, 4, 5} = {1, 2, 3, 4, 5, 7}

  • B  C = {2, 4, 6, 8}  {1, 2, 3, 4, 5} = {2, 4}

  • A – C = {1, 3, 5, 7} – {1, 2, 3, 4, 5} = {7}

  • B C

CS1022


Examples4

Examples

Let

A = {1, 3, 5, 7} B = {2, 4, 6, 8} C = {1, 2, 3, 4, 5}

Find

  • A  C = {1, 3, 5, 7}  {1, 2, 3, 4, 5} = {1, 2, 3, 4, 5, 7}

  • B  C = {2, 4, 6, 8}  {1, 2, 3, 4, 5} = {2, 4}

  • A – C = {1, 3, 5, 7} – {1, 2, 3, 4, 5} = {7}

  • B C = (B – C)  (C – B) = ({2, 4, 6, 8} – {1, 2, 3, 4, 5})  ({1, 2, 3, 4, 5} – {2, 4, 6, 8}) = {6, 8}  {1, 3, 5} = {1, 3, 5, 6, 8}

  • N.B.: ordering for better visualisation!

CS1022


Information modelling with sets

Information modelling with sets

  • We can build an information model with sets

    • “Model” means we don’t care how it is implemented

    • Essence: what information is needed

  • Example: information model for student record

    • NAME = {namei, ...., namen}

    • ID = {idi, ...., idn}

    • COURSE= {coursei, ...., coursen}

    • Student Info:

      (namej, idk, courses), where namej NAME, idk ID,and

      courses  COURSE.

    • Student Database is a set of student info:

      R = {(bob,345,{CS1022,CS1015}),

      (mary,222,{SX1009,CS1022,MA1004}),

      (jill,246,{SX1009,CS2013,MA1004}),

      (mary,247,{SX1009,CS1022,MA1004}), ...}

CS1022


Query the student database

Query the Student Database

  • R = {(bob,345,{CS1022,CS1015}),

    (mary,222,{SX1009,CS1022,MA1004}),

    (jill,246,{SX1009,CS2013,MA1004}),

    (mary,247,{SX1009,CS1022,MA1004}), ...}

  • Query to obtain a class list. Give set C, where:

    C= {(N,I) : (N,I,Courses)  Rand CS1022  Courses}

    = {(bob,345), (mary,222), (mary,247), ...}

CS1022


Summary

Summary

You should now know:

  • What sets are and how to represent them

  • Venn diagrams

  • Operations with sets

  • How to build information models with sets and how to operate with this model

CS1022


Further reading

Further reading

  • R. Haggarty. “Discrete Mathematics for Computing”. Pearson Education Ltd. 2002. (Chapter 3)

  • Wikipedia’s entry

  • Wikibooks entry

CS1022


  • Login