[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"detail-sidebar-cat-0-en-105":3,"doc-seo-665540-105":59,"doc-detail-665540-en":130},{"code":4,"msg":5,"data":6},0,"success",[7,13,18,23,28,33,38,43,48,51,55],{"id":8,"doc_module":4,"doc_module_name":9,"category_name":10,"show_sort_weight":11,"slug":12},1,"Document","Story & Novel",90,"story-novel",{"id":14,"doc_module":4,"doc_module_name":9,"category_name":15,"show_sort_weight":16,"slug":17},2,"Literature",80,"literature",{"id":19,"doc_module":4,"doc_module_name":9,"category_name":20,"show_sort_weight":21,"slug":22},4,"Exam",70,"exam",{"id":24,"doc_module":4,"doc_module_name":9,"category_name":25,"show_sort_weight":26,"slug":27},5,"Comic",60,"comic",{"id":29,"doc_module":4,"doc_module_name":9,"category_name":30,"show_sort_weight":31,"slug":32},6,"Technology",50,"technology",{"id":34,"doc_module":4,"doc_module_name":9,"category_name":35,"show_sort_weight":36,"slug":37},7,"Healthcare",40,"healthcare",{"id":39,"doc_module":4,"doc_module_name":9,"category_name":40,"show_sort_weight":41,"slug":42},8,"Research & Report",30,"research-report",{"id":44,"doc_module":4,"doc_module_name":9,"category_name":45,"show_sort_weight":46,"slug":47},9,"Religion & Spirituality",20,"religion-spirituality",{"id":46,"doc_module":4,"doc_module_name":9,"category_name":49,"show_sort_weight":46,"slug":50},"World Cup","world-cup",{"id":52,"doc_module":4,"doc_module_name":9,"category_name":53,"show_sort_weight":52,"slug":54},10,"Lifestyle","lifestyle",{"id":56,"doc_module":4,"doc_module_name":9,"category_name":57,"show_sort_weight":24,"slug":58},19,"General","general",{"code":4,"msg":60,"data":61},"ok",{"site_id":62,"language":63,"slug":64,"title":65,"keywords":66,"description":67,"schema_data":68,"social_meta":123,"head_meta":125,"extra_data":127,"updated_unix":129},105,"en","environment-diagrams-slides-and-concepts","Environment Diagrams - Slides and Concepts","","Environment Diagrams explain how to visualize variable bindings and program state so learners can predict behavior without getting lost in raw code. The material motivates using conceptual diagrams for debugging and for understanding evaluation. It introduces frames, including global and parent frames, and shows how every call expression maps to a corresponding frame. Example Python functions and variable lookup rules demonstrate evaluation order, frame creation timing, and NameError when names cannot be found.",{"@graph":69,"@context":122},[70,84,105],{"@type":71,"itemListElement":72},"BreadcrumbList",[73,77,79,82],{"item":74,"name":75,"@type":76,"position":8},"https://docshare.wps.com","Home","ListItem",{"item":78,"name":9,"@type":76,"position":14},"https://docshare.wps.com/document/",{"item":80,"name":30,"@type":76,"position":81},"https://docshare.wps.com/document/technology/",3,{"item":83,"name":65,"@type":76,"position":19},"https://docshare.wps.com/document/environment-diagrams-slides-and-concepts/665540/",{"url":83,"name":65,"@type":85,"image":86,"author":91,"headline":65,"publisher":94,"fileFormat":97,"inLanguage":63,"description":67,"dateModified":98,"datePublished":99,"encodingFormat":97,"isAccessibleForFree":100,"interactionStatistic":101},"DigitalDocument",{"url":87,"@type":88,"width":89,"height":90},"https://docshare.wps.com/thumbnails/environment-diagrams-slides-and-concepts/665540.png","ImageObject",300,407,{"name":92,"@type":93},"Rainbow Cat","Person",{"url":74,"name":95,"@type":96},"DocShare","Organization","application/pdf","2026-10-30","2026-10-29",true,{"@type":102,"interactionType":103,"userInteractionCount":19},"InteractionCounter",{"@type":104},"ViewAction",{"@type":106,"mainEntity":107},"FAQPage",[108,114,118],{"name":109,"@type":110,"acceptedAnswer":111},"What problem do Environment Diagrams solve?","Question",{"text":112,"@type":113},"They provide a visual tool for tracking variable bindings and program state, helping learners understand why programs work and confidently predict behavior.","Answer",{"name":115,"@type":110,"acceptedAnswer":116},"What are frames in these diagrams?",{"text":117,"@type":113},"A frame records a mapping from variables to values, and every call expression corresponds to a frame. The global frame is the starting frame and is not tied to a specific call expression.",{"name":119,"@type":110,"acceptedAnswer":120},"How does variable lookup work across frames?",{"text":121,"@type":113},"Lookup starts in the current frame and then checks parent frames until reaching the global frame. If the name is not found in these frames, an error such as NameError is thrown.","https://schema.org",{"og:url":83,"og:type":124,"og:title":65,"og:site_name":95,"og:description":67},"article",{"robots":126,"canonical":83},"index,follow",{"doc_id":128,"site_id":62},665540,1793304825,{"code":4,"msg":5,"data":131},{"doc_id":128,"user_id":132,"nickname":92,"user_avatar":133,"doc_module":4,"category_id":29,"category_name":30,"doc_title":65,"doc_description":67,"doc_content":134,"file_id":135,"file_url":136,"file_type":137,"file_size":138,"view_count":19,"is_deleted":4,"is_public":8,"is_downloadable":8,"audit_status":8,"page_count":46,"language":139,"language_code":63,"site_id":62,"html_lang":63,"table_of_contents":140,"faqs":141,"seo_title":142,"seo_description":67,"update_tm":129,"read_time":31},962090769181,"https://ap-avatar.wpscdn.com/davatar_6f874abed73319feea01a86fa6f0fab8","Environment Diagrams  \nSlides adapted from Berkeley CS61a  \nWhat are Environment Diagrams?  \n● A visual tool to keep track of bindings & state of a computer program  \n● In this class, we use Python as our primary language  \n○ The diagrams we teach can be applied to similar languages  \nWhy do we use Environment Diagrams?  \n• Environment Diagrams are conceptual  \n• understand why programs work the way they do  \n• confidently predict how a program will behave  \n• Environment Diagrams are helpful for debugging  \n• When you're really stuck, diagramming code > staring at lines of code  \n• Environment Diagrams will be used in future courses  \n• CS 61C (Machine Structures)  \n• CS 164 (Programming Languages and Compilers)  \nWhat do we've seen so far  \nAssignment Statements  \nx = 1  \nx = x + x + x  \nDef Statements  \ndef square(x):  \nreturn x * x  \nCall  \nExpressions  \nsquare(4)  \nFrame  \nTerminology: Frames  \nA frame keeps track of variable to value  \n● Every call expression has a corresponding frame  \nGlobal , a .k.a . the global frame, the starting frame .  \n● It doesn't correspond to a specific call expression .  \nParent frames  \n● The parent of a function is the frame in which it was defined.  \n● If you can't find a variable in the current frame, you check it's parent, and so on . If you can't find the variable, NameError  \nDemo  \nCheck Your Understanding  \nDraw the environment diagram  \ndef square(x):  \nreturn x * x  \ndef sum_of_squares(x, y): return square(x) + square(y)  \nsum_of_squares(3, 4)  \nReview: Evaluation Order  Demo   \nRemember to evaluate the operator , then the operand(s) , then apply the operator onto the operand(s) .  \nWhat will the environment diagram look like? (When are frames created?) The environment diagram should reflect Python’s evaluation .  \nVariable Lookup  \nLocal Names  \nVariable Lookup:  \n• Lookup name in the current frame  \n• Lookup name in parent frame, its parent frame, etc . .  \n• Stop at the global frame  \n• If not found, an error is thrown  \n|  |  |  |\n| --- | --- | --- |\n|  | next? |  |\n|  |  |  |\n\ndef f (x, y): return g(x)  \ndef g (z): return z + x  \nresult = f( 5 , 10 )  \nImportant: There was no lookup done in f1 since  \nthe parent of f2 was Global  \nWhat  \nhappens  \nhere?  \nName “x” is not found  \nName “x” is not found, again","cbCailFM0aRNckf6","https://ap.wps.com/l/cbCailFM0aRNckf6","pdf",280094,"English","# What are Environment Diagrams?\n# Why do we use Environment Diagrams?\n# Frames and terminology\n## Frames and parent frames\n## Variable lookup rules\n# Demo and check your understanding","[{\"question\":\"What problem do Environment Diagrams solve?\",\"answer\":\"They provide a visual tool for tracking variable bindings and program state, helping learners understand why programs work and confidently predict behavior.\"},{\"question\":\"What are frames in these diagrams?\",\"answer\":\"A frame records a mapping from variables to values, and every call expression corresponds to a frame. The global frame is the starting frame and is not tied to a specific call expression.\"},{\"question\":\"How does variable lookup work across frames?\",\"answer\":\"Lookup starts in the current frame and then checks parent frames until reaching the global frame. If the name is not found in these frames, an error such as NameError is thrown.\"}]","Environment Diagrams - Slides and Concepts | PDF"]