1 of 58

Reading Files

Python Programming

April 1, 2022

STEAM Clown ™ Productions

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

2 of 58

Licensing & Attribution

My Open Source Philosophy - I have come to realize that I’m really not competing with other teachers. Maybe I have some local competition, �but in reality, if a student is not coming to my class or my school, then I’m not competing with other teachers in any way… If you work more than a �District away, then we really are not competitors. Let's Share... Collaborate... Help each other... I, and you, may have sweat blood and tears developing a lesson plan, a lab, or presentation… There is an ENORMOUS unpaid value there… I get that… I don’t begrudge teachers who are trying to sell their collateral… I’m just saying that is not what I’m going to do. This is my plan… I’m going to share virtually everything I develop. Join Me!!! See More

CC BY-NC-SA 4.0

https://creativecommons.org/licenses/by-nc-sa/4.0/

https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode

GNU Public License & EUPL (European Union Public Licence)

Any included or linked Programming Code Is licensed under GNU General Public License v3.0 & and / or licensed under EUPL 1.2 or later

See the Appendix for Additional Licensing & Attribution Information

2

Please maintain this slide with any modifications you make:

This content is licensed as Open Source / Creative Commons: A Specific use license has been provided to the Silicon Valley education Foundation & Silicon Valley CTE

Much of the content in these slides is a Re-Telling of material provided by Dr. Chuck Severance - From PY4E, or adapted from the book Automate the Boring Stuff with Python. Both are Awesome open source sites for teaching Python. I have modified them some, to work better for my Mechatronics Engineering class.

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

3 of 58

Objective, Overview, & Introduction

Variables are a fine way to store data while your program is running, but if you want your data to persist even after your program has finished, you need to save it to a file

  • Think of a file’s contents as a single string value, potentially gigabytes in size
  • You will learn how to use Python �to create, read, and save files on �the hard drive

3

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

4 of 58

When You See:👉 Try This:

  • Browser: You can use a web based Browser IDE like Replit.com, or PythonTutor
  • Installed Python IDLE: If you installed Python open an IDLE window
  • Please take the time to build the example in TinkerCAD or on a real Breadboard.

4

print("Hisssssssssss")

Try This 👉

Try This

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

5 of 58

Sponsorship Page

I would like to thank <Your Company or Organization Here> for their generous support of my classroom and curriculum development. <Your Company or Organization Here> has <Your value proposition, call to action, & related content and message>

How to Provide a Stipend: You can send something to my personal PayPal.Me Account, Venmo Account, or my Patrion Account, even Buy Stuff On My Amazon Classroom Wishlist, donate to my DonorsChoose projects, or contact me at TopClown@STEAMClown.org, if you want to contribute another way.

(If you would like to sponsor this presentation, please contact TopClown@STEAMClown.org )

5

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

6 of 58

What You Will Know...

Prior Knowledge & Certifications

  • Python String, Lists, Functions

What You Will Know & Be Able To Do

  • Create, Open, and use the data in a file
  • Write files, to be able to save the data

6

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

7 of 58

How You Will Be Measured

  • You will show the ability to explain the key lesson concepts
  • Answer a few Quiz questions
  • Demonstrate your understanding of the coding concepts through programming labs

7

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

8 of 58

Essential Questions

  • What is the value of saving data?
  • Why use a file structure rather than just variables

8

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

9 of 58

Resources & Materials Needed

  • PC, Laptop or Other device to access sites & applications specified by your Instructor
  • Each lesson will have specific items needed to complete the labs and tasks
  • Automate the Boring Stuff with Python - Chapter 9 (Reading & Writing)
  • Py4E - Files

9

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

10 of 58

New Words or Concepts...

  • File Handle
  • Read
  • Write

10

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

11 of 58

Prerequisite or Pre-Quiz...

This is not a graded Quiz… It’s to help me and you understand what you already know, and where you may need to focus...

  • Link to prerequisite work, videos or links
  • Link to Pre-Quiz

