{"text_format":"3","workbook":"xlsx","n_sheets":5,"sheets":["PlanOfStudy","Courses","Computations","Instructions","VersionInfo"],"not_rendered":{"defined_names":1},"read":"whole","date_system":"1900"}

{"sheet":"PlanOfStudy","index":0,"n_rows":53,"n_cols":6,"rows_kept":53,"merged":[[30,2,30,5],[31,2,31,5],[32,2,32,5],[33,2,33,5],[34,2,34,5],[35,2,35,5],[36,2,36,5],[38,1,41,4],[43,0,43,3],[44,0,44,3],[45,0,45,3],[48,0,48,3],[49,0,49,3],[50,0,50,3]]}
["NAME:"]
["HUID#:"]
["Current Year:"]
["This Plan of Study is to:"]
["Use these abbreviations: CS, Math, Phys, ES, AM. Stat, Econ. Be sure to include the “r” in courses like CS91r "]
[]
["Which program? (Choose from menu)",null,"Basic"]
[{"$f":"IF($C$7=\"Joint\",\"With what other field?\",\"\")","v":""}]
[{"$f":"IF($C$7=\"Joint\",\"Is CS Primary or Allied? Choose from menu\",\"\")","v":""}]
["Enter grade from menu to calculate your GPA","Grade","Course","Term (will be) taken","Grading basis"]
["Math preparation: Pre-calc + Single variable calc",null,"None"]
["Math preparation: Pre-calc + Single variable calc",null,"None"]
["Math preparation: Pre-calc + Single variable calc",null,"None"]
["Linear Algebra",{"$nulls":4},{"$f":"IF(C14=\"Other\",\"  What course?\",\"\")","v":""}]
["Probability",{"$nulls":4},{"$f":"IF(C15=\"Other\",\"  What course?\",\"\")","v":""}]
[{"$nulls":5},{"$f":"IF(Computations!$AN$2,\"Manually entered tags\",\"\")","v":""}]
["CS core course 1"]
["CS core course 2"]
["CS core course 3"]
["CS core course 4"]
["CS core course 5"]
["CS core course 6"]
["CS core course 7"]
["CS core course 8"]
[{"$f":"IF(9<=Computations!$B$13,\"CS core course 9\",IF(Computations!$B$7,\"Enter MCB80/Neuroscience or Other\",\"\"))","v":"CS core course 9"}]
[{"$f":"IF(10<=Computations!$B$13,\"CS core course 10\",IF(Computations!$B$7,\"Enter an approved biology or psychology course\",\"\"))","v":""}]
[{"$f":"IF(11<=Computations!$B$13,\"CS core course 11\",IF(Computations!$B$7,\"Enter an approved MBB Junior Tutorial\",\"\"))","v":""}]
[]
["Math courses",{"$f":"IF(Computations!B39,\"✓\",\"✘\")","v":"✘"}]
["Core CS tags",{"$f":"IF(Computations!D13,\"✓\",\"✘\")","v":"✘"}]
["Programming tags",{"$f":"IF(Computations!B30,\"✓\",\"✘\")","v":"✘"},{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,Computations!E16:E17)","v":""}]
["Formal reasoning tags",{"$f":"IF(Computations!B31,\"✓\",\"✘\")","v":"✘"},{"$f":"Computations!E18","v":""}]
["Systems tags",{"$f":"IF(Computations!B32,\"✓\",\"✘\")","v":"✘"},{"$f":"Computations!E23","v":""}]
["Computation and the World tags",{"$f":"IF(Computations!B33,\"✓\",\"✘\")","v":"✘"},{"$f":"Computations!E24","v":""}]
[{"$f":"IF(OR(Computations!$B$6,Computations!$B$7),\"Artificial Intelligence tags\",\"\")","v":""},{"$f":"IF(OR(Computations!$B$6,Computations!$B$7),IF(Computations!$B$34,\"✓\",\"✘\"),\"\")","v":""},{"$f":"IF(Computations!$B$6,Computations!$E$25,\"\")","v":""}]
["Advanced Computer Science tags",{"$f":"IF(Computations!B35,\"✓\",\"✘\")","v":"✘"},{"$f":"Computations!E26","v":""}]
["Discrete math tags",{"$f":"IF(Computations!B36,\"✓\",\"✘\")","v":"✓"},{"$f":"IF(Computations!$E$19<>\"\",Computations!$E$19,HYPERLINK(\"https://forms.gle/cdaCBjkdHTt1bGLy6\",\"No discrete math course taken, so self-attestation required. See https://forms.gle/cdaCBjkdHTt1bGLy6\"))","v":"No discrete math course taken, so self-attestation required. See https://forms.gle/cdaCBjkdHTt1bGLy6"}]
["Good to submit",{"$f":"IF(Computations!B81,\"✓\",\"✘\")","v":"✘"}]
["Automated messages:",{"$f":"_xlfn.TEXTJOIN(CHAR(10),TRUE,IF(Computations!$B$42:$B$97,Computations!$A$42:$A$97,\"\"))","v":""}]
[]
[]
[]
["Student comments:"]
[]
[]
[]
[]
["DUS comments:"]
[]
[]
[]
[]
[{"$f":"_xlfn.CONCAT(\"Concentration spreadsheet v\", LOOKUP(2,1/(VersionInfo!A:A<>\"\"),VersionInfo!A:A), \" \",  TEXT(LOOKUP(2,1/(VersionInfo!B:B<>\"\"),VersionInfo!B:B),\"mmm YYYY\"))","v":"Concentration spreadsheet v2.0.5 Feb 2026"}]

{"sheet":"Courses","index":1,"n_rows":1000,"n_cols":28,"rows_kept":1000,"hidden":true}
["CanonicalName","CanName+Semester","Name","Semester","Name2","Name3","FormerName","COURSE LONG TITLE","Public notes","corecs","programming1","programming2","formalreasoning","discretemath","complimitations","algorithms","intermediatealgorithms","systems","computationandtheworld","ai","advancedcs","probability","linearalgebra","Tags"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C2,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"AC215"},{"$f":"A2&\":\"&D2","v":"AC215:"},"AC215",{"$nulls":4},"Topics in Applied Computation: Advanced Practical Data Science, MLOps",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C3,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"AC221"},{"$f":"A3&\":\"&D3","v":"AC221:"},"AC221",{"$nulls":4},"Critical Thinking in Data Science",null,"corecs",{"$nulls":8},"computationandtheworld",{"$nulls":4},"corecs, computationandtheworld, secondary"]
["AC295","AC295:Fall 2021","AC295","Fall 2021","CS2871r",null,null,"Deep Learning for NLP",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs"]
["AM21A","AM21A:","AM21A",{"$nulls":4},"Mathematical Methods in the Sciences"]
["AM22A","AM22A:","AM22A",{"$nulls":4},"Solving and Optimizing",{"$nulls":14},"linearalgebra","linearalgebra"]
["AM22B","AM22B:","AM22B",{"$nulls":4},"Integrating and Approximating"]
["AM106","AM106:","AM106",{"$nulls":4},"Applied Algebra",null,"corecs",{"$nulls":13},"corecs"]
["AM107","AM107:","AM107",{"$nulls":4},"Graph Theory and Combinatorics",null,"corecs",null,null,"formalreasoning","discretemath",{"$nulls":6},"advancedcs",null,null,"corecs, formalreasoning, discretemath, advancedcs"]
["AM115","AM115:","AM115",{"$nulls":4},"Mathematical Modeling",null,"corecs",{"$nulls":8},"computationandtheworld",{"$nulls":4},"corecs, computationandtheworld"]
["AM120","AM120:","AM120",{"$nulls":4},"Applied Linear Algebra and Big Data",null,"corecs",{"$nulls":13},"corecs"]
["AM121","AM121:","AM121",{"$nulls":4},"Introduction to Optimization: Models and Methods",null,"corecs",{"$nulls":13},"corecs"]
["AM158","AM158:","AM158",null,"ES158",null,null,"Introduction to Optimal Control and Estimation",null,"corecs",{"$nulls":13},"corecs"]
["AM207","AM207:","AM207",{"$nulls":4},"Stochastic Methods for Data Analysis, Inference and Optimization",null,"corecs",{"$nulls":13},"corecs"]
["AM220","AM220:","AM220",{"$nulls":4},"Geometric Methods for Machine Learning",null,"corecs",null,null,"formalreasoning",{"$nulls":6},"ai","advancedcs",null,null,"corecs, formalreasoning, ai, advancedcs, secondary"]
["CS1","CS1:","CS1",{"$nulls":4},"Great Ideas in Computer Science",null,"corecs",{"$nulls":13},"corecs"]
["CS10","CS10:","CS10",null,"STAT10",null,null,"Elements of Data Science","No longer offered","corecs",{"$nulls":13},"corecs"]
["CS20","CS20:","CS20",{"$nulls":4},"Discrete Mathematics for Computer Science",null,"corecs",null,null,"formalreasoning","discretemath",{"$nulls":9},"corecs, formalreasoning, discretemath, secondary"]
["CS32","CS32:","CS32",{"$nulls":4},"Computational Thinking and Problem Solving","Mutually exclusive with CS50 and CSCI S-111","corecs","programming1",{"$nulls":12},"corecs, programming1, secondary"]
["CS37","CS37:","CS37",null,"ECON1071",null,null,"Incentives in the Wild: from Tanking in Sports to Mining Cryptocurrencies",null,"corecs",{"$nulls":8},"computationandtheworld",{"$nulls":4},"corecs, computationandtheworld, secondary"]
["CS50","CS50:","CS50",{"$nulls":4},"Introduction to Computer Science","Mutually exclusive with CS32 and CSCI S-111","corecs","programming1",{"$nulls":12},"corecs, programming1, secondary"]
["CS51","CS51:","CS51",{"$nulls":4},"Abstraction and Design in Computation",null,"corecs",null,"programming2",{"$nulls":11},"corecs, programming2, secondary"]
["CS61","CS61:","CS61",{"$nulls":4},"Systems Programming and Machine Organization",null,"corecs",null,"programming2",{"$nulls":5},"systems",{"$nulls":5},"corecs, programming2, systems, secondary"]
["CS73","CS73:","CS73",{"$nulls":4},"Code, Data, and Art",null,"corecs",{"$nulls":13},"corecs, secondary"]
["CS79","CS79:","CS79",{"$nulls":4},"Design of Useful and Usable Interactive Systems",null,"corecs",{"$nulls":13},"corecs, secondary"]
["CS90NAR","CS90NAR:","CS90NAR",{"$nulls":4},"Applied Ethical and Governance Challenges in AI"]
["CS90NBR","CS90NBR:","CS90NBR",{"$nulls":4},"Internet & Society: The Technologies and Politics of Control and CS"]
["CS90NCR","CS90NCR:","CS90NCR",{"$nulls":4},"Law for Algorithms: A Research and Discussion Forum"]
["CS90NDR","CS90NDR:","CS90NDR",{"$nulls":4},"Case Studies in Public and Private Policy Challenges of AI"]
["CS91R","CS91R:","CS91R",{"$nulls":4},"Supervised Reading and Research","For MBB & Joint plans, counts as advancedcs","corecs",{"$nulls":13},"corecs"]
["CS96","CS96:","CS96",{"$nulls":4},"System Design Projects",null,"corecs",{"$nulls":13},"corecs, secondary"]
["CS1050","CS1050:","CS1050",{"$nulls":3},"CS105","Privacy and Technology",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1060","CS1060:","CS1060",{"$nulls":4},"Software Engineering with Generative AI",null,"corecs",null,"programming2",{"$nulls":8},"advancedcs",null,null,"corecs, programming2, advancedcs, secondary"]
["CS1070","CS1070:","CS1070",null,"AC207",null,"CS107","Systems Development for Computational Science","No longer offered","corecs","programming1",{"$nulls":9},"advancedcs",null,null,"corecs, programming1, advancedcs, secondary"]
["CS1090A","CS1090A:2025 and later","CS1090A","2025 and later","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science","Also advancedcs if approved on a plan of study before 2025-02-01.","corecs","programming1",{"$nulls":7},"computationandtheworld",{"$nulls":4},"corecs, programming1, computationandtheworld, secondary"]
["CS1090A","CS1090A:","CS1090A",null,"STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science","Also advancedcs if approved on a plan of study before 2025-02-01.","corecs","programming1",{"$nulls":7},"computationandtheworld",{"$nulls":4},"corecs, programming1, computationandtheworld, secondary"]
["CS1090A","CS1090A:2024 and earlier","CS1090A","2024 and earlier","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2025","CS1090A","Spring 2025","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2024","CS1090A","Fall 2024","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2024","CS1090A","Spring 2024","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2023","CS1090A","Fall 2023","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2023","CS1090A","Spring 2023","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2022","CS1090A","Fall 2022","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2022","CS1090A","Spring 2022","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2021","CS1090A","Fall 2021","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2021","CS1090A","Spring 2021","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2020","CS1090A","Fall 2020","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2020","CS1090A","Spring 2020","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2019","CS1090A","Fall 2019","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2019","CS1090A","Spring 2019","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2018","CS1090A","Fall 2018","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2018","CS1090A","Spring 2018","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2017","CS1090A","Fall 2017","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2017","CS1090A","Spring 2017","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2016","CS1090A","Fall 2016","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Spring 2016","CS1090A","Spring 2016","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090A","CS1090A:Fall 2015","CS1090A","Fall 2015","STAT109A","AC209A","CS109A","Data Science 1: Introduction to Data Science",null,"corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1090B","CS1090B:","CS1090B",null,"STAT109B","AC209B","CS109B","Data Science 2: Advanced Topics in Data Science","AKA STAT121B until 2022","corecs","programming1",{"$nulls":7},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming1, computationandtheworld, advancedcs, secondary"]
["CS1200","CS1200:","CS1200",{"$nulls":3},"CS120","Introduction to Algorithms, Computability, and Complexity",null,"corecs",null,null,"formalreasoning",null,"complimitations","algorithms",{"$nulls":4},"advancedcs",null,null,"corecs, formalreasoning, complimitations, algorithms, advancedcs, secondary"]
["CS1210","CS1210:","CS1210",{"$nulls":3},"CS121","Introduction to Theoretical Computer Science",null,"corecs",null,null,"formalreasoning",null,"complimitations",{"$nulls":5},"advancedcs",null,null,"corecs, formalreasoning, complimitations, advancedcs, secondary"]
["CS1240","CS1240:","CS1240",{"$nulls":3},"CS124","Data Structures and Algorithms",null,"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary"]
["CS1260","CS1260:","CS1260",{"$nulls":3},"CS126","Fairness and Privacy: Perspectives of Law and Probability",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS1261","CS1261:","CS1261",{"$nulls":3},"CS126","Privacy, Fairness, and Validity Through the Lens of Theoretical CS",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS1270","CS1270:","CS1270",null,"CS2270",null,"CS127","Cryptography",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS1280","CS1280:","CS1280",null,"AM122",null,"CS128","Convex Optimization and Applications in Machine Learning",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS1360","CS1360:","CS1360",{"$nulls":3},"CS136","Economics and Computation",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C67,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"CS1410"},{"$f":"A67&\":\"&D67","v":"CS1410:"},"CS1410",{"$nulls":3},"CS141","Computing Hardware",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS1430","CS1430:","CS1430",{"$nulls":3},"CS143","Computer Networks",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1440R","CS1440R:","CS1440R",{"$nulls":3},"CS144R","Networks Design Projects",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1450","CS1450:","CS1450",{"$nulls":3},"CS145","Networking at Scale",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS1411","CS1411:","CS1411",{"$nulls":3},"CS146","Computer Architecture",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS1480","CS1480:","CS1480",{"$nulls":3},"CS148","Design of VLSI Circuits and Systems",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1520","CS1520:","CS1520",{"$nulls":3},"CS152","Programming Languages",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS1530","CS1530:","CS1530",{"$nulls":3},"CS153","Compilers",null,"corecs",null,"programming2",{"$nulls":5},"systems",null,null,"advancedcs",null,null,"corecs, programming2, systems, advancedcs, secondary"]
["CS1610","CS1610:","CS1610",{"$nulls":3},"CS161","Operating Systems",null,"corecs",null,"programming2",{"$nulls":5},"systems",null,null,"advancedcs",null,null,"corecs, programming2, systems, advancedcs, secondary"]
["CS1650","CS1650:","CS1650",{"$nulls":3},"CS165","Data Systems",null,"corecs",null,"programming2",{"$nulls":5},"systems",null,null,"advancedcs",null,null,"corecs, programming2, systems, advancedcs, secondary"]
["CS1710","CS1710:","CS1710",{"$nulls":3},"CS171","Visualization",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary",{"$error":"#REF!"},{"$error":"#REF!"},{"$error":"#REF!"},{"$error":"#REF!"}]
["CS1750","CS1750:","CS1750",{"$nulls":3},"CS175","Computer Graphics",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS1780","CS1780:","CS1780",{"$nulls":3},"CS178","Engineering Usable Interactive Systems",null,"corecs",null,"programming2",{"$nulls":6},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming2, computationandtheworld, advancedcs, secondary"]
["CS179","CS179:","CS179",{"$nulls":4},"Design of Useful and Usable Interactive Systems","2022 and earlier","corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1810","CS1810:","CS1810",{"$nulls":3},"CS181","Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS1820","CS1820:","CS1820",{"$nulls":3},"CS182","Artificial Intelligence",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS1840","CS1840:","CS1840",{"$nulls":3},"CS184","Reinforcement learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS1870","CS1870:","CS1870",{"$nulls":3},"CS187","Introduction to Computational Linguistics and Natural-language Processing",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS1890","CS1890:","CS1890",{"$nulls":3},"CS189","Autonomous Robot Systems",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1910","CS1910:","CS1910",{"$nulls":3},"CS191","Classics of Computer Science",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS1960","CS1960:","CS1960",null,"EDU T217",null,"CS196","Designing K–12 Computer Science Learning Experiences",null,"corecs",{"$nulls":13},"corecs, secondary"]
["CS1970","CS1970:","CS1970",{"$nulls":3},"CS197","AI Research Experiences",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS2050","CS2050:","CS2050",{"$nulls":3},"CS205","Computing Foundations for Computational Science",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS2080","CS2080:","CS2080",{"$nulls":3},"CS208","Applied Privacy for Data Science",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS2210","CS2210:","CS2210",{"$nulls":3},"CS221","Computational Complexity",null,"corecs",null,null,"formalreasoning",null,"complimitations",{"$nulls":5},"advancedcs",null,null,"corecs, formalreasoning, complimitations, advancedcs, secondary"]
["CS2212","CS2212:","CS2212",{"$nulls":3},"CS229R","Topics in Theoretical Computer Science: Biology and Complexity",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS2231","CS2231:","CS2231",{"$nulls":3},"CS231","Quantum Computation and Quantum Complexity","Mutually exclusive with QSE 210a","corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS2232","CS2232:","CS2232",null,"MIT 6.5430",null,null,"Frontiers of Quantum Complexity Theory",null,"corecs",null,null,"formalreasoning",null,"complimitations",{"$nulls":5},"advancedcs",null,null,"corecs, formalreasoning, complimitations, advancedcs, secondary"]
["CS2233","CS2233:","CS2233",{"$nulls":4},"Quantum Learning Theory",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS2241","CS2241:","CS2241",{"$nulls":3},"CS222","Algorithms at the Ends of the Wire",null,"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary"]
["CS2242","CS2242:","CS2242",{"$nulls":3},"CS223","Probabilistic Analysis and Algorithms",null,"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary"]
["CS224","CS224:","CS224",{"$nulls":3},"CS224","Advanced Algorithms",null,"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C99,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"CS2243"},"CS2243:","CS2243",{"$nulls":4},"Algorithms for Data Science",null,"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs, secondary"]
["CS2252","CS2252:","CS2252",{"$nulls":3},"CS229CR","High Dimensional Probability: Spectral Graph Theory in CS",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS2260","CS2260:","CS2260",{"$nulls":3},"CS226R","Topics in Theory for Society: Fairness and Validity",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS2261","CS2261:","CS2261",{"$nulls":3},"CS226R","Topics in Theory for Society: Algorithmic Fairness",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS2280","CS2280:","CS2280",{"$nulls":3},"CS228","Computational Learning Theory",null,"corecs",null,null,"formalreasoning",null,"complimitations",{"$nulls":4},"ai","advancedcs",null,null,"corecs, formalreasoning, complimitations, ai, advancedcs, secondary"]
["CS2281R","CS2281R:Fall 2024","CS2281R","Fall 2024",{"$nulls":3},"Mathematical & Engineering Principles for Training Foundation Models","Unlike most classes numbered x2xx, this is not a theoretical CS class.","corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs"]
["CS2281R","CS2281R:All but Fall 2024","CS2281R","All but Fall 2024",null,null,"CS229BR","Topics in Foundations of ML",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs"]
["CS229BR","CS229BR:Spring 2021","CS229BR","Spring 2021",{"$nulls":3},"Advanced Topics in the Theory of Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS229BR","CS229BR:Spring 2023","CS229BR","Spring 2023",{"$nulls":3},"Advanced Topics in the Theory of Machine Learning",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS229R","CS229R:Fall 2023","CS229R","Fall 2023",{"$nulls":3},"Essential Coding Theory",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS229R","CS229R:Fall 2022","CS229R","Fall 2022",{"$nulls":3},"Topics in Theoretical Computer Science: Information Theory",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS2340","CS2340:","CS2340",{"$nulls":3},"CS234R","Topics on Computation in Networks and Crowds",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS2360r","CS2360r:","CS2360r",{"$nulls":3},"CS236R","Topics at the Interface between Computer Science and Economics",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS2370","CS2370:","CS2370",{"$nulls":3},"CS237","Economic Analysis as a Frontier of Theoretical Computer Science",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS2380","CS2380:","CS2380",{"$nulls":3},"CS238","Optimized Democracy",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs, secondary"]
["CS2411","CS2411:","CS2411",{"$nulls":3},"CS246","Advanced Computer Architecture",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2420","CS2420:","CS2420",{"$nulls":3},"CS242","Computing at Scale",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C116,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"CS2430"},{"$f":"A116&\":\"&D116","v":"CS2430:"},"CS2430",{"$nulls":3},"CS243","Advanced Computer Networks",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2470r","CS2470r:","CS2470r",{"$nulls":3},"CS247R","Advanced Topics in Computer Architecture",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2490r","CS2490r:","CS2490r",{"$nulls":3},"CS249R","Tiny Machine Learning",null,"corecs",{"$nulls":7},"systems","computationandtheworld",null,"advancedcs",null,null,"corecs, systems, computationandtheworld, advancedcs, secondary"]
["CS2520r","CS2520r:","CS2520r",{"$nulls":3},"CS252R","Advanced Topics in Programming Languages",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS2540","CS2540:","CS2540",{"$nulls":3},"CS254","Formal Methods for Computer Security",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs, secondary"]
["CS2600r","CS2600r:","CS2600r",{"$nulls":3},"CS260R","Projects and Close Readings in Software Systems",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C122,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"CS2610"},{"$f":"A122&\":\"&D122","v":"CS2610:"},"CS2610",{"$nulls":3},"CS261","Research Topics in Operating Systems",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2620","CS2620:","CS2620",{"$nulls":3},"CS262","Introduction to Distributed Computing",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2630","CS2630:","CS2630",{"$nulls":3},"CS263","Systems Security",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2650","CS2650:","CS2650",{"$nulls":3},"CS265","Big Data Systems",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs, secondary"]
["CS2710","CS2710:","CS2710",{"$nulls":3},"CS271","Topics in Data Visualization",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS2760","CS2760:","CS2760",{"$nulls":3},"CS276","Design, Technology, and Social Impact",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS2780","CS2780:","CS2780",{"$nulls":4},"Conceptualizing, Building, and Evaluating Usable Novel Interactive Systems",null,"corecs",null,"programming2",{"$nulls":6},"computationandtheworld",null,"advancedcs",null,null,"corecs, programming2, computationandtheworld, advancedcs, secondary"]
["CS2790r","CS2790r:","CS2790r",{"$nulls":3},"CS279R","Research Topics in Human-Computer Interaction",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS2810","CS2810:","CS2810",{"$nulls":3},"CS281","Advanced Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS2821r","CS2821r:","CS2821r",{"$nulls":3},"CS282BR","Topics in Machine Learning: Interpretability and Explainability",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS2822r","CS2822r:","CS2822r",{"$nulls":3},"CS282R","Topics in Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS2823r","CS2823r:","CS2823r",{"$nulls":4},"Advanced Topics in Modern Machine Learning",null,"corecs",{"$nulls":9},"ai","advancedcs",null,null,"corecs, ai, advancedcs, secondary"]
["CS2824","CS2824:","CS2824",{"$nulls":4},"Foundations of Reinforcement Learning",null,"corecs",null,null,"formalreasoning",{"$nulls":6},"ai","advancedcs",null,null,"corecs, formalreasoning, ai, advancedcs, secondary"]
["CS2831","CS2831:","CS2831",{"$nulls":3},"CS283","Computer Vision",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS2840","CS2840:","CS2840",{"$nulls":4},"Computational Optimal Transport for Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS2860","CS2860:","CS2860",{"$nulls":3},"CS286","Multi-Robot Systems: Control, Communication, and Security",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS2871","CS2871:","CS2871",{"$nulls":3},"CS287",null,null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs, secondary"]
["CS2880","CS2880:","CS2880",{"$nulls":3},"CS288","AI for Social Impact",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS2881r","CS2881r:","CS2881r",{"$nulls":4},"Topics in Foundations of ML: AI Alignment and Safety",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs, secondary"]
["CS2890","CS2890:","CS2890",{"$nulls":3},"CS289","Autonomous Robot Systems",null,"corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs, secondary"]
["CS2901","CS2901:","CS2901",{"$nulls":3},"CS290","PhD Grad Cohort Research Seminar"]
["CS2990r","CS2990r:","CS2990r",{"$nulls":3},"CS299R","Special Topics in Computer Science"]
["CS3330","CS3330:","CS3330",{"$nulls":3},"CS333","Individual Risk"]
["ECON2070","ECON2070:","ECON 2070",{"$nulls":4},"A Computer Science Toolbox for Modern Economic Theory",null,"corecs",null,null,"formalreasoning",{"$nulls":5},"computationandtheworld",null,"advancedcs",null,null,"corecs, formalreasoning, computationandtheworld, advancedcs"]
["ES50","ES50:","ES50",{"$nulls":4},"Introduction to Electrical Engineering","Mutually exclusive with ES54","corecs",{"$nulls":13},"corecs"]
["ES54","ES54:","ES54",{"$nulls":4},"Electronics for Engineers","Mutually exclusive with ES50","corecs",{"$nulls":13},"corecs"]
["ES143","ES143:","ES143",{"$nulls":4},"Computer Vision",null,"corecs",{"$nulls":8},"computationandtheworld",{"$nulls":4},"corecs, computationandtheworld"]
["ES150","ES150:","ES150",{"$nulls":4},"Probability with Engineering Applications",{"$nulls":13},"probability",null,"probability"]
["ES170","ES170:","ES170",{"$nulls":4},"Engineering Quantum Mechanics",null,"corecs",{"$nulls":13},"corecs"]
["ES256","ES256:","ES256",{"$nulls":4},"Informal Robotics",null,"corecs",{"$nulls":13},"corecs"]
["MATHMA","MATHMA:","MATHMA",{"$nulls":4},"Introduction to Functions and Calculus I"]
["MATHMB","MATHMB:","MATHMB",{"$nulls":4},"Introduction to Functions and Calculus II"]
["MATH1A","MATH1A:","MATH1A",{"$nulls":4},"Introduction to Calculus"]
["MATH1B","MATH1B:","MATH1B",{"$nulls":4},"Introduction to Calculus"]
["MATH21A","MATH21A:","MATH21A",{"$nulls":4},"Multivariable Calculus"]
["MATH21B","MATH21B:","MATH21B",{"$nulls":4},"Linear Algebra and Differential Equations",{"$nulls":14},"linearalgebra","linearalgebra"]
["MATH22A","MATH22A:","MATH22A",{"$nulls":4},"Vector Calculus and Linear Algebra I",{"$nulls":14},"linearalgebra","linearalgebra"]
["MATH23A","MATH23A:","MATH23A",{"$nulls":4},"Linear Algebra and Real Analysis I",{"$nulls":14},"linearalgebra","linearalgebra"]
["MATH23B","MATH23B:","MATH23B",{"$nulls":4},"Linear Algebra and Real Analysis II",{"$nulls":14},"linearalgebra","linearalgebra"]
["MATH23C","MATH23C:","MATH23C",{"$nulls":4},"Mathematics for Computation, Statistics, and Data Science",{"$nulls":5},"discretemath",{"$nulls":9},"discretemath"]
["MATH25A","MATH25A:","MATH25A",{"$nulls":4},"Theoretical Linear Algebra and Real Analysis I",{"$nulls":14},"linearalgebra","linearalgebra"]
["MATH25B","MATH25B:","MATH25B",{"$nulls":4},"Theoretical Linear Algebra and Real Analysis II"]
["MATH55A","MATH55A:","MATH55A",{"$nulls":4},"Studies in Algebra and Group Theory",{"$nulls":14},"linearalgebra","linearalgebra"]
["MATH55B","MATH55B:","MATH55B",{"$nulls":4},"Studies in Real and Complex analysis"]
["MATH101","MATH101:","MATH101",{"$nulls":4},"Sets, Groups and Topology","Class of 2026 and later: Mutually exclusive with CS20 and MATH152","corecs",null,null,"formalreasoning","discretemath",{"$nulls":9},"corecs, formalreasoning, discretemath"]
["MATH152","MATH152:","MATH152",{"$nulls":4},"Discrete Mathematics","Mutually exclusive with CS20 and MATH101","corecs",null,null,"formalreasoning","discretemath",{"$nulls":9},"corecs, formalreasoning, discretemath"]
["MATH154","MATH154:","MATH154",{"$nulls":4},"Probability Theory",{"$nulls":13},"probability",null,"probability"]
["Neuro140","Neuro140:","Neuro140",null,"Neuro240",{"$nulls":4},"corecs",{"$nulls":13},"corecs"]
["Neuro1401","Neuro1401:","Neuro1401",{"$nulls":4},"Computational Cognitive Neuroscience: Building Models of the Brain",null,"corecs",{"$nulls":13},"corecs"]
["PHY123b","PHY123b:","PHY123b",null,"ES153",null,null,"Laboratory Electronics",null,"corecs",{"$nulls":7},"systems",{"$nulls":5},"corecs, systems"]
["PHY160","PHY160:","PHY160",{"$nulls":4},"Introduction to Quantum Information",null,"corecs",{"$nulls":13},"corecs"]
["PHY260a","PHY260a:","PHY260a",null,"QSE 210a",null,null,"Introduction to quantum information",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs"]
["PHY260b","PHY260b:","PHY260b",null,"QSE 210b",null,null,"Introduction to quantum information II",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs"]
["STAT110","STAT110:","STAT110",null,"STAT S-110",null,null,"Introduction to Probability",{"$nulls":13},"probability",null,"probability"]
["STAT111","STAT111:","STAT111",{"$nulls":4},"Introduction to Statistical Inference",{"$nulls":13},"probability",null,"probability"]
["STAT195","STAT195:","STAT195",{"$nulls":4},"Statistical Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld",{"$nulls":4},"corecs, computationandtheworld"]
["STAT210","STAT210:","STAT210",{"$nulls":4},"Probability Theory and Statistical Inference I",{"$nulls":13},"probability",null,"probability"]
["STAT220","STAT220:","STAT220",{"$nulls":4},"Bayesian Data Analysis",{"$nulls":13},"probability",null,"probability"]
["MIT6.1040","MIT6.1040:","MIT 6.1040",null,"MIT 6.170",null,null,"Software Studio",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs"]
["MIT6.1060","MIT6.1060:","MIT 6.1060",null,"MIT 6.172",null,null,"Performance Engineering of Software Systems",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs"]
["MIT6.3900","MIT6.3900:Fall only, 2025 and later","MIT 6.3900","Fall only, 2025 and later","MIT 6.036",null,null,"Introduction to Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["MIT6.4120","MIT6.4120:","MIT 6.4120",null,"MIT 6.804","MIT 9.66",null,"Computational Cognitive Science",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs"]
["MIT6.4550","MIT6.4550:","MIT 6.4550",null,"MIT 21M.385","MIT 6.185",null,"Interactive Music Systems",null,"corecs",{"$nulls":13},"corecs"]
["MIT6.5210","MIT6.5210:","MIT 6.5210",null,"MIT 6.854",null,null,"Advanced Algorithms",null,"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C186,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":"MIT6.5310"},{"$f":"A186&\":\"&D186","v":"MIT6.5310:"},"MIT 6.5310",null,"MIT 6.849",null,null,"Computational Geometry",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs"]
["MIT6.5410","MIT6.5410:","MIT 6.5410",null,"MIT 18.405","MIT 6.841",null,"Advanced Complexity Theory",null,"corecs",null,null,"formalreasoning",null,"complimitations",{"$nulls":5},"advancedcs",null,null,"corecs, formalreasoning, complimitations, advancedcs"]
["MIT6.5610","MIT6.5610:","MIT 6.5610",null,"MIT 6.857",null,null,"Computer and Network Security",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs"]
["MIT6.5620","MIT6.5620:","MIT 6.5620",null,"MIT 6.875",null,null,"Cryptography and Cryptanalysis",null,"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs"]
["MIT6.5660","MIT6.5660:","MIT 6.5660",null,"MIT 6.858",null,null,"Comp Systems Security",null,"corecs",{"$nulls":7},"systems",null,null,"advancedcs",null,null,"corecs, systems, advancedcs"]
["MIT6.5840","MIT6.5840:","MIT 6.5840",null,"MIT 6.824",null,null,"Distributed Systems Engineering",null,"corecs",null,"programming2",{"$nulls":5},"systems",null,null,"advancedcs",null,null,"corecs, programming2, systems, advancedcs"]
["MIT6.5940","MIT6.5940:","MIT 6.5940",{"$nulls":4},"TinyML and Efficient Deep Learning Computing",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["MIT6.7320","MIT6.7320:","MIT 6.7320",null,"MIT 6.338j",null,null,"Parallel Computing and Scientific Machine Learning",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs"]
["MIT6.7900","MIT6.7900:","MIT 6.7900",null,"MIT 6.867",null,null,"Machine Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["MIT6.7960","MIT6.7960:","MIT 6.7960",null,"MIT 6.S898",null,null,"Deep Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["MIT6.8200","MIT6.8200:","MIT 6.8200",null,"MIT 6.484",null,null,"Computational Sensorimotor Learning",null,"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["MIT6.8611","MIT6.8611:","MIT 6.8611",null,"MIT 6.8610","MIT 6.806","MIT 6.864","Advanced Natural Language Processing","Mutually exclusive with MIT 9.19.","corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["MIT8.370","MIT8.370:","MIT 8.370",null,"MIT 18.435","MIT 2.111",null,"Quantum Computation",null,"corecs",{"$nulls":10},"advancedcs",null,null,"corecs, advancedcs"]
["MIT9.19","MIT9.19:","MIT 9.19",{"$nulls":4},"Computational Psycholinguistics","Mutually exclusive with MIT 6.806/6.864","corecs",{"$nulls":8},"computationandtheworld",null,"advancedcs",null,null,"corecs, computationandtheworld, advancedcs"]
["MIT21M.387","MIT21M.387:","MIT 21M.387",null,"MIT 6.S197",null,null,"Fundamentals of Music Processing",null,"corecs",{"$nulls":8},"computationandtheworld",{"$nulls":4},"corecs, computationandtheworld"]
["AITDeeplearning(StudyAbroad)","AITDeeplearning(StudyAbroad):","AIT Deep learning (Study Abroad)",{"$nulls":6},"corecs",{"$nulls":8},"computationandtheworld","ai","advancedcs",null,null,"corecs, computationandtheworld, ai, advancedcs"]
["AITAlgorithmsandDataStructures(StudyAbroad)","AITAlgorithmsandDataStructures(StudyAbroad):","AIT Algorithms and Data Structures (Study Abroad)",{"$nulls":6},"corecs",null,null,"formalreasoning",null,null,"algorithms","intermediatealgorithms",{"$nulls":3},"advancedcs",null,null,"corecs, formalreasoning, algorithms, intermediatealgorithms, advancedcs"]
["AITTheoryofComputing(StudyAbroad)","AITTheoryofComputing(StudyAbroad):","AIT Theory of Computing (Study Abroad)",{"$nulls":6},"corecs",null,null,"formalreasoning",null,"complimitations",{"$nulls":5},"advancedcs",null,null,"corecs, formalreasoning, complimitations, advancedcs"]
["OxfordAutomata,Logic,andGames(StudyAbroad)","OxfordAutomata,Logic,andGames(StudyAbroad):","Oxford Automata, Logic, and Games (Study Abroad)",{"$nulls":6},"corecs",null,null,"formalreasoning",{"$nulls":7},"advancedcs",null,null,"corecs, formalreasoning, advancedcs"]
["OxfordComputerArchitecture(StudyAbroad)","OxfordComputerArchitecture(StudyAbroad):","Oxford Computer Architecture (Study Abroad)",{"$nulls":6},"corecs",{"$nulls":7},"systems",{"$nulls":5},"corecs, systems"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C250,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A250&\":\"&D250","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C314,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A314&\":\"&D314","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C378,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A378&\":\"&D378","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C442,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A442&\":\"&D442","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C506,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A506&\":\"&D506","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C570,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A570&\":\"&D570","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C634,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A634&\":\"&D634","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C698,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A698&\":\"&D698","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C762,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A762&\":\"&D762","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C826,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A826&\":\"&D826","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C890,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A890&\":\"&D890","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
[{"$f":"SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(C954,\"APMTH\",\"AM\"),\"ENG-SCI\",\"ES\"),\"COMPSCI\",\"CS\"),\"  \",\"\"),\" \",\"\")","v":""},{"$f":"A954&\":\"&D954","v":":"}]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]
["",":"]

{"sheet":"Computations","index":2,"n_rows":81,"n_cols":52,"rows_kept":81,"hidden":true,"merged":[[2,24,2,25]]}
["This sheet has a variety of computations on it."]
[{"$nulls":38},"Any unknown courses?",{"$f":"OR($V$6:$V$16)","v":false}]
[{"$nulls":24},"PassFail/SUS permitted?",null,true,false,false,false,false,false,false,false,false,false,true]
[{"$nulls":7},"Grade","Grade points",null,null,"Terms","Num value of term"]
["Program",{"$f":"PlanOfStudy!C7","v":"Basic"},{"$nulls":5},"A",{"v":4,"d":"4.000"},null,null,"Fall 2015",1,null,null,"Course canonical name","Spreadsheet Canonical Name","Name+Semester","Name+SemesterLookup","SemesterNum","Duplicate","Unknown","Not corecs","Error?","Pass/Fail or SUS?","corecs","programming1","programming2","formalreasoning","discretemath","complimitations","algorithms","intermediatealgorithms","systems","computationandtheworld","ai","advancedcs",null,null,"Exception tags","corecs","programming1","programming2","formalreasoning","discretemath","complimitations","algorithms","intermediatealgorithms","systems","computationandtheworld","ai","advancedcs"]
["Is Honors?",{"$f":"OR($B$5=\"Honors\")","v":false},{"$nulls":5},"A-",{"v":3.67,"d":"3.670"},null,null,"Spring 2016",2,null,1,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C17=\"None\",$O6>$B$13),\"\",PlanOfStudy!$C17), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P6,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P6,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P6,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P6,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q6&\":\"&IF(PlanOfStudy!D17<>\"\",PlanOfStudy!D17,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R6,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q6&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D17<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D17,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},false,{"$f":"AND(P6<>\"\",Q6=\"\")","v":false},{"$f":"AND(NOT(V6),Z6<>1,P6<>\"\")","v":false},{"$f":"OR(U6:W6)","v":false},{"$f":"AND(PlanOfStudy!$E17<>\"Letter\",PlanOfStudy!$E17<>\"SEM/UEM\",PlanOfStudy!$E17<>\"\",$P6<>\"\")","v":false},{"$f":"IF(AO6,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP6,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ6,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR6,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS6,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT6,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU6,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV6,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW6,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX6,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY6,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y6),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ6,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S6,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q6=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F17<>\"\",$V6),LOWER(SUBSTITUTE(PlanOfStudy!$F17, \" \", \"\")),\"\")","v":""},{"$f":"ISNUMBER(FIND(AO$5,$AN6))","v":false},{"$f":"ISNUMBER(FIND(AP$5,$AN6))","v":false},false,false,false,false,false,false,false,false,false,false]
["Is MBB?",{"$f":"$B$5=\"MBB\"","v":false},{"$nulls":5},"B+",{"v":3.33,"d":"3.330"},null,null,"Fall 2016",3,null,2,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C18=\"None\",$O7>$B$13),\"\",PlanOfStudy!$C18), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P7,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P7,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P7,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P7,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q7&\":\"&IF(PlanOfStudy!D18<>\"\",PlanOfStudy!D18,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R7,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q7&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D18<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D18,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P7<>\"\",P7=P6),AND(Q7<>\"\",Q7=Q6))","v":false},{"$f":"AND(P7<>\"\",Q7=\"\")","v":false},{"$f":"AND(NOT(V7),Z7<>1,P7<>\"\")","v":false},{"$f":"OR(U7:W7)","v":false},{"$f":"AND(PlanOfStudy!$E18<>\"Letter\",PlanOfStudy!$E18<>\"SEM/UEM\",PlanOfStudy!$E18<>\"\",$P7<>\"\")","v":false},{"$f":"IF(AO7,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP7,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ7,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR7,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS7,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT7,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU7,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV7,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW7,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX7,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY7,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y7),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ7,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S7,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q7=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F18<>\"\",$V7),LOWER(SUBSTITUTE(PlanOfStudy!$F18, \" \", \"\")),\"\")","v":""},{"$f":"ISNUMBER(FIND(AO$5,$AN7))","v":false},false,false,false,false,false,false,false,false,false,false,false]
["Is Joint?",{"$f":"$B$5=\"Joint\"","v":false},{"$nulls":5},"B",{"v":3,"d":"3.000"},null,null,"Spring 2017",4,null,3,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C19=\"None\",$O8>$B$13),\"\",PlanOfStudy!$C19), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P8,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P8,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P8,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P8,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q8&\":\"&IF(PlanOfStudy!D19<>\"\",PlanOfStudy!D19,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R8,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q8&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D19<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D19,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P8<>\"\",COUNTIF($P$6:$P7,\"=\"&$P8)>0),AND(Q8<>\"\",COUNTIF($Q$6:$Q7,\"=\"&$Q8)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E19<>\"Letter\",PlanOfStudy!$E19<>\"SEM/UEM\",PlanOfStudy!$E19<>\"\",$P8<>\"\")","v":false},{"$f":"IF(AO8,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP8,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ8,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR8,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS8,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT8,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU8,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV8,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW8,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX8,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY8,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y8),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ8,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S8,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q8=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F19<>\"\",$V8),LOWER(SUBSTITUTE(PlanOfStudy!$F19, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
["Is 91r allowed as advanced CS?",{"$f":"OR(B7,B8)","v":false},{"$nulls":5},"B-",{"v":2.67,"d":"2.670"},null,null,"Fall 2017",5,null,4,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C20=\"None\",$O9>$B$13),\"\",PlanOfStudy!$C20), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P9,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P9,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P9,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P9,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q9&\":\"&IF(PlanOfStudy!D20<>\"\",PlanOfStudy!D20,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R9,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q9&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D20<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D20,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P9<>\"\",COUNTIF($P$6:$P8,\"=\"&$P9)>0),AND(Q9<>\"\",COUNTIF($Q$6:$Q8,\"=\"&$Q9)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E20<>\"Letter\",PlanOfStudy!$E20<>\"SEM/UEM\",PlanOfStudy!$E20<>\"\",$P9<>\"\")","v":false},{"$f":"IF(AO9,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP9,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ9,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR9,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS9,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT9,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU9,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV9,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW9,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX9,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY9,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y9),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ9,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S9,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q9=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F20<>\"\",$V9),LOWER(SUBSTITUTE(PlanOfStudy!$F20, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
[{"$nulls":7},"C+",{"v":2.33,"d":"2.330"},null,null,"Spring 2018",6,null,5,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C21=\"None\",$O10>$B$13),\"\",PlanOfStudy!$C21), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P10,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P10,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P10,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P10,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q10&\":\"&IF(PlanOfStudy!D21<>\"\",PlanOfStudy!D21,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R10,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q10&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D21<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D21,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P10<>\"\",COUNTIF($P$6:$P9,\"=\"&$P10)>0),AND(Q10<>\"\",COUNTIF($Q$6:$Q9,\"=\"&$Q10)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E21<>\"Letter\",PlanOfStudy!$E21<>\"SEM/UEM\",PlanOfStudy!$E21<>\"\",$P10<>\"\")","v":false},{"$f":"IF(AO10,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP10,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ10,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR10,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS10,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT10,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU10,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV10,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW10,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX10,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY10,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y10),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ10,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S10,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q10=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F21<>\"\",$V10),LOWER(SUBSTITUTE(PlanOfStudy!$F21, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
[{"$nulls":7},"C",{"v":2,"d":"2.000"},null,null,"Fall 2018",7,null,6,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C22=\"None\",$O11>$B$13),\"\",PlanOfStudy!$C22), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P11,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P11,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P11,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P11,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q11&\":\"&IF(PlanOfStudy!D22<>\"\",PlanOfStudy!D22,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R11,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q11&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D22<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D22,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P11<>\"\",COUNTIF($P$6:$P10,\"=\"&$P11)>0),AND(Q11<>\"\",COUNTIF($Q$6:$Q10,\"=\"&$Q11)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E22<>\"Letter\",PlanOfStudy!$E22<>\"SEM/UEM\",PlanOfStudy!$E22<>\"\",$P11<>\"\")","v":false},{"$f":"IF(AO11,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP11,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ11,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR11,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS11,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT11,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU11,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV11,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW11,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX11,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY11,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y11),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ11,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S11,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q11=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F22<>\"\",$V11),LOWER(SUBSTITUTE(PlanOfStudy!$F22, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
[null,"Required","Chosen","Satisfied",{"$nulls":3},"C-",{"v":1.67,"d":"1.670"},null,null,"Spring 2019",8,null,7,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C23=\"None\",$O12>$B$13),\"\",PlanOfStudy!$C23), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P12,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P12,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P12,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P12,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q12&\":\"&IF(PlanOfStudy!D23<>\"\",PlanOfStudy!D23,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R12,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q12&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D23<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D23,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P12<>\"\",COUNTIF($P$6:$P11,\"=\"&$P12)>0),AND(Q12<>\"\",COUNTIF($Q$6:$Q11,\"=\"&$Q12)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E23<>\"Letter\",PlanOfStudy!$E23<>\"SEM/UEM\",PlanOfStudy!$E23<>\"\",$P12<>\"\")","v":false},{"$f":"IF(AO12,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP12,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ12,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR12,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS12,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT12,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU12,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV12,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW12,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX12,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY12,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y12),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ12,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S12,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q12=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F23<>\"\",$V12),LOWER(SUBSTITUTE(PlanOfStudy!$F23, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
["Computer Science core courses",{"$f":"IF($B$6,11,IF($B$7,8,IF($B$8,8,9)))","v":9},{"$f":"COUNTIF($P$6:$P$16,\">''\")","v":0},{"$f":"B13<=C13","v":false},{"$nulls":3},"D+",{"v":1.33,"d":"1.330"},null,null,"Fall 2019",9,null,8,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C24=\"None\",$O13>$B$13),\"\",PlanOfStudy!$C24), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P13,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P13,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P13,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P13,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q13&\":\"&IF(PlanOfStudy!D24<>\"\",PlanOfStudy!D24,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R13,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q13&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D24<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D24,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P13<>\"\",COUNTIF($P$6:$P12,\"=\"&$P13)>0),AND(Q13<>\"\",COUNTIF($Q$6:$Q12,\"=\"&$Q13)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E24<>\"Letter\",PlanOfStudy!$E24<>\"SEM/UEM\",PlanOfStudy!$E24<>\"\",$P13<>\"\")","v":false},{"$f":"IF(AO13,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP13,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ13,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR13,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS13,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT13,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU13,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV13,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW13,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX13,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY13,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y13),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ13,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S13,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q13=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F24<>\"\",$V13),LOWER(SUBSTITUTE(PlanOfStudy!$F24, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
[{"$nulls":7},"D",{"v":1,"d":"1.000"},null,null,"Spring 2020",10,null,9,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C25=\"None\",$O14>$B$13),\"\",PlanOfStudy!$C25), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P14,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P14,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P14,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P14,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q14&\":\"&IF(PlanOfStudy!D25<>\"\",PlanOfStudy!D25,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R14,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q14&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D25<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D25,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P14<>\"\",COUNTIF($P$6:$P13,\"=\"&$P14)>0),AND(Q14<>\"\",COUNTIF($Q$6:$Q13,\"=\"&$Q14)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E25<>\"Letter\",PlanOfStudy!$E25<>\"SEM/UEM\",PlanOfStudy!$E25<>\"\",$P14<>\"\")","v":false},{"$f":"IF(AO14,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP14,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ14,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR14,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS14,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT14,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU14,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV14,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW14,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX14,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY14,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y14),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ14,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S14,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q14=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F25<>\"\",$V14),LOWER(SUBSTITUTE(PlanOfStudy!$F25, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
["Tags","Num Required","Num chosen","Satisfied","Courses used",null,null,"D-",{"v":0.67,"d":"0.670"},null,null,"Fall 2020",11,null,10,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C26=\"None\",$O15>$B$13),\"\",PlanOfStudy!$C26), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P15,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P15,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P15,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P15,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q15&\":\"&IF(PlanOfStudy!D26<>\"\",PlanOfStudy!D26,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R15,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q15&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D26<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D26,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P15<>\"\",COUNTIF($P$6:$P14,\"=\"&$P15)>0),AND(Q15<>\"\",COUNTIF($Q$6:$Q14,\"=\"&$Q15)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E26<>\"Letter\",PlanOfStudy!$E26<>\"SEM/UEM\",PlanOfStudy!$E26<>\"\",$P15<>\"\")","v":false},{"$f":"IF(AO15,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP15,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ15,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR15,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS15,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT15,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU15,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV15,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW15,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX15,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY15,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y15),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ15,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S15,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q15=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F26<>\"\",$V15),LOWER(SUBSTITUTE(PlanOfStudy!$F26, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
["Programming 1",0,{"$f":"SUM(AA6:AA16)","v":0},{"$f":"B16<=C16","v":true},{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AA$6:$AA$16=1,$P$6:$P$16,\"\"))","v":""},null,null,"SAT",{"$nulls":3},"Spring 2021",12,null,11,{"$f":"UPPER(SUBSTITUTE(IF(OR(PlanOfStudy!$C27=\"None\",$O16>$B$13),\"\",PlanOfStudy!$C27), \" \", \"\"))","v":""},{"$f":"_xlfn.XLOOKUP($P16,Courses!A:A,Courses!A:A,_xlfn.XLOOKUP($P16,Courses!E:E,Courses!A:A,_xlfn.XLOOKUP($P16,Courses!F:F,Courses!A:A,_xlfn.XLOOKUP($P16,Courses!G:G,Courses!A:A,\"\"))))","v":""},{"$f":"Q16&\":\"&IF(PlanOfStudy!D27<>\"\",PlanOfStudy!D27,\"\")","v":":"},{"$f":"_xlfn.XLOOKUP(R16,Courses!B:B,Courses!B:B,_xlfn.XLOOKUP(Q16&\":\",Courses!B:B,Courses!B:B,\"\"))","v":":"},{"$f":"IF(PlanOfStudy!D27<>\"\",_xlfn.XLOOKUP(PlanOfStudy!D27,$L$5:$L$43,$M$5:$M$43),\"\")","v":""},{"$f":"OR(AND(P16<>\"\",COUNTIF($P$6:$P15,\"=\"&$P16)>0),AND(Q16<>\"\",COUNTIF($Q$6:$Q15,\"=\"&$Q16)>0))","v":false},false,false,false,{"$f":"AND(PlanOfStudy!$E27<>\"Letter\",PlanOfStudy!$E27<>\"SEM/UEM\",PlanOfStudy!$E27<>\"\",$P16<>\"\")","v":false},{"$f":"IF(AO16,1,IFERROR(IF(FIND(Z$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,\"\"),\"\"))","v":""},{"$f":"IF(AP16,1,IFERROR(IF(AND(FIND(AA$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AA$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AQ16,1,IFERROR(IF(AND(FIND(AB$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AB$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AR16,1,IFERROR(IF(AND(FIND(AC$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AC$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AS16,1,IFERROR(IF(AND(FIND(AD$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AD$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AT16,1,IFERROR(IF(AND(FIND(AE$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AE$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AU16,1,IFERROR(IF(AND(FIND(AF$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AF$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AV16,1,IFERROR(IF(AND(FIND(AG$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AG$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AW16,1,IFERROR(IF(AND(FIND(AH$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AH$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AX16,1,IFERROR(IF(AND(FIND(AI$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AI$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AY16,1,IFERROR(IF(AND(FIND(AJ$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,OR(NOT($Y16),AJ$3)),1,\"\"),\"\"))","v":""},{"$f":"IF(AZ16,1,IFERROR(IF(FIND(AK$5,_xlfn.XLOOKUP($S16,Courses!$B$2:B$1000, Courses!$X$2:X$1000))>=0,1,NA()),IF(AND(Q16=\"CS91R\",$B$9),1,\"\")))","v":""},null,null,{"$f":"IF(AND(PlanOfStudy!$F27<>\"\",$V16),LOWER(SUBSTITUTE(PlanOfStudy!$F27, \" \", \"\")),\"\")","v":""},false,false,false,false,false,false,false,false,false,false,false,false]
["Programming 2",1,{"$f":"SUM(AB6:AB16)","v":0},{"$f":"B17<=C17","v":false},{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AB$6:$AB$16=1,$P$6:$P$16,\"\"))","v":""},null,null,"SEM",{"$nulls":3},"Fall 2021",13]
["Formal reasoning",3,{"$f":"SUM(AC6:AC16)","v":0},false,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AC$6:$AC$16=1,$P$6:$P$16,\"\"))","v":""},null,null,"PASS",{"$nulls":3},"Spring 2022",14]
["Discrete Mathematics",0,{"$f":"SUM(AD6:AD16)","v":0},true,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AD$6:$AD$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Fall 2022",15]
["Computational Limitations",1,{"$f":"SUM(AE6:AE16)","v":0},false,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AE$6:$AE$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Spring 2023",16]
["Algorithms",{"$f":"IF(OR($B$6,$B$7),0,1)","v":1},{"$f":"SUM(AF6:AF16)","v":0},false,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AF$6:$AF$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Fall 2023",17,null,null,"Grades","Grade point",{"$nulls":6},"Math course","Pass/Fail or SUS?"]
["Intermediate Algorithms",{"$f":"IF(OR($B$6,$B$7),1,0)","v":0},{"$f":"SUM(AG6:AG16)","v":0},true,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AG$6:$AG$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Spring 2024",18,null,null,{"$f":"\"\"&PlanOfStudy!$B11","v":""},{"$f":"IFERROR(VLOOKUP($P22,$H$5:$I$15,2,FALSE),\"\")","v":""},{"$nulls":6},{"$f":"IF(ISBLANK(PlanOfStudy!C11),\"\",PlanOfStudy!C11)","v":"None"},{"$f":"AND(PlanOfStudy!$E11<>\"Letter\",PlanOfStudy!$E11<>\"SEM/UEM\",PlanOfStudy!$E11<>\"\",$X22<>\"None\", $X22<>\"\")","v":false}]
["Systems",1,{"$f":"SUM(AH6:AH16)","v":0},false,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AH$6:$AH$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Fall 2024",19,null,null,{"$f":"\"\"&PlanOfStudy!$B12","v":""},{"$f":"IFERROR(VLOOKUP(P23,$H$5:$I$15,2,FALSE),\"\")","v":""},{"$nulls":6},{"$f":"IF(ISBLANK(PlanOfStudy!C12),\"\",PlanOfStudy!C12)","v":"None"},{"$f":"AND(PlanOfStudy!$E12<>\"Letter\",PlanOfStudy!$E12<>\"SEM/UEM\",PlanOfStudy!$E12<>\"\",$X23<>\"None\", $X23<>\"\")","v":false}]
["Computation and the World",1,{"$f":"SUM(AI6:AI16)","v":0},false,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AI$6:$AI$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Spring 2025",20,null,null,{"$f":"\"\"&PlanOfStudy!$B13","v":""},"",{"$nulls":6},{"$f":"IF(ISBLANK(PlanOfStudy!C13),\"\",PlanOfStudy!C13)","v":"None"},{"$f":"AND(PlanOfStudy!$E13<>\"Letter\",PlanOfStudy!$E13<>\"SEM/UEM\",PlanOfStudy!$E13<>\"\",$X24<>\"None\", $X24<>\"\")","v":false}]
["Artificial Intelligence",{"$f":"IF(OR($B$6,$B$7),1,0)","v":0},{"$f":"SUM(AJ6:AJ16)","v":0},true,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AJ$6:$AJ$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Fall 2025",21,null,null,{"$f":"\"\"&PlanOfStudy!$B14","v":""},"",{"$nulls":6},{"$f":"IF(ISBLANK(PlanOfStudy!C14),\"\",IF(PlanOfStudy!C14=\"Other\",IF(ISBLANK(PlanOfStudy!G14),\"\",PlanOfStudy!G14),PlanOfStudy!C14))","v":""},{"$f":"AND(PlanOfStudy!$E14<>\"Letter\",PlanOfStudy!$E14<>\"SEM/UEM\",PlanOfStudy!$E14<>\"\",$X25<>\"None\", $X25<>\"\")","v":false}]
["Advanced Computer Science",{"$f":"IF($B$6,5,4)","v":4},{"$f":"SUM(AK6:AK16)","v":0},false,{"$f":"_xlfn.TEXTJOIN(\", \",TRUE,IF($AK$6:$AK$16=1,$P$6:$P$16,\"\"))","v":""},{"$nulls":6},"Spring 2026",22,null,null,{"$f":"\"\"&PlanOfStudy!$B15","v":""},"",{"$nulls":6},{"$f":"IF(ISBLANK(PlanOfStudy!C15),\"\",IF(PlanOfStudy!C15=\"Other\",IF(ISBLANK(PlanOfStudy!G15),\"\",PlanOfStudy!G15),PlanOfStudy!C15))","v":""},{"$f":"AND(PlanOfStudy!$E15<>\"Letter\",PlanOfStudy!$E15<>\"SEM/UEM\",PlanOfStudy!$E15<>\"\",$X26<>\"None\", $X26<>\"\")","v":false}]
[{"$nulls":11},"Fall 2026",23,null,null,{"$f":"\"\"&PlanOfStudy!$B16","v":""},""]
[{"$nulls":11},"Spring 2027",24,null,null,{"$f":"\"\"&PlanOfStudy!$B17","v":""},""]
[{"$nulls":11},"Fall 2027",25,null,null,{"$f":"\"\"&PlanOfStudy!$B18","v":""},""]
["Programming tags satisfied",{"$f":"MIN($C$16,1)+$C$17>=2","v":false},{"$nulls":9},"Spring 2028",26,null,null,{"$f":"\"\"&PlanOfStudy!$B19","v":""},""]
["Formal reasoning tags satisfied",{"$f":"AND(D18,D19,D20,D21,D22)","v":false},{"$nulls":9},"Fall 2028",27,null,null,{"$f":"\"\"&PlanOfStudy!$B20","v":""},""]
["Systems tags satisfied",{"$f":"D23","v":false},{"$nulls":9},"Spring 2029",28,null,null,{"$f":"\"\"&PlanOfStudy!$B21","v":""},"",{"$nulls":6},"CS120,121,or124 term",{"$f":"MIN(_xlfn.XLOOKUP(\"CS120\",$P$6:$P$16,$T$6:$T$16,9999),_xlfn.XLOOKUP(\"CS121\",$P$6:$P$16,$T$6:$T$16,9999),_xlfn.XLOOKUP(\"CS124\",$P$6:$P$16,$T$6:$T$16,9999))","v":9999}]
["Computation and the World tags satisfied",{"$f":"D24","v":false},{"$nulls":9},"Fall 2029",29,null,null,{"$f":"\"\"&PlanOfStudy!$B22","v":""},"",{"$nulls":6},"AdvancedCS min term",{"$f":"IF(_xlfn.MINIFS($T$6:$T$16,$AK$6:$AK$16,\"=1\")=0,9999,_xlfn.MINIFS($T$6:$T$16,$AK$6:$AK$16,\"=1\"))","v":9999}]
["Artificial Intelligence tags satisfied",{"$f":"D25","v":true},{"$nulls":6},"Grading",null,null,"Spring 2030",30,null,null,{"$f":"\"\"&PlanOfStudy!$B23","v":""},"",{"$nulls":6},"AdvancedCS OR CS51,CS61 min term",{"$f":"MIN(Y33,_xlfn.XLOOKUP(\"CS51\",P7:P17,T7:T17, 9999),_xlfn.XLOOKUP(\"CS61\",P7:P17,T7:T17, 9999))","v":9999}]
["Advanced Computer Science tags satisfied",{"$f":"D26","v":false},{"$nulls":6},"Letter",null,null,"Fall 2030",31,null,null,{"$f":"\"\"&PlanOfStudy!$B24","v":""},""]
["Discrete Math tags satisfied",{"$f":"D19","v":true},{"$nulls":6},"Pass/Fail",null,null,"Spring 2031",32]
[{"$nulls":8},"Sat/Unsat",null,null,"Fall 2031",33]
["Core CS courses taken Pass/Fail or SUS",{"$f":"COUNTIF($Y$6:$Y$16, TRUE)","v":0},{"$nulls":6},"SEM/UEM",null,null,"Spring 2032",34]
["Math satisfied",{"$f":"AND(COUNTIFS($Y$22:$Y$26, TRUE)=0,$X25<>\"\",$X$26<>\"\")","v":false},{"$nulls":9},"Fall 2032",35,null,null,{"$f":"\"\"&PlanOfStudy!$B25","v":""},{"$f":"IFERROR(VLOOKUP(P39,$H$5:$I$15,2,FALSE),\"\")","v":""}]
[{"$nulls":11},"Spring 2033",36,null,null,{"$f":"\"\"&PlanOfStudy!$B26","v":""},{"$f":"IFERROR(VLOOKUP(P40,$H$5:$I$15,2,FALSE),\"\")","v":""}]
["Messages","Active","Error",{"$nulls":8},"Fall 2033",37,null,null,{"$f":"\"\"&PlanOfStudy!$B27","v":""},{"$f":"IFERROR(VLOOKUP(P41,$H$5:$I$15,2,FALSE),\"\")","v":""}]
[{"$f":"_xlfn.CONCAT(\"Duplicate course: \",P6)","v":"Duplicate course: "},{"$f":"$U6","v":false},true,{"$nulls":8},"Spring 2034",38,null,null,"Concentration GPA:",{"$f":"IFERROR(AVERAGE(Q22:Q41),\"\")","v":""}]
["Duplicate course: ",{"$f":"$U7","v":false},true,{"$nulls":8},"Other",999]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
["Duplicate course: ",false,true]
[{"$f":"\"Not CS Core course(s): \"&_xlfn.TEXTJOIN(\",\",TRUE,IF($W$6:$W$16,$P$6:$P$16,\"\"))","v":"Not CS Core course(s): "},{"$f":"OR($W$6:$W$16)","v":false},true]
[{"$f":"\"WARNING: Unknown course: \"&_xlfn.TEXTJOIN(\",\",TRUE,IF($V$6:$V$16,$P$6:$P$16,\"\"))&\" Check with DUS and enter tags manually\"","v":"WARNING: Unknown course:  Check with DUS and enter tags manually"},{"$f":"OR($V$6:$V$16)","v":false},false]
["Need either one Programming 1 course and one Programming 2 course, or  two Programming 2 courses",{"$f":"AND(NOT($B$30),$C$13>0)","v":false},true]
["Need a course with tag Discrete Mathematics",{"$f":"AND(NOT(D19),$C$13>0)","v":false},true]
["Need a course with tag Computational Limitations",{"$f":"AND(NOT(D20),$C$13>0)","v":false},true]
["Need a course with tag Algorithms",false,true]
["Need a course with tag Intermediate Algorithms",false,true]
[{"$f":"\"Need a total of \"&$B$18&\" Formal Reasoning courses\"","v":"Need a total of 3 Formal Reasoning courses"},{"$f":"AND(D19:D22,NOT(D18))","v":false},true]
["Need a course with tag Systems",{"$f":"AND(NOT(D23),$C$13>0)","v":false},true]
["Need a course with tag Computation and the World",{"$f":"AND(NOT(D24),$C$13>0)","v":false},true]
["Need a course with tag Artificial Intelligence",{"$f":"AND(NOT(D25),$C$13>0)","v":false},true]
[{"$f":"\"Need a total of \"&$B$26&\" Advanced CS courses\"","v":"Need a total of 4 Advanced CS courses"},false,true]
["Math courses must be taken for a letter grade",{"$f":"OR(Y22:Y26)","v":false},true]
["Note: P/F and S/US courses count only for tags Programming 1 and Advanced CS",{"$f":"OR($Y$6:$Y$16)","v":false},false]
["No more than two CS core courses can be taken P/F or S/US",{"$f":"$B$38>2","v":false},true]
[{"$f":"\"Need a total of \"&B13&\" Core CS courses\"","v":"Need a total of 9 Core CS courses"},{"$f":"AND(NOT(D13),$C$13>0)","v":false},true]
["Cannot take both CS32 and CS50 for concentration credit",{"$f":"IF((COUNTIF($P$6:$P$16, \"CS32\")+COUNTIF($P$6:$P$16, \"CS50\"))>1, TRUE, FALSE)","v":false},true]
["Should not take CS20 after a more advanced theory course. Please talk with DUS Team",{"$f":"IF(_xlfn.XLOOKUP(\"CS20\",$P$6:$P$16,$T$6:$T$16,0)<>\"\",_xlfn.XLOOKUP(\"CS20\",$P$6:$P$16,$T$6:$T$16,0)>$Y$32, FALSE)","v":false},false]
["Can not take CS1 after more advanced CS courses",{"$f":"IF(_xlfn.XLOOKUP(\"CS1\",$P$6:$P$16,$T$6:$T$16,0)<>\"\",_xlfn.XLOOKUP(\"CS1\",$P$6:$P$16,$T$6:$T$16,0)>$Y$34, FALSE)","v":false},true]
["Can not take CS32 after more advanced CS courses",{"$f":"IF(_xlfn.XLOOKUP(\"CS32\",$P$6:$P$16,$T$6:$T$16,0)<>\"\",_xlfn.XLOOKUP(\"CS32\",$P$6:$P$16,$T$6:$T$16,0)>$Y$34, FALSE)","v":false},true]
["Can not take CS50 after more advanced CS courses",{"$f":"IF(_xlfn.XLOOKUP(\"CS50\",$P$6:$P$16,$T$6:$T$16,0)<>\"\",_xlfn.XLOOKUP(\"CS50\",$P$6:$P$16,$T$6:$T$16,0)>$Y$34, FALSE)","v":false},true]
["Please fill in the terms you have/will take CS core courses, even if tentative.",{"$f":"AND(D13,SUMPRODUCT((Computations!P6:P16<>\"\")*(PlanOfStudy!D17:D27=\"\"))>0)","v":false},true]
["Please fill in your name, HUID, etc., at the top of the form",{"$f":"AND(D13,B39,COUNTBLANK(PlanOfStudy!C1:C4)>0)","v":false},true]
["Joint concentrators: please ensure you are aware of and following the other concentration's requirements",{"$f":"PlanOfStudy!C7=\"Joint\"","v":false},false]
[]
[]
[]
[{"$f":"\"Concentration GPA: \"&Q42","v":"Concentration GPA: "},{"$f":"Q42<>\"\"","v":false},false]
["Looks good to submit!",{"$f":"AND(COUNTIFS($B$42:B$79,TRUE,$C$42:$C$79,TRUE)=0,$D$13,$B$39)","v":false},false]

{"sheet":"Instructions","index":3,"n_rows":26,"n_cols":2,"rows_kept":26,"hidden":true}
["Instructions"]
[]
[null,"This sheet contains information about how this spreadsheet is set up, how to update this spreadsheet, and how to release it."]
[]
["Description of Tabs"]
[null,"The PlanOfStudy tab is the one that students fill in. Play around with it to understand what cells are enabled when (e.g., based on Basic, Honors, Joint, etc., unknown courses, etc.)"]
[null,"The Courses tab is the data about courses. This tab performs only minimal computation (Columns A and B)"]
[null,"The Computations tab is where all of the checking of courses happens, looking up to see what tags a course satisfies, checking the requirements, and computing appropriate error messages. "]
[]
[]
["Updating Courses"]
[null,"To update courses, go to the Google Sheet \"Principal Course Tags Sheet\" in the DUS shared folder, and copy the info in the sheet \"For Plan of Study Spreadsheet\". Paste that data into this spreadsheet in the Courses tab, starting in column C. (Columns A and B are used to compute useful representations of course names.)"]
[]
["Updating Computations/Requirements"]
[null,"Sorry, you'll have to dig into the Computations sheet to figure most of this out."]
[null,"But, for example, if you want to add a new error message, add a message in about row 75, column A. In column B of that row, put a formula to indiate whether the message is active or not (i.e., whether it should be displayed in the \"Automated Messages\" box of the PlanOfStudy tab). Column C indicates whether the message is an error (i.e., the form is not OK to submit) or just a warning/info (i.e., the form is OK to submit even if this message is active)."]
[]
["Release a new version"]
[null,"First, save a copy of this spreadsheet and rename it appropriately"]
[null,"Update the VersionInfo tab with a new version number and date."]
[null,"Save a copy of the file, in which some tabs, etc., will be protected. This is the file that will be released to students. Make sure that there is a separate, unprotected version of the file, to make it easier to edit."]
[null,"In the protected version of the file, we will now set things up to be suitable to release to students. "]
[null,"Hide all the tabs except PlanOfStudy. You can do this by right-clicking on the tab, and selecting \"Hide\""]
[null,"Protect the PlanOfStudy sheet. You can do this by going to Tools -> Protection, and choosing to protect the sheet. Use a password for this. It doesn't really matter what password, since you won't need to unprotect the sheet, but I suggest you still write it down. That sheet has been carefully set up to allow the user to edit only some of the cells in there (typically the ones highlighted in yellow) and other cells will not be editable."]
[null,"Protect the Workbook. Use the same password. This will prevent users from revealing the other tabs. Note that there is no sensitive information in the hidden tabs, but hiding them and protecting the workbook will help ensure that this spreadsheet is correctly computing the course requirements."]
[null,"Put the protected version of the plan of study onto the DUS website and update the links on the appropriate pages."]

{"sheet":"VersionInfo","index":4,"n_rows":23,"n_cols":3,"rows_kept":23,"hidden":true}
["Version","Date","Note"]
["0.0.1","2021-06-15","Initial creation"]
["0.0,2","2021-06-28","New course sheet format, including by requirements by semester. Note that we use XLOOKUP now"]
["1.0.0","2021-07-12","Initial release and fix duplicate checking code"]
["1.0.1","2021-07-20","Add SEM/UEM grading"]
["1.0.2","2021-08-24","Allow manually entered tags"]
["1.0.3","2021-08-27","Discrete Math tag feedback"]
["1.0.4","2021-11-06","Add message about total number of CS Core courses"]
["1.0.5","2022-01-13","Updated course tags"]
["1.0.6","2022-01-16","Fix bug in course tab"]
["1.0.7","2022-09-09","Courses for Fall 2022"]
["1.0.8","2023-01-10","Courses for Fall 2023"]
["1.0.9","2023-08-10","Updates at beginning of Fall 2023. Prevent both CS32 and CS50"]
["1.0.10","2023-08-23","Update for CS229R Fall 2023"]
["1.0.11","2023-10-04","Error message if not enough core courses or math courses"]
["1.0.12","2023-10-06","Update courses, more error message feedback"]
["1.0.13","2023-10-11","Check for intro courses after more advanced, and for missing info"]
["2.0.0","2024-04-17","Four digit course numbers"]
["2.0.1","2025-07-22","Update courses, spelling"]
["2.0.2","2025-07-22","Updated course data and fix computations sheet for the new course data layout"]
["2.0.3","2025-10-20","Message for joint concentrators"]
["2.0.4","2025-10-23","Fix CS109A courses"]
["2.0.5","2026-02-10","Update courses, no CS1 after more advanced courses"]