Computation as Symbol Manipulation
- We decide as humans what a byte means. There are different ways of noting these (eg hex) and depending on the context they all have different meanings.
Abstraction of Processes into Flow Charts and Pseudocode
- Abstraction is necessary to make a general process that we can apply to more specific instances.
- Example: employee time cards:
- The computer needs a specific format to be able to represent processes we need to do.
- Hours, rate of pay, employee identification, method of payment
- Pseudocode & flow charts: used to create a common sense of what the steps and outcomes need to be so that individual designers/teams can tackle specific areas of the project but still be able to put it together.
Scripting Behaviors
- Standardizing and developing uniform behavior across groups.
- Writing, proverbs, rituals are all ways of scripting behavior.
- Computers use algorithms to shape behaviors.
- An algorithm is kind of like a recipe: it’s a set of instructions.
- Blueprint for a mindset.
State
- State is to a machine or a program as instance is to a model: a specific set of conditions that can be observed in a moment of time.
- This is more of an abstract concept than a technical detail, although the state of a machine or a program is part of the technical environment.
- Example: saving a game: you don’t have to save the whole world, just the set of variables that represents the state of the world and your character.
- State diagram vs. branching hierarchy: it can be more efficient to model your process as a set of states that can be moved between rather than a path that only goes in one direction.
Modularity and Encapsulation
- If a program can be modularized, that means it can be divided into individual components without affecting the overall system.
- It can be tested and modified separately.
- Encapsulation means that underlying details are hidden. The goal is to standardize the topmost function.
- This uses a technique called information hiding.
- Example: when a development team is selling their software to the public, they don’t make their underlying source code public. Open source games/projects make the code available.
Collaboratively created by the members of CSC 105 Spring 2022.