11

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

12 of 58

Mess With Data - Where Is It?

12

Software

Ram �Main Memory

Central Processing Unit

Secondary Memory

Input / Output

I'm Talking Here

if x<3:

print('less')

What's Next?

Files R Us

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

13 of 58

What Is A File?

A text file can be thought of as a sequence of lines

13

2021-04-23,09:26:05pm,robot2,led-2,on

2021-04-23,09:34:55pm,robot2,servo,wave

2021-04-23,10:38:10pm,robot2,rgb-led,green

2021-04-23,10:39:05pm,robot2,led-2,off

2021-04-23,11:41:55pm,robot2,servo,wave

2021-04-23,11:42:02pm,robot2,led-1,on

2021-04-24,01:11:02am,robot2,led-1,off

2021-04-24,01:41:55am,robot2,servo,90

This one has lines that are a list of comma delimited strings

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

14 of 58

What Is A File?

A text file can be thought of as a sequence of lines

14

From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008

Return-Path: <postmaster@collab.sakaiproject.org>

Date: Sat, 5 Jan 2008 09:12:18 -0500

To: source@collab.sakaiproject.org

From: stephen.marquard@uct.ac.za

Subject: [sakai] svn commit: r39772 - content/branches/

Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772

This one looks like an email message

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

15 of 58

What Is A File?

A text file can be thought of as a sequence of lines

15

This is your last chance.

After this, there is no turning back.

You take the blue pill - the story ends,

you wake up in your bed and believe

whatever you want to believe.

You take the red pill - you stay in

Wonderland and I show you how deep

the rabbit-hole goes.

Take the Red Pill

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

16 of 58

Opening a File

  • Before we can read the contents of the file, we must tell Python which file we are going to work with and what we will be doing with the file
  • This is done with the open() function
  • open() returns a “file handle” - a variable used to perform operations on the file
  • Similar to “File -> Open” in a Word Processor

16

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

17 of 58

Copy or make a text file

If you want to download a file using the raspberry Pi command terminal you can use this command

wget http://path_to_file�wget -O new_file_name http://path_to_file ← Over Writes

You should cd to the directory where you want this file to get copied to. The wget will copy the file to the current working directory.

17

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

18 of 58

Using open()

18

The function open() returns a handle use to manipulate the file

filename is a string

mode is optional and should be 'r' if we are planning to read the file and 'w' if we are going to write to the file

handle = open(filename, mode)

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

19 of 58

Using open()

19

handle = open(filename, mode)

fhand = open('matrix.txt', 'r')

returns the file handle pointer to the file

name of file

mode to open as read only

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

20 of 58

Using open() To Get The File Handle

20

fhand = open('matrix.txt', 'r')

print(fhand)

<_io.TextIOWrapper name='matrix.txt' mode='r' encoding='UTF-8'>

matrix.txt

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

21 of 58

When Files are Missing

21

fhand = open('stuff.txt', 'r')

print(fhand)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

FileNotFoundError: [Errno 2] No such file or directory: 'stuff.txt'

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

22 of 58

The newline Character

  • We use a special character called the “newline” to indicate when a line ends
  • We represent it as \n in strings
  • Newline is still one character - not two

22

stuff = 'Hello\nWorld!'

print(stuff)

stuff = 'X\nY'

print(stuff)

len(stuff)

Hello

World!

X

Y

3

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

23 of 58

File Processing

A text file can be thought of as a sequence of lines

23

This is your last chance.

After this, there is no turning back.

You take the blue pill - the story ends,

you wake up in your bed and believe

whatever you want to believe.

You take the red pill - you stay in

Wonderland and I show you how deep

the rabbit-hole goes.

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

24 of 58

File Processing

A text file can be thought of as a sequence of lines�A text file has newlines at the end of each line

24

This is your last chance.\n

After this, there is no turning back.\n

\n

