| Design Issues in CS Education (2007) | |||||||||||||||
Abstract | |||||||||||||||
| It is generally accepted that at the heart of computer science education there are certain fundamentals: • mathematics and theoretical foundations • the design and analysis of algorithms • a knowledge of data structures • a familiarity with important software systems To this list of educational fundamentals in computer science, we wish to add a fifth item: • design issues and skills Under the broad heading of design issues and skills, we include: the design of functions and classes; the design of large systems with many software components; issues of the concrete versus the abstract; encapsulation and communication; software interfaces and protocols; and user interface design. We believe that these ideas are of vital importance to computer science and to its applications in the real world. Unfortunately, we also believe that these ideas are not sufficiently represented in the current computer science curriculum and that CS educators must increase both the extent and quality of their coverage of design issues. In this article, we will discuss some issues in teaching design and will focus on areas where problems exist. The Role of Exploration in Design Exploration is fundamental to any creative process. Since our understanding of design is less advanced than our understanding of algorithms, there is need for creative effort even in the most basic aspects of | |||||||||||||||
Publication details | |||||||||||||||
| |||||||||||||||