辅导案例-VSFX 160

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
Programming Introduction
By Deborah R. Fowler
VSFX 160
Programming
Linux/Bash
Houdini
Programming != Math != Proceduralism
Programming == Problem Solving
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
Python
• interpreted
• “less” syntax
• all about format
How will we use it?
• IDLE on Windows
• Linux
• Tkinter/turtle
• Many libraries
Python Shell
how do I get one?
On Windows:
Use IDLE (very basic interface or IDE –
Integrated Developers Environment – Discuss)
At Home: Type IDLE in the start menu
At Monty:
• double-click the idle.pyw in
C:/Python27/Lib/idlelib
• or right click any file with .py extension and
select IDLE
You can also create a simple python shell by
clicking python.exe in C:/Python27
Python Shell
How do I get one?
Python Shell
On Linux
On Linux:
Type python
No official IDE is installed, you can use a text
editor like gedit or geany
At home you might want to try sublime
To run a python program type
python filename.py
Introducing
IDLE
We have introduced
two concepts:
Variables and
Operators
Python
x = 3
variables
for storing information
Operators
Most languages have built-in
mathematical operations
+ addition
- subtraction
* multiplication
/ division (be careful with integers)
% modulus
(remainder on integer division)
variable literally means something that
can change value
stores data – all kinds – names, numeric
values, memory addresses etc.
in python they are not “typed” and do not
need to be declared beforehand …
variables
What does that
mean in python?
You still must know
what you are doing:
x + y will not work if x
is a string
Operator awareness
But 2 / 10 is .2
both integers
we can fix it
Modulus –
remainder on integer
division
Relational Operators
== equals
!= not equal
< less than
> greater than
>= greater than or equal to
<= less than or equal to
Truth statements
For selecting code
if condition:
do something
if x == 3:
y = 1
else:
y = 2
truth statements – for selecting in Python
if x == 3:
y = 1
else:
y = 2
x = 4
truth statements – add another line in else?
Test in IDLE
(don’t be fooled by
the prompt when
indenting)
x = 4
if x == 3:
y = 1
else:
y = 2
NOTES to explain:
• Formatting delineates blocks
• python code is saved in a .py file
• IDLE is an interactive shell
• python is an interpreted language
Python file
ifexample.py
Never be afraid/ashamed to look up syntax
Your brain is needed for problem solving, not
for memorizing rules
As you use it daily, it will become familiar
in-class exercise:
Write a program that prints “Hello World” in a .py
file in IDLE
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
homework:
http://deborahrfowler.com/
pointers to information
documentation/resources
exercise instructions
Turtle Graphics in
Python
By Deborah R. Fowler
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
Why I like Turtle Graphics:
Programming with visual output
Uses a Tkinter window (standard GUI –
Graphical User Interface)
http://www.deborahrfowler.com/PythonResources/PythonTurtle.html
http://www.openbookproject.net/thinkcs/python/english2e/ or
https://runestone.academy/runestone/books/published/thinkcspy/index.html
https://docs.python.org/2.7/library/turtle.html
Imagine a turtle with three attributes:
location
orientation
a pen (color, width/up/down)

in-class exercise:
Draw one of your initials using the turtle library
Looping – a way to repeat code
In python
for i in range(0,2):
print “hello world”
What would
our square
code look like?
Other code
What would
happen if we left
the last line off?
Draw more
than one
square?
We can nest
loops
in-class exercise:
Given:
circle(radius) – draws a circle of size radius
fillcolor(colorname) – sets the color attribute for fill
begin_fill() and end_fill() – similar to pu() and pd()
Create a snowman – have fun, be creative
Save your file and put it in the dropbox in a “Dailies” Folder
in-class exercise:
List is here:
https://docs.python.org/2/library/turtle.html

Functions
A group of code statements
Why?
Allows us to organize and build modularly
Allows easy repetition of code
Turning our
square into
a function
Adding
parameters
Calling with
variable
arguments
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
homework:
Create a better snowman and read chapters 1-6 of the
online resource:
https://runestone.academy/runestone/books/published/th
inkcspy/index.html
You may start on the quilting exercise (E1) but it is not
expected
Instructions on the link on the course notes
Programming Process
by Deborah R. Fowler
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
REVIEW
• Programming Process
• Algorithms
• Code Habits and details
• Variables
• Syntactic sugar
Today
Programming requires
clear and careful creative thinking
Programming
Process
Python
algorithms
Python In-class Exercises
Concepts
Organization
Concepts
learned are
building blocks
so ask questions
early on!
What is Programming?
Telling the computer what to do
• Problem solving
• Algorithms - plan
• Analysis – clear understanding of the problem
• Design – identify key concepts involved in a solution
• Program – express that solution in a language
… how do you learn it? Studying good examples, practice,
and experimentation

As a programmer you are problem solving – defining
the instructions (algorithm is the first step)
In-class Exercise
In-class Exercise
(can be found in 18th century writings, although they use a wolf)
Anaylsis – what can you leave behind? The dog does
not eat cabbage
Algorithm
Start on side A
Take the goat over to side B
Return alone to side A
Take the cabbage over to side B
Return with goat to side A
Take the dog to side B
Return alone to side A
Take the goat to side B
Steps lead to completion
Unambiguous
Appropriate level of detail
Well ordered instructions
Covers all possible outcomes
Algorithm is a general term for
a clear concise finite set of
instructions to solve a problem
Vogel 1979
r = c * sqrt(n) theta = n * 137.508
• r is the radius from center
• n is the number of the floret from center
• theta is the angle
Describes the head of a sunflower
SCRATCH
Here the pattern has
different geometry to
appear more like a
sunflower
Created in python
Created in Maya/mel
Houdini … with two expressions right in the interface
… and more
• Hscript expressions (houdini script)
• Python expressions (as above but with python)
• Python with HOM (Houdini Object Module) think PyMel
• Vex (wrangle nodes/vex code) think rsl or C++
• L-systems (formal grammar)
• And so on

CODE HABITS
Variable names
• meaningful
• add to the code readability
• (self-documenting code)
Not Good: hps, av, s
Good: hitsPerSecond, average, score
king_snake camelFace
shorthand
Syntactic sugar
• * / % then
• + -
• Left to right in expression
• Use () when in doubt!
Order of
Operators
Precedence
Build modularly!
Test as you go!
Summary
Algorithm – a clear concise plan, not specific to a
particular language syntax
Habits
• Human readable code – variables, comments
• Modularity – build in chunks
homework:
You may start on the quilting exercise (E1)
Functions
by Deborah R. Fowler
• Perform a task, then return control to your program (from
where they were called)
• Functions allow us to break up big programs into smaller
pieces
For example:
def myFunction():
// things defined here exist only here (code block)
// that is called encapsulation (it is a good thing)
// statements to do something go here
// called the body of the function
return value // returns a value - optional
The code is executed when the name is called
someVariable = myFunction()
myFunction():
// myFunction does something
return value // return
someVariable = myFunction()
Some have a list here
(parameters) where you
send in information
If it does, the call has a
list (arguments) with
information
Called with num1 and num2 (5 and 7)
Body of the function
Two parameters a and b
The number is 78125
So what does our
mysteryFunction do?
Unlike other programming
languages there is no special
significance to the word main,
however it is a good habit as it
helps us organize and remain
consistent
• A function is a reusable piece of code that is part of
a larger program
• Executed when it is called by another line of code

How do functions help?
• Modularity – repeating code effectively
• Encapsulation – scoping/hiding – variables local - only
exist within the block
• Abstraction – don’t sweat the details
Let’s look at our
example again
Let’s look at our
example again
The commented
out lines all will
produce an error
This is because
they are not
accessible
badidea is what is
termed a global
variable
It is accessible
everywhere
Unless absolutely necessary global variables are not
good coding style
Homework:
Continue working on your quilting exercise
due Class 6
I/O
by Deborah R. Fowler
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
• I/O
• strings

open
close
fileVar = open(filename,’r’)
OR
fileVar = open(filename,’w’)
fileVar.close()
RELATIVE VERSUS ABSOLUTE PATHS



values[0]
In Programming start counting at ZERO
Strings
print values[0] + values[1]
would result in a
string that was concatentated
using float() to convert
would result in 22.1
Positive from
left
Negative from
right
In-class Exercise
Create a .txt file with a few lines of data
Create a script to read the file and write out the
second element of each line
Summary of I/O (Input/Output)
input
open
close
strings are manipulatable
Homework:
Continue working on your quilting exercise
due Class 6 – next class
Lists
by Deborah R. Fowler
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
Strings are lists
print values[0] + values[1]
would result in a
string that was concatentated
using float() to convert
would result in 22.1
Positive from
left
Negative from
right
rstrip
In-class Exercise
Create a .txt file with a few lines of data, this time
separate them with commas
Create a script to read the file and write out the
second element of each line
Lists are defined by square brackets
[ ] is an empty list
ordered
changeable
Access an element or member of the list use an
index (also called subscript)
mylist[1] will give you the second item on the list
remember to count from zero
Why use them?
Data structure that makes access easier,
For example the “for” loop can be used to iterate
through a list
for item in mylist:
print item

append
len
Two other things python lists are capable of:
• inserting into the list at a given position
• differing types of items in a single list
insert
remove
pop
del
Mixed types
• variables
• truth statements
• looping
• functions
• I/O
• lists
• classes/objects
• OOP
KEY CONCEPTS
Homework:
Work on the Hurricane Exercise
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468