You take the blue pill - the story ends,\n

you wake up in your bed and believe\n

whatever you want to believe.\n

You take the red pill - you stay in\n

Wonderland and I show you how deep\n

the rabbit-hole goes.\n

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

25 of 58

Reading Files in Python

25

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

26 of 58

File Handle as a Sequence

  • A file handle open for read can be treated as a sequence of strings where each line in the file is a string in the sequence�
  • We can use the for statement to iterate through a sequence�
  • Remember - a sequence is an ordered set

26

xfile = open('matrix.txt')

for cheese in xfile:

print(cheese)

This is your last chance.

After this, there is no turning back.

You take the blue pill - the story ends,

you wake up in your bed and believe

whatever you want to believe.

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

27 of 58

A Tale Of Two \n

Remember that the file has \n characters at the end of every line...

27

xfile = open('matrix.txt')

for cheese in xfile:

print(cheese)

This is your last chance.\n

After this, there is no turning back.\n

\n

You take the blue pill - the story ends,\n

you wake up in your bed and believe\n

whatever you want to believe.\n

You take the red pill - you stay in\n

Wonderland and I show you how deep\n

the rabbit-hole goes.\n

This is your last chance.

After this, there is no turning back.

You take the blue pill - the story ends,

you wake up in your bed and believe

whatever you want to believe.

This is your last chance.\n

\n

After this, there is no turning back.\n

\n

\n

\n

You take the blue pill - the story ends,\n

\n

you wake up in your bed and believe\n

\n

whatever you want to believe.\n

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

28 of 58

Opening a file with a File Handle

28

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

29 of 58

Opening a file with a File Handle

29

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

30 of 58

Counting Lines in a File

  • Open a file read-only
  • Use a for loop to read each line
  • Count the lines and print out the number of lines

30

fhand = open('matrix.txt')

# Need a variable to count the lines

for line in fhand:

# Need to increment the line count Variable

print(line)

print('Line Count:', count)

fhand = open('mbox-short.txt')

# Need a variable to count the lines

for line in fhand:

# Need to increment the line count Variable

print(line)

print('Line Count:', count)

Line Count: 10

Line Count: 191

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

31 of 58

Opening a file and Reading Line by Line

& Counting lines

31

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

32 of 58

Striping Characters from a line in a File

32

xfile = open('mbox-short.txt')

for line in xfile:

print(line)

From: stephen.marquard@uct.ac.za

From: louis@media.berkeley.edu

From: zqian@umich.edu

...

What are all these blank lines doing here?

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

33 of 58

Striping Characters from a line in a File

33

xfile = open('mbox-short.txt')

for line in xfile:

if line.startswith('From:'):

print(line)

From: stephen.marquard@uct.ac.za\n

\n

From: louis@media.berkeley.edu\n

\n

From: zqian@umich.edu\n

...

Remember the \n

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

34 of 58

Lots of String Methods

  • capitalize() - Converts the first character to upper case
  • count() - Returns the number of times a specified value occurs in a string
  • endswith() - Returns true if the string ends with the specified value
  • find() - Searches the string for a specified value and returns the position of where it was found
  • index() - Searches the string for a specified value and returns the position of where it was found
  • lower() - Converts a string into lower case
  • lstrip() - Returns a left trim version of the string
  • replace() - Returns a string where a specified value is replaced with a specified value
  • rindex() - Searches the string for a specified value & returns the last position where it was found
  • rstrip() - Returns a right trim version of the string
  • split() - Splits the string at the specified separator, and returns a list
  • startswith() - Returns true if the string starts with the specified value

34

Let's Try This One

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

35 of 58

.rstrip()

  • We can strip the whitespace from the right-hand side of the string using rstrip() from the string library�
  • The newline is considered “white space” and is stripped

35

xfile = open('mbox-short-short.txt')

for line in xfile:

line = line.rstrip()

print(line)

From: stephen.marquard@uct.ac.za\n

