[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"detail-sidebar-cat-0-en-105":3,"doc-seo-665405-105":59,"doc-detail-665405-en":134},{"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":127,"head_meta":129,"extra_data":131,"updated_unix":133},105,"en","environment-diagrams-slides-adapted-from-berkeley-cs61a","Environment Diagrams - Slides adapted from Berkeley CS61a","","Environment Diagrams explain how computer programs maintain bindings and execution state through visual frames. The material introduces why these diagrams are conceptual and how they help readers understand program behavior, confidently predict outcomes, and debug when code is hard to reason about. It focuses on Python evaluation, including frame creation for call expressions, global frame behavior, parent frames for lexical scope, and variable lookup rules that raise errors when names cannot be found. Exercises guide diagramming environments for function calls.",{"@graph":69,"@context":126},[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-adapted-from-berkeley-cs61a/665405/",{"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-adapted-from-berkeley-cs61a/665405.png","ImageObject",300,407,{"name":92,"@type":93},"OKfine","Person",{"url":74,"name":95,"@type":96},"DocShare","Organization","application/pdf","2026-10-30","2026-10-29",true,{"@type":102,"interactionType":103,"userInteractionCount":81},"InteractionCounter",{"@type":104},"ViewAction",{"@type":106,"mainEntity":107},"FAQPage",[108,114,118,122],{"name":109,"@type":110,"acceptedAnswer":111},"What is an environment diagram and what does it track?","Question",{"text":112,"@type":113},"An environment diagram is a visual tool that keeps track of bindings and the state of a program. It uses frames to show how variables map to values.","Answer",{"name":115,"@type":110,"acceptedAnswer":116},"How are frames related to call expressions in Python?",{"text":117,"@type":113},"Every call expression has a corresponding frame. Additionally, the global frame is the starting frame and does not correspond to any specific call expression.",{"name":119,"@type":110,"acceptedAnswer":120},"What happens during variable lookup when a name is not found locally?",{"text":121,"@type":113},"Lookup starts in the current frame and then continues through parent frames until the global frame. If the name is not found by then, an error is thrown (NameError).",{"name":123,"@type":110,"acceptedAnswer":124},"How does the evaluation order affect the environment diagram?",{"text":125,"@type":113},"The environment diagram should reflect Python’s evaluation: evaluate the operator first, then the operand(s), and finally apply the operator onto the operand(s).","https://schema.org",{"og:url":83,"og:type":128,"og:title":65,"og:site_name":95,"og:description":67},"article",{"robots":130,"canonical":83},"index,follow",{"doc_id":132,"site_id":62},665405,1793302642,{"code":4,"msg":5,"data":135},{"doc_id":132,"user_id":136,"nickname":92,"user_avatar":137,"doc_module":4,"category_id":29,"category_name":30,"doc_title":65,"doc_description":67,"doc_content":138,"file_id":139,"file_url":140,"file_type":141,"file_size":142,"view_count":81,"is_deleted":4,"is_public":8,"is_downloadable":8,"audit_status":8,"page_count":143,"language":144,"language_code":63,"site_id":62,"html_lang":63,"table_of_contents":145,"faqs":146,"seo_title":147,"seo_description":67,"update_tm":133,"read_time":148},962093957596,"https://ap-avatar.wpscdn.com/davatar_29158cc5080c5b710cf443261637dec0","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 bindings .  \n● Every call expression has a corresponding frame.  \nGlobal , a .k .a . the global frame, is 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  \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  \ndef f (x, y): return g(x)  \ndef g (z):  \nreturn z + x  \nresult = f( 5 , 10 )  \nImportant: There was no lookup done in f1 since  \nthe parent of f2 was Global  \nWhat  \nhappens  \nhere?","cbCaiulbKyKYUjO0","https://ap.wps.com/l/cbCaiulbKyKYUjO0","pdf",274064,23,"English","# What are Environment Diagrams?\n## Why do we use Environment Diagrams?\n# What do we've seen so far\n## Assignment Statements and Def Statements\n## Call Expressions\n# Frame Terminology\n## Frames and global frame\n## Parent frames and lexical lookup\n# Check Your Understanding\n## Draw the environment diagram\n# Review: Evaluation Order\n## Operator then operands\n# Variable Lookup\n## Local names and parent search\n## NameError and missing bindings","[{\"question\":\"What is an environment diagram and what does it track?\",\"answer\":\"An environment diagram is a visual tool that keeps track of bindings and the state of a program. It uses frames to show how variables map to values.\"},{\"question\":\"How are frames related to call expressions in Python?\",\"answer\":\"Every call expression has a corresponding frame. Additionally, the global frame is the starting frame and does not correspond to any specific call expression.\"},{\"question\":\"What happens during variable lookup when a name is not found locally?\",\"answer\":\"Lookup starts in the current frame and then continues through parent frames until the global frame. If the name is not found by then, an error is thrown (NameError).\"},{\"question\":\"How does the evaluation order affect the environment diagram?\",\"answer\":\"The environment diagram should reflect Python’s evaluation: evaluate the operator first, then the operand(s), and finally apply the operator onto the operand(s).\"}]","Environment Diagrams - Slides adapted from Berkeley CS61a | PDF",58]