Treffer: Introducing abstraction and decomposition to novice programmers

Title:
Introducing abstraction and decomposition to novice programmers
Source:
ACM SIGCSE Bulletin ; volume 41, issue 3, page 196-200 ; ISSN 0097-8418
Publisher Information:
Association for Computing Machinery (ACM)
Publication Year:
2009
Document Type:
Fachzeitschrift article in journal/newspaper
Language:
English
DOI:
10.1145/1595496.1562939
Accession Number:
edsbas.9E1D5ECF
Database:
BASE

Weitere Informationen

This paper discusses a learning exercise we use in our beginning programming classes to introduce students to the concepts of abstraction and decomposition. The assignment is to write a perpetual calendar generation program: given a month and a year the program will display the correct monthly calendar. The learning goals of the exercise include how to decompose a large problem into smaller pieces and how to specify what each piece needs to do. This exercise helps students learn the process of incremental and iterative development. More than the actual solution, the value of this exercise is in the several themes of software development that are discussed during its development. We have successfully used this assignment for several years in a variety of CS1/CS2 programming environments (Pascal, C, Java and .net) and also as a Java servlet based web application exercise. Over this period, the case-study has received very favorable feedback from students as to its interestingness and pedagogical value.