From: louis@media.berkeley.edu\n

From: zqian@umich.edu\n

...

The \n is from the print()

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

36 of 58

Opening a file and Reading Line by Line

& Counting lines

36

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

37 of 58

Opening and reading the "Whole" file

37

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

38 of 58

Reading the *Whole* File

  • We can read the whole file (newlines and all) into a single string

38

xfile = open('matrix.txt')

whale = xfile.read()

print(len(whale))

print(whale[80:89])

273

blue pill

whale is a big string that can be indexed

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

39 of 58

Opening and reading the "Whole" file

39

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

40 of 58

Searching Through a File

  • We can put an if statement in our for loop to only print lines that meet some criteria

40

xfile = open('mbox-short.txt')

for line in xfile:

if line.startswith('From:'):

print(line)

From: stephen.marquard@uct.ac.za

From: louis@media.berkeley.edu

From: zqian@umich.edu

...

What are all these blank lines doing here?

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

41 of 58

Searching Through a File

  • We can put an if statement in our for loop to only print lines that meet some criteria

41

xfile = open('mbox-short.txt')

for line in xfile:

if line.startswith('From:'):

print(line)

From: stephen.marquard@uct.ac.za\n

\n

From: louis@media.berkeley.edu\n

\n

From: zqian@umich.edu\n

...

Remember the \n

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

42 of 58

Opening, reading, and finding stuff in a file

42

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

43 of 58

Opening, reading, and making a list of emails

43

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

44 of 58

Opening and Reading "Robot" Commands

44

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

45 of 58

Summary

  • Secondary storage
  • Opening a file - file handle
  • File structure - newline character
  • Reading a file line by line with a for loop
  • Searching for lines
  • Reading file names
  • Dealing with bad files

Dig Deeper:

  • Automate the Boring Stuff with Python - Chapter 9 (Reading & Writing)
  • Py4E - Files

45

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

46 of 58

Thank You…

Questions?

46

Jim Burnham (AKA STEAM Clown)

  • Mechatronics Engineering Instructor at Silicon Valley Career Technical Education (SVCTE)
  • Engineering Teacher, Curriculum Developer, Workshop & Conference Presenter
  • LinkedIn - https://www.linkedin.com/in/jim-burnham-2243018/
  • Top Clown at TopClown@STEAMClown.org
  • Mechatronics Engineering Instructor (AKA Fire Breathing Robots)
  • Want to Support a Teacher? - Here Is How Can You Help

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

47 of 58

Reference Slides

47

STEAM Clown ™ Productions

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

48 of 58

Links for Students

  • robot1Command.txt
  • matrix.txt

48

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

49 of 58

Teachers: Before You Present

  • Update the Canvas Links, or Delete the bullets linking to Canvas links (Typically Labs)

49

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

50 of 58

Key: 📰 Slides / Audio 🎧 / 📽️▶️ Video/YouTube / 🎧▶️📽️ Audio/Video / ✨ Resources / 🖼️ Tutorial / 📖 Reading Activity / 📝 Writing Activity / 📖 📝 Reading/Writing / 📟 Coding / 🛠️ LAB Activity / 🚀 Quiz / 🔎 Review / ✔️ Mastery Check / ✍️ Sign Up /🍕 Extra Credit / 🕸️ Web Links / 👩🏽‍🎓🧑🏽‍🎓🧑🏿‍🎓👩‍🏫 Class / 🏵️📜📃 Certificate

/🧟 Review / 🦾 Practice / 🆙Level Up / 🎚️🦑📤🎯 🚧 - 🦑 Special Project -

Assignment Type: ⚓ Establishing (Minimum Standard) / ⛏️ Developing (Digging Deeper) / 💎 Aspiring (Putting It Together)

This is an ⚓ Establishing Assignment (Minimum Standard) - "Everyone Do" Assignment

This is an ⛏️ Developing (Digging Deeper) - "Everyone Should Do, To Stretch" Assignment

