V is for … • Viral Video • Husky Dog sings with iPAD – 18 million views • https://www.youtube.com/watch?v=Mk4bmK-acEM • Virtual Memory • It is and is not there! • Virtual Reality • Augmenting IRL • http://bit.ly/vr-playlist 11/5/2020 Compsci 101, Fall 2020 2
Announcements • APT APT-7 du due T Thur ursda day, N Nov 5 5, T TODAY! • APT APT-8 d due e Tues esday, N Nov 10 • Assign 6 n 6 Recommender, d due ue T Thur urs 1 11/12 • Assign 7 n 7 Create due ue, Monda nday, N Nov 1 16! • Final E Exam Su m Sunday, N Nov 2 22 – ta take o on th this day 11/5/2020 Compsci 101, Fall 2020 3
PFTD • Colla laboration and C Creativ ivit ity • The power of working together with code • Revie iew m w module les a and e exceptio ions • Concepts used in Lab 9, leveraging creativity • How w to s solv lve it it • Thinking about steps 5-7, Python, and scale • Med edal alTabl able APT APT 11/5/2020 Compsci 101, Fall 2020 4
The Power of Collaboration: Ge Wang, Duke Prof. at Stanford • Duk uke 2 2000: M Mus usic a and nd Computer S Science • https://www.stanforddaily.com/2016/03/09/qa-with-ge-wang- father-of-stanford-laptop-orchestra/ • http://www.youtube.com/watch?v=ADEHmkL3HBg • Abou out D Design i in Compsci ci 308 308 Our investment into a huge and meticulous design process was a huge factor in making later progress. 35000+ lines of code / design / documentation gave us a project we were all very happy and proud to be a part of. 11/5/2020 Compsci 101, Fall 2020 5
Assignment 7: Create, Due Nov. 16 Grace period til Nov. 19, No late days! Must be turned in by Nov 19 This assignment is required! Pick o one ne: Video: : Green en d dance, advertisemen ement f for 101, s , song, o , other er Poem or oem or Multiple H e Hai aikus Sto tory Comi Comic One-pag ager er Feedback Let's s see s some e examples 11/5/2020 Compsci 101, Fall 2020 6
Comic 11/5/2020 Compsci 101, Fall 2020 9
Comic 11/5/2020 Compsci 101, Fall 2020 10
Lab 9 Modules for Creating • “MadLibs” ” → Ta Tag-a-Sto tory • User chooses template • Computer fills everything in In lecture I saw a <color> <noun> For lunch I had a <adjective> <food> The day ended with seeing a <animal> <verb> in <place> 11/5/2020 Compsci 101, Fall 2020 11
Main Parts for tag-a-story • Put e everything t together, t the template a and words • Storyline.py • Loadi ding ng and h d handl ndling ng u user choosing ng t templates • TemplateChooser.py • Loadi ding ng and p d picking ng t the word f for a a given n tag • Replacements.py 11/5/2020 Compsci 101, Fall 2020 12
From <noun> to story In lecture I saw a In lecture I saw a <color> <noun> magenta house For lunch I had a For lunch I had a <adjective> <food> luminous hummus The day ended with The day ended with seeing a <animal> seeing a cow sleep <verb> in <place> in Mombasa This Photo by Unknown This Photo by Unknown Author is This Photo by Unknown Author is Author is licensed under CC licensed under CC BY-NC-ND licensed under CC BY-SA BY-NC-ND 11/5/2020 Compsci 101, Fall 2020 13
Let's create/modify a story • Choose a a template o or make a a new one • We'll choose lecturetemplate.txt first • Add a a new category/replacement • We'll choose number and list some choices • Run the p program a and te test o our modification ons • Randomized, hard to test, but doable 11/5/2020 Compsci 101, Fall 2020 14
Modules in Action makeStory in Storyline.py • How c can an we a acces ess TemplateChooser functi tion ons? • import and access as shown 11/5/2020 Compsci 101, Fall 2020 15
Understanding Code/Module doWord in StoryLine.py • What d does get etRep eplac acemen ent do? ? • How does getReplacement do it? 11/5/2020 Compsci 101, Fall 2020 16
The other module’s “what” • Get te t template • TemplateChooser.getTemplateLines(DIR) • What: • From the templates in the directory DIR (type: str) • Return a list of strings, where each element is a line from one of the templates in DIR • Wor ord f for or a a tag • Replacements.getReplacement(TAG) • What: • Return a random word that matches TAG (type: str) 11/5/2020 Compsci 101, Fall 2020 17
Main Parts for tag-a-story • Put e everything t together, t the template a and words • Storyline.py • Loadi ding ng and h d handl ndling ng u user choosing ng t templates • TemplateChooser.py • Loadi ding ng and p d picking ng t the word f for a a given n tag • Replacements.py 11/5/2020 Compsci 101, Fall 2020 18
TemplateChooser.py Steps • Lis ist a all t ll templates in in the fold lder • Get t user i input t that c t choos ooses o one • Load t that template • Return as l list of of strings 11/5/2020 Compsci 101, Fall 2020 19
These Steps in Code getTemplateLines in TemplateChooser.py • Read d director ory o of te templates, c con onvert to to d dicti tion onary • Let user choose one, open and return it 11/5/2020 Compsci 101, Fall 2020 21
Creating User Menu dirToDictionary in TemplateChooser.py • What d does this f function r return? W What t type? 11/5/2020 Compsci 101, Fall 2020 22
pathlib Library • Pa Path: “rodger/Pycharm/cps101/lab09/temp/haiku.txt” • Th The e pathlib lib library is is more recent/ t/Pyth thon3 • Simpler, easier to use than functions from os • Handles d doma omain s speci cifics cs! • Doesn’t matter if on Windows, Mac, etc. • We worry about the what at , it handles the how ow 11/5/2020 Compsci 101, Fall 2020 23
pathlib Library cont. • Pa Path: “rodger/Pycharm/cps101/lab09/temp/haiku.txt” • pathlib.Path(DIR).iterdir() • Returns iterable of Path objects representing each “thing” in the directory DIR • Path o object’s . s .parts s – tuple o of strings, eac each el elem emen ent i is a a pi piece of a fi filename’s pa s path • (‘rodger’, ‘Pycharm’, ‘cps101’,’lab09’, ‘temp’, ‘haiku.txt’) 11/5/2020 Compsci 101, Fall 2020 24
Understanding the Unknown chooseOne in TemplateChooser.py • We w will r return t to this, bu but a analyze pa parts n now • What's familiar? What's not familiar … 11/5/2020 Compsci 101, Fall 2020 25
Python exceptions • What s should you ou d do i o if you ou prom ompt user f for or a a num number and nd t the hey ent nter " "one" • Test to see if it has digits? • Us Use e exceptio ions wit with try: and except: • See code in function chooseOne from TemplateChooser.py 11/5/2020 Compsci 101, Fall 2020 26
Handling Exceptions • What h happe pens: x = int("123abc") 11/5/2020 Compsci 101, Fall 2020 27
WOTO-1 Modules http://bit.ly/101f20-1105-1 11/5/2020 Compsci 101, Fall 2020 28
Christos Papadimitriou • Gödel el p prize f for c concep ept o of "price o e of anar archy" y" I would say that, quite generally, computer scientists are going to find themselves interacting more with other fields. I encourage my students to go completely wild in their curriculum, to go out and learn not only that which they think they should learn in order to be good computer scientists—usually mathematics and programming and engineering and so on— but learn about everything else, about psychology, economics, about business, about biology, about the humanities. (2008) 11/5/2020 Compsci 101, Fall 2020 29
When and What’s in CompSci 101 • Problem t to s o sol olve • Use 7 steps • Step 5: How do you translate algorithm to code? • What do you use to solve it? • When do you use it? 11/5/2020 Compsci 101, Fall 2020 30
What are the “what’s”? • Data ta Structures: list, t, s set, d dicti tion onary, tu tuple • Loops a and nd iterables: f from om for or t to o while t to o it iterdir ir() () • Other er: • List comprehensions • Parallel lists • Lambda • If…if…if • If…elif…else 11/5/2020 Compsci 101, Fall 2020 31
Quick When’s and What’s for 101 • Whichever m makes es m more s e sense e to you: • Parallel lists vs dictionaries • If…if…if vs if…elif…else • List comprehension vs for loop • Tuples vs Lists • If you want to prevent mutation -> tuples • Need single line function • Lambda vs create normal helper function 11/5/2020 Compsci 101, Fall 2020 32
APT – Sorted Freqs 11/5/2020 Compsci 101, Fall 2020 33
What's the best way to … • Sorted edFreq eqs https://www2.cs.duke.edu/csed/pythonapt/sortedfreqs.html • • Count unt how m many ny t times each s string ng o occur urs • Create d = {}, iterate over list updating values • Use data.count(w) for each w • Wait, that looks like … 11/5/2020 Compsci 101, Fall 2020 34
APT: SortByFreqs 11/5/2020 Compsci 101, Fall 2020 36
Wait, wait, but what's … • SortByFreqs https://www2.cs.duke.edu/csed/pythonapt/sortbyfreqs.html • • Sort b by # # occurren ences h high t to l low • Tuples with count/lambda and reverse=True? • Break ties in alphabetical order: two passes 11/5/2020 Compsci 101, Fall 2020 37
Recommend
More recommend