The Big 6 of Computer Science
What should every beginning CS student learn? Here are six core areas any first course in computer science should address. All of our introductory courses address these.
- Variables and Objects Objects have state and behavior, and variables are identifiers [symbols] that point at them. Objects represent data that come in different species [types]. A table of all variables and the objects they refer to is called a symbol table. The process of binding a variable to a value is called assignment. Combinations of variables and operations are called expressions. When an expression is evaluated, the values of all variables in it are fetched from a symbol table and substituted into the expression.
- Functions Functions are entities that remember procedures. They have inputs (arguments), outputs (a return value), and side effects, which are items that persist beyond the lifetime of the function. Side effects can include output printed to the screen, items places in a file, or other changes to the internal state of a program. Functions are a means by which we decompose complex problems into simpler ones in a process called modularization.
- Scope and Delimitation This is the business of knowing where things begin and end. Included in this is the lifetime of variables and objects.
- Conditional Logic This permits programs to "make decisions" depending upon their internal state, which consists of all variables being stored and their values.
- Iteration This permits programs to do a task repeatedly and to know when and if to start and when to end.
- Containers These allow you to store a collection of related data under a single name. Different containts here different rules for access and modification of their contents.