This is an 💎 Aspiring (Putting It Together) - "When you have done the ⚓ Establishing and⛏️ Developing" Assignment

  • 🚀 Formative Quiz - 🔎 Review
  • 🚀 Quiz -🔀 Mastery Path
  • 🚀 Summative Quiz -✔️ Skills Mastery Check
  • 🚀 Formative Quiz -
  • 8.1.0.3.2.4 - Python - Ch 3 - Functions - Quiz #2 -Built-In Functions - 🚀 Formative Quiz
  • 🚀 Quiz -🔀 Mastery Path -
  • 8.1.0.3.3.1 - Python - Ch 3 - Functions - Mastery Quiz #1 - 🚀 Quiz -🔀 Mastery Path
  • 🚀 Summative Quiz -✔️ Skills Mastery Check -
  • 8.1.0.3.3.1 - Python - Ch 3 - Functions - Skills Mastery Check Quiz #1 - 🚀 Summative Quiz -✔️ Skills Mastery Check

50

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

51 of 58

Education Standards

  • California's 2013 CTE Standards
  • Next Generation Science Standards
  • California Math Common Core Standards
  • California English Common Core Standards
  • California History-Social Science Standards
  • California English Language Development Standards
  • Next Generation Science Standards (1)
  • California's 2013 CTE Standards (2)
  • Related Instructional Objectives (SWBAT...)

51

51

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

52 of 58

52

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

53 of 58

Appendix

53

STEAM Clown ™ Productions

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

54 of 58

Appendix : Primary Sources & Attribution for Material Used

54

Please maintain this slide with any modifications you make

  • <Add Your Logo and Attribution here>
  • Much of this interpretation is primarily the Intellectual Property of Jim Burnham, Top STEAM Clown, at STEAMClown.org
  • My best attempt to properly attribute, or reference any other sources or work I have used are listed below. This presentation and content is distributed under the Creative Commons License and the The programming code found in this presentation or linked to on my Github site is distributed under the GPL and EUPL:
  • <Add additional attribution here>>

Much of the content in these slides is a Re-Telling of material provided by Dr. Chuck Severance - From PY4E, or adapted from the book Automate the Boring Stuff with Python. Both are Awesome open source sites for teaching Python. I have modified them some, to work better for my Mechatronics Engineering class.

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

55 of 58

Appendix : Primary Sources & Attribution for Material Used

55

Please maintain this slide with any modifications you make

  • <Add Your Logo and Attribution here>
  • Much of this interpretation is primarily the Intellectual Property of Jim Burnham, Top STEAM Clown, at STEAMClown.org
  • My best attempt to properly attribute, or reference any other sources or work I have used are listed below. This presentation and content is distributed under the Creative Commons License and the The programming code found in this presentation or linked to on my Github site is distributed under the GPL and EUPL:

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

56 of 58

Image Reference & Sources

56

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

57 of 58

57

Please maintain this slide with any modifications you make

  • Much of this interpretation is primarily the Intellectual Property of Jim Burnham, Top STEAM Clown, at STEAMClown.org
  • My best attempt to properly attribute, or reference any other sources or work I have used are listed below. This presentation and content is distributed under the Creative Commons License and the The programming code found in this presentation or linked to on my Github site is distributed under the GPL and EUPL:

STEAM Clown - License & Attribution Creative Commons License CC-BY-NC-SA 4.0 - Much of this interpretation is primarily the Intellectual Property of Jim Burnham, TopClown, at STEAMClown.org, I may have used other sources, and in that Re-Telling, I have made my best attempt to properly attribute, or reference any of these sources or works. They are probably listed below. I’m a Super Huge proponent of Open Source - Find out more...

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions

58 of 58

What To Fix, Add, Or Change

Presentation Planning:

58

© Copyright - STEAM Clown TM

Creative Commons Licenses - BY-NC-SA 4.0

STEAM Clown TM Productions