Author_Institution :
Rice Univ., Houston, TX, USA
Abstract :
Summary form only given. Rice University\´s introductory course emphasizes design principles. It starts with the simple observation that programs are "boxes" that consume and produce data. Since nothing else is known, an engineer must systematically study the collections of consumed and produced data. The course teaches students how to describe collections of data (first in English and SCHEME, then in JAVA) and then how to construct programs systematically using these descriptions. Over the course of a semester, students get to know half a dozen different construction methods of this kind. After they are acquainted with these design methods, they understand that program development means to choose a design method carefully and to communicate the chosen method through the program design to future program readers and modifiers. The course relies on a small subset of SCHEME; at strategic points during the semester, students are also shown how the design methods apply to the development of JAVA programs. For the first six weeks, the course introduces only absolutely necessary features: function definition and application, conditional expressions, and records. At the end of this initial segment, students comfortably program with various forms of lists, trees, and graphs. The last third of the course introduces the basic elements of computer architecture and low-level languages (machine, assembly and C)
Keywords :
computer science education; educational courses; programming; English; JAVA; Rice University; SCHEME; computer architecture; consumed data; data collections description; design-based introductory computer science course; graphs; lists; low-level languages; produced data; program development; systematic program construction; trees; Assembly; Computer architecture; Computer languages; Computer science; Data engineering; Design methodology; Education; Java; Systems engineering and theory; Teamwork;