Next: Modularity and stepwise refinement
Up: A Pre-Programming Introduction to
Previous: Introduction
The approach we have taken recommends to shift from ``programming" (or
rather coding) to ``algorithmics", focusing on the algorithmic thinking and
the algorithmic approach to problem solving. Instead of starting to code first and running the
program on a computer, waiting for immediate feedback from the machine, students will
learn how to gradually design algorithms using a visual representation tool.
The goals of the course are :
- To provide an introduction to the key concepts of computing,
emphasizing the concept of the algorithmic problem and its solution -- the
algorithm;
- To teach some algorithms and the data they handle;
- To teach how to analyze algorithms;
- To introduce (on a small scale) the notions of complexity and correctness of algorithms;
Last but not least,
- To provide pre-programming experience in gradual designing of
algorithms and implementing them.
Developing the skills needed to
design algorithms and analyze them, is by no means a simple task. The
construction of algorithms is a complex activity that demands many skills
and specific details of knowledge, some of which are usually present in the
student's repertoire while others must be learned.
In an introductory course special efforts have to be devoted to designing
algorithms, emphasizing modularity, top-down and stepwise refinement. Many
things have been said in favor of these notions, and we will not refer to all
the papers, books and conference panels that have been devoted to these
issues. Let us only mention the very famous paper written by N.Wirth [WIR], and very
briefly summarize the benefits of modularity and the stepwise refinement
technique.
Subsections
Next: Modularity and stepwise refinement
Up: A Pre-Programming Introduction to
Previous: Introduction
2004-01-06