IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web...
-
Upload
evan-kelly -
Category
Documents
-
view
214 -
download
0
Transcript of IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web...
![Page 1: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/1.jpg)
IS 313 Tomorrow…
IS 313 last week ?
9/20/09 - today: beyond recursion!
9/27/09 - next wk: web technologies, pt 2
Assignment reminders...
Which door to choose?
This week... Next week...
![Page 2: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/2.jpg)
Computation's Dual Identity
name: xtype: intLOC: 300
41
"variables as containers"
memory location 300
Computation Data Storage
name: ytype: intLOC: 304
42
memory location 304
accessed through functions…lists and strings…
![Page 3: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/3.jpg)
Data: review…
How could we get the first element of s?
Suppose s = 'latin'
How could we get the rest of s? (all but the first)
What if we then add 'ay' ?
![Page 4: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/4.jpg)
# my own function!
def dbl( x ):
""" returns double its input, x """
return 2*x
Comments
Docstrings
(1) describes overall what the function does, and
(2) explains what the inputs mean/are
They become part of python's built-in help system! With each function be sure
to include one that
They begin with #
keywords
def starts the functionreturn stops it
immediately and sends back the return value
Some of Python's baggage…
Look good to me!
Functions: review…
![Page 5: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/5.jpg)
# how do you like your coffee?
def undo(s):
""" this "undoes" its string input, s """
return 'de' + s
Functioning with strings and lists…
# what does this do?
def warp(L):
""" L can be any sequence """
return L[1:] + L[0:1]
>>> undo(undo('caf'))
>>> warp('space')
>>> warp('drake')
![Page 6: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/6.jpg)
def chop(s):
""" mystery! """
return
Functioning with strings and lists…
def stackup(s):
""" mystery! """
return
>>> chop('graduate')'grad'
>>> chop(chop('abcd'))'a'
>>> stackup('star')'starrats'
>>> stackup('dumbmob ')'dumbmob bombmud'
![Page 7: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/7.jpg)
# you don't need these comments
def chop(s):
""" this returns half
its string input, s """
return s[:len(s)/2]
Functioning with strings and lists…
def stackup(s):
""" this outputs the original s
with the reverse of s
tacked onto its end… """
return s + s[::-1]
>>> chop('graduate')'grad'
>>> chop(chop('abcd'))'a'
>>> stackup('star')'starrats'
>>> stackup('dumbmob ')'dumbmob bombmud'
![Page 8: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/8.jpg)
Recursion warning: Be sure to watch your head!
![Page 9: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/9.jpg)
beyond recursion?
Creating general functions that will be useful everywhere (or almost…)
building blocks with which to compose…
![Page 10: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/10.jpg)
def sum(L): """ input: a list of numbers, L output: L's sum """ if len(L) == 0: return 0.0 else: return L[0] + sum(L[1:])
sum recursively
Base Caseif the input
list has no elements, its sum is
zero
Recursive Case if L does have an element, add that element's value to the sum of the
REST of the list…
![Page 11: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/11.jpg)
def sum(L): """ input: a list of numbers, L output: L's sum """ result_so_far = 0.0
for e in L: result_so_far = result_so_far + e
return result_so_far
sum with loops!
Starter valuezero, in this case
Loop!add e each time!
That's it!
Like loops? Check out http://docs.python.org/tutorial/controlflow.html
![Page 12: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/12.jpg)
Recursion vs. loops?
The choice is yours!
more loops next week....
![Page 13: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/13.jpg)
range, recursively
what's cookin' here?
excluding hi
def range(low,hi): """ input: two ints, low and hi output: list from low up to hi """ if hi <= low: return [] else: return [low] +
![Page 14: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/14.jpg)
range, with loops!
def range(low,hi): """ input: two ints, low and hi output: list from low up to hi """ result = [] e = low
while e < hi: result = result + [e]
return result
what's cookin' here?
excluding hiStarter
valueempty list, in this case
Loop!add [e] each
time!
Like loops? Check out http://docs.python.org/tutorial/controlflow.html
![Page 15: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/15.jpg)
sum and range
>>> sum(range(1,101))
Looks sort of scruffy for a 7-year old… !
![Page 16: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/16.jpg)
List Comprehensions
Is this really the best name Guido Van Rossum
could think of?
![Page 17: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/17.jpg)
List Comprehensions
>>> [ 2*x for x in [0,1,2,3,4,5] ]
[0, 2, 4, 6, 8, 10]What is going
on here?
output
input
A Loop in a List!
and the "running" variable can have any name...
![Page 18: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/18.jpg)
List Comprehensions
>>> [ 2*x for x in [0,1,2,3,4,5] ]
[0, 2, 4, 6, 8, 10]output
input
A Loop in a List!
and the "running" variable can have any name...
(1) x takes on each value in the list or string(2) The operation 2*x happens for each x
![Page 19: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/19.jpg)
List Comprehensions
>>> [ _______ for y in range(6) ]
[0, 1, 4, 9, 16, 25]
>>> [ __________ for c in 'igotit' ]
[True, False, False, False, True, False]output
output
input
input
A Loop in a List!
![Page 20: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/20.jpg)
List Comprehensions
>>> [ 2*x for x in [0,1,2,3,4,5] ][0, 2, 4, 6, 8, 10]
>>> [ y**2 for y in range(6) ][0, 1, 4, 9, 16, 25]
>>> [ c == 'a' for c in 'go away!' ][0, 0, 0, 1, 0, 1, 0, 0]
Anything you want to happen to each element
of a list
output
output
output
input
input
input
name that takes on the value of
each element in turn
the list (or string)Is this really the
best name Guido Van
Rossum could think of?
any name is OK!
![Page 21: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/21.jpg)
List Comprehensions
>>> [ 2*x for x in [0,1,2,3,4,5] ][0, 2, 4, 6, 8, 10]
>>> [ y**2 for y in range(6) ][0, 1, 4, 9, 16, 25]
>>> [ c == 'a' for c in 'go away!' ][0, 0, 0, 1, 0, 1, 0, 0]
Anything you want to happen to each element
of a list
output
output
output
input
input
input
name that takes on the value of
each element in turn
the list (or string)
Makes sense to me!
Google's Maps
One-hit wonders
Lazy lists
![Page 22: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/22.jpg)
Raw recursion...
def len(L): if L == []: return 0 else: return 1 + len(L[:])
A list comprehension by any other name would be as sweet…
def countAs(s): if len(s) == 0: return 0 elif s[0] == 'A': return 1 + countAs(s[1:]) else: return countAs(s[1:])
7 lines! Aargh!
count of 'A's in the string s
length of the list L
![Page 23: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/23.jpg)
... vs. List Comprehensions
LC = [ ______ for x in L] return sum( LC )
len(L):
countAs(s):LC = [ ________ for c in s] return sum( LC )
def
def
I prefer one-liners!
suppose s is a string of capital letters
![Page 24: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/24.jpg)
vs. List Comprehensions
numOdds(L):# of odd elements
LC = [ for x in L] return sum( LC )
def
sajak(s):LC = [ for c in s]return sum( LC )
# of vowels
Remember True == 1 and False == 0
def
![Page 25: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/25.jpg)
Try it!
Write each of these functions concisely using list comprehensions…
Write def count(e,L):
Write def lotto(Y,W):
input: e, any element L, any list or stringoutput: the # of times L contains e example: count('f', 'fluff') == 3
input: Y and W, two lists of lottery numbers (ints)output: the # of matches between Y & W example: lotto([5,7,42,44],[3,5,7,44]) == 3
Y are your numbersW are the winning numbers
Remember True == 1 and False == 0
Extra! def numdivs(N):
input: N, an int >= 2output: the number of positive divisors of Nexample: numdivs(12) == 6 (1,2,3,4,6,12)
How could you use this to compute all of the prime numbers up to P?
LC = [ for x in L ]return sum(LC) don't use e
here!use e in here somehow…
def primesUpto( P ):
![Page 26: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/26.jpg)
Quiz
Write
def count(e,L):
input: e, any element L, any list or stringoutput: the # of times L contains e example: count('f', 'fluff') == 3
Remember True == 1 and False == 0
LC = [ for x in L ]
return sum(LC)don't use e here!use e in here somehow…
![Page 27: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/27.jpg)
Write
def lotto(Y,W):
input: Y and W, two lists of lottery numbers (ints)
output: the # of matches between Y & W
example: lotto([5,7,42,44],[3,5,7,44]) == 3
Y are your numbersW are the winning numbers
![Page 28: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/28.jpg)
Extra!
def numdivs(N):
input: N, an int >= 2output: the number of positive divisors of Nexample: numdivs(12) == 6 (1,2,3,4,6,12)
How could you use this to compute all of the prime numbers up to P?def primesUpto( P ):
What if you want the divisors themselves? or prime #s?
![Page 29: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/29.jpg)
Maya Lin, Architect…
![Page 30: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/30.jpg)
"two-by-four landscape"
Maya Lin, Computer Scientist…
![Page 31: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/31.jpg)
One building block, carefully applied, over 50,000 times…
Maya Lin, Computer Scientist…
![Page 32: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/32.jpg)
A random aside…
import random
choice( L )
uniform(low,hi)
choice( ['rock', 'paper', 'scissors'] )
uniform(41.9,42.1)
chooses 1 element from the sequence L
chooses a random float from low to hi
allows use of dir(random) and help(random)
How likely is this to return 42 ?
How would you get a random int from 0 to 9 inclusive?
from random import * all random functions are now available!
![Page 33: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/33.jpg)
A random function…
print the guesses ?
return the number of guesses ?
from random import *
def guess( hidden ): """ guesses the user's hidden # """ compguess = choice( range(100) )
if compguess == hidden: # at last! print 'I got it!'
else: guess( hidden )
This is a bit suspicious…
slow down…
![Page 34: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/34.jpg)
The final version
from random import *import time
def guess( hidden ): """ guesses the user's hidden # """ compguess = choice( range(100) )
# print 'I choose', compguess # time.sleep(0.05)
if compguess == hidden: # at last! # print 'I got it!'
return 1 else: return 1 + guess( hidden )
![Page 35: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/35.jpg)
The two Monte Carlos
Monte Carlo casino, Monaco
Making random numbers work for you!
Monte Carlo methods, Math/CS
![Page 36: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/36.jpg)
Monte Carlo in action
def countDoubles( N ): """ inputs a # of dice rolls outputs the # of doubles """ if N == 0: return 0 # zero rolls, zero doubles… else: d1 = choice( [1,2,3,4,5,6] ) d2 = choice( range(1,7) )
if d1 != d2: return countDoubles( N-1 ) # don't count it else: return 1+countDoubles( N-1 ) # COUNT IT!
one roll
where is the doubles check?
the input N is the total number
of rolls
How many doubles will you get in N rolls of 2 dice?
![Page 37: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/37.jpg)
Monty Hall
Let’s make a deal ’63-’86
Sept. 1990
inspiring the “Monty Hall paradox”
![Page 38: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/38.jpg)
Monte Carlo Monty Hall
Suppose you always switch to the other door...What are the chances that you will win the car ?
Run it (randomly) 300 times and see!
![Page 39: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/39.jpg)
Monte Carlo Monty Hall
def MCMH( init, sors, N ): """ plays the "Let's make a deal" game ~ N times returns the number of times you win the car """ if N == 0: return 0 # don't play, can't win carDoor = choice([1,2,3]) # where is the car?
if init == carDoor and sors == 'stay': result = 'Car!' elif init == carDoor and sors == 'switch': result = 'Spam.' elif init != carDoor and sors == 'switch': result = 'Car!' else: result = 'Spam.'
print 'You get the', result if result == 'Car!': return 1 + MCMH( init, sors, N-1 ) else: return 0 + MCMH( init, sors, N-1 )
Your initial choice! 'switch' or 'stay'
number of times to play
![Page 40: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/40.jpg)
An example closer to home
......20 21 22 23 401918170
An overworked CGU student (S) leaves Wolfe's after their “late-night” breakfast and, each moment, randomly stumbles toward ACB (South)
or toward the dorms (North)
ACB Dorms(N)(S)
Wolfe's
Write a program to model and analyze! this scenario...
S
Once the student arrives at the dorm or classroom, the trip is complete.
The program should then print the total number of steps taken.
hw2pr3
rs() rwPos(s, nsteps) rwSteps(s, low, hi)
take a random step of +1 or
-1
take nsteps random steps starting at s
take random steps starting at s until you reach either low
or hi
![Page 41: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/41.jpg)
Homework #2
hw2pr1 – Webserver!
hw2pr2 – Monty Hall...
hw2pr3 – The sleepwalking student
hw2pr4 – Online Monty Hall
Choose any two of these...
![Page 42: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/42.jpg)
IS 313: Information Technology
HTML HyperText Markup Language
<b>and the beautiful</b> <br>
<i>Tower of Pisa</i>
![Page 43: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/43.jpg)
IS 313: Information Technology
HTML
![Page 44: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/44.jpg)
IS 313: Information Technology
CSS
![Page 45: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/45.jpg)
HTML
CGI
AJAX
Javascript
CSS
HyperText Markup Language
Cascading Style Sheets
body{ background-color:#d0e4fe;}h1{ color:orange; text-align:center;}p{ font-family:"Times New Roman"; font-size:20px; }
Others!
IS 313: Information Technology
Start here: http://w3schools.com/css/default.asp
![Page 46: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/46.jpg)
Web resources ~ on the Web
www.w3schools.com
started by
every technology - and acronym - you'd ever want to know…
Tim Berners-Lee
![Page 47: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/47.jpg)
(1) Get Apache running on your machine
(2) Start from the example "application" to
• create your own webpage with some text & an image
• create at least two CSS formats for the same page!
Your own webserver...
Next time: uploading to a publicly available server
• submit? Two screenshots....
![Page 48: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/48.jpg)
Enjoy your own webhosting! Perhaps you can
charge yourself for the service!?
Lab hour...
![Page 49: IS 313 Tomorrow… IS 313 last week ? 9/20/09 - today: beyond recursion! 9/27/09 - next wk: web technologies, pt 2 Assignment reminders... Which door to.](https://reader031.fdocuments.in/reader031/viewer/2022013004/56649e465503460f94b3b415/html5/thumbnails/49.jpg)
Recursion -- not just numbers
Relationships
Self-similarity elsewhere... Natural phenomena
Names -- acronyms
What is an “ancestor” ?
The TTP Project
how much here is leaf vs. stem?