CSC 150 Chapter 1: Introduction to Computer Science
primary information resource:
An Invitation to Computer Science (Java), Third Edition,
G. Michael Schneider and Judith L. Gersting,
Course Technology, 2007.
[ last
| schedule
| next ]
Q: What is computer science?
A: study of algorithms (broadly defined)
Q: What is an algorithm?
A: step-by-step procedure for accomplishing some task
Q: What are the 3 kinds of operations needed to construct algorithms?
(hint: think back to C SC 120 and the kinds of operations present both
in Karel the Robot's language and in Java).
A: 1. sequential (commands), 2. conditional ("if"), 3 iterative ("while",
"for")
Detailed definition of algorithm from textbook is worth parsing:
well-ordered collection of...
unambiguous and...
effectively computable operations that, when executed...
produces a result and...
halts in a finite amount of time.
A little detail on each term:
-
well-ordered collection: the ordering of operations must be unambiguous
(e.g. implicit ordering through sequence, specific target for non-sequential
move)
-
unambiguous (refers to operations): operation has only one possible
interpretation, no additional explanation or refinement needed
-
effectively computable operations: must be doable (some things are
not doable: "sort the list of prime numbers", "sum of all even numbers",
"min/max/average of a collection of 0 values", "write program A which reads
program B and data C with property that A will halt if and only if B does
not halt on input C". Other things are theoretically possible but
not practical: "find all possible Internet routes between my computer and
www.google.com then take the quickest route")
-
produces a result: there must be an observable outcome
-
halts: solution completed eventually. (note that certain embedded
event-driven software runs continually but an algorithm which responds
to any specific event must itself reach conclusion).
Textbook reveals the breadth of algorithms and computer science (consistent
with detailed definition of CS) through 6 layers
1. algorithmic foundations of cs (mathematical and logical properties
of algorithms, efficiency)
2. hardware world (elementary structures, collecting into subsystems,
organizing subsystems)
3. virtual machine (abstract user oriented view of computer system)
4. software world (languages, creating software to carry out algorithms)
5. applications (using software to solve problems)
6. social issues (cultural impact of all the above)
Q: Layers and their relationships are pictured on textbook cover.
What does that picture tell you about the relationships between the layers?
[ C
SC 150 | Peter
Sanderson | Math Sciences server
| Math Sciences home page
| Otterbein ]
Last updated:
Peter Sanderson (PSanderson@otterbein.edu)