Hw #6: Abstraction and Design
In this homework, you'll grapple with the slippery topics of abstraction and design. To this point in the course, you've seen numerous examples of abstraction. We have also talked about the fact that abstraction hides the details that are ultimately necessary for the computer to perform our intended action, but which simultaneously distract us humans from a computation's big picture. In general, we humans find it easier to think about the intended action in the abstract when thinking about the work-to-be-done to solve the problem facing us. However, even after we've decided where to place an abstraction barrier (i.e., the barrier that hides the details from us), we are confronted with the choice of exactly how we design the abstraction. Recall our example of a procedural abstraction for exponentiation where we asked if we should create separate square and cube functions, each taking a single input parameter, or a single power function taking two parameters. Or should we, as the Python
HarvardKey - Sign In You are using an unsupported browser. For the best experience, update to a supported browser . Connecting to Sign in with your account to access Canvas Your OneDrive version is not supported Upgrade now by installing the OneDrive for Business Next Generation Sync Client to login to Okta Learn how to upgrade Cookies are required Cookies are disabled on your browser. Please enable Cookies and refresh this page. Refresh Privacy Policy The page has timed out If this page does not reload automatically, please refresh your browser.
Explore this link on the map →related reading
- Up and Down the Ladder of Abstractionworrydream.com
- Abstraction (computer science) - Wikipediaen.wikipedia.org
- The Law of Leaky Abstractions – Joel on Softwarejoelonsoftware.com
- Frank Chimero · What Screens Wantfrankchimero.com
- Learnable Programmingworrydream.com
- Introductionthird-bit.com
- Abstractioncs.cornell.edu
- Up and Down the Ladder of Abstractionworrydream.com
- Learnable Programmingworrydream.com
- Structure and Interpretation of Computer Programsmitp-content-server.mit.edu
- GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. · GitHubgithub.com
- The Design Recipefelleisen.org