Agenda • Announcements • Structure • Tuple review • APT and for loops 1/14/2013 CompSci101 Peter Lorensen 1
Variable Type High level Value Modules Functions( ) Functions( ) Datastructures code Variables (String) Datastructures List Control structures Set Functions( ) Tuple Dictionary Control structures If For loop While loop (Exceptions) 1/14/2013 CompSci101 Peter Lorensen 2
Objects – a teaser def load_lines(filename): lines = [] f = open(filename) for line in f.readlines(): line = line.strip() lines.append(line) return lines File Object file.read([ size ]) Read at most size bytes from the file (less if… file.readlines([ sizehint ]) Read until EOF using readline() and return a list… file.seek( offset [, whence ]) Set the file’s current position, like stdio‘s fseek ()… file.write( str ) Write a string to the file. There is no return… ......... ........ 1/14/2013 CompSci101 Peter Lorensen 3
Shafi Goldwasser • RCS professor of computer science at MIT – Twice Godel Prize winner – Grace Murray Hopper Award – National Academy – Co-inventor of zero-knowledge proof protocols Work on what you How do you convince someone that you like, what feels know [a secret] without revealing the right, I now of no knowledge? other way to end up • Honesty and Privacy doing creative 1/14/2013 CompSci101 Peter Lorensen 4
Turing Award • Given by the Association for Computing Machinery (ACM) • Given to "an individual selected for contributions of a technical nature made to the computing community". • "The contributions should be of lasting and major technical importance to the computer field“. • The Turing Award is recognized as the "highest distinction in Computer science“ and "Nobel Prize of computing". 1/14/2013 CompSci101 Peter Lorensen 5
Silvio Micali • Professor of computer science at MIT – Godel Prize winner – Fellow of the IACR – Co-inventor of zero-knowledge proof protocols How do you convince someone that you know [a secret] without revealing the knowledge? 1/14/2013 CompSci101 Peter Lorensen 6
Tuples • Tuple is like a list • Immutable: you can not change it. You can just write elements in grades = “A”, “B”, “C”, “D” the tuples like this..... ..but we often put ( ) around tub = ( 1, 2, 3 ) them to signal that its a tuple tup[1] = 8 Immutable: Will give an error! 1/14/2013 CompSci101 Peter Lorensen 7
APT MemberShip def whosDishonest(club1, club2, club3): guilty = set() # Empty set """ Making a list of clubs converted to sets""" allClubs = [ set(club1), set(club2), set(club3)] for redIndx in range( len( allClubs) ): A for greenIndx in range(redIndx , len( allClubs)): common = allClubs[ redIndx ] & allClubs[ greenIndx ] guilty = guilty.union( common ) for redIndx in range( len( allClubs) ): B for greenIndx in range( redIndx +1, len( allClubs)): common = allClubs[ redIndx ] & allClubs[ greenIndx ] guilty = guilty.union( common ) for redIndx in range( len( allClubs) ): C for greenIndx in range( redIndx , len( allClubs)-1): common = allClubs[ redIndx ] & allClubs[ greenIndx ] guilty = guilty.union( common ) result = list( guilty ) # Converting to list result.sort() # Sorting 1/14/2013 CompSci101 Peter Lorensen 8 return result
APT FriendScore 1/14/2013 CompSci101 Peter Lorensen 9
APT FriendScore pseudocode 2-friends consist of to counts: 1) all your friends (called immediate friends) 2) all of your friends friends, BUT you can NOT count someone twice! Run through all people and for each of them do the following: a) count the number of their immediate friends. b) for each immediate friend, count his friends. a and b are added. The result is compared to the previous highest found value and if higher then replaces it. The final high score is returned . 1/14/2013 CompSci101 Peter Lorensen 10
Recommend
More recommend