ComplexitySprint 2β successCompiled Learning ObjectivesCachingIdentify and explain how web browsers benefit from cachingDemonstrate how caching can trade memory for CPUCache InvalidationIdentify and explain staleness risks with caching, and the difficulty of invalidationMemoisationDefine memoisationPre-computingIdentify a pre-computation which will improve the complexity of an algorithmTrade-offsGive examples of trading off memory for CPUGive examples of choosing where work is done in system designOptimise a system design to minimise the cost of operationsUser Needs and Acceptance Criteria WorkshopIdentify user personas.Define user needs for different user personas.Identify the benefits of using Who/What/Why in user stories.Write acceptance criteria in Given/When/Then format.Identify the benefits of using Given/When/Then in acceptance criteria.Clean Code WorkshopIdentify properties which make code easier to read and modify.Compare the cleanliness of code.