180 likes | 196 Views
Explore the design and application of data and file structures. Learn about various data structures including arrays, records, and trees. Discover how abstract data types can enhance coding skills and promote creativity.
E N D
Teaching Data Structures Richard M. Stillman, M.D. Nova Southeastern University & Alan R. Peslak, Ph.D. Penn State University
2002 Model Curriculum • 2002.5: Programming, Data, File and Object Structures • Catalog:Abstract data type constructionand use • Scope:Design and application of data and file structures • Topics:Data structures and representation • Discussion:Specific data structures including arrays, records, stacks, queues, and trees
What to Teach? • How to apply abstract data types versus • How to build abstract data types
Apply • "Software Engineering is moving away from emphasis on the creation of code, toward emphasis on components and code reuse. The teaching of data structures needs to adjust to that change." -- Collins et al, 2003
Build • “Data structures are a vehicle for developing thinking skills that are important and transferable beyond their immediate application to data structures… [and build an] awareness that the obvious or straightforward way to do things is often markedly inferior to clever ways that have been discovered…" -- Lister et al, 2004
Our Didactic Methods • Assignments • Course Project • Build any five ADTs • Apply these five ADTs i.e., Build & Apply
Basic ADTs: Rehashed design of those provided by instructor or text Applications: Rudimentary use of of the ADTs Creative ADTs: Different in some way from the usual, e.g., dropped assumptions, different algorithm Applications: Interesting, complex, or novel Classification of Project Quality
What’s a Creative Project? ImageRenderer, which uses a Priority Queue
What’s a Creative Project? ProteinTaxonomy, which uses a BST
Results • 38 students • 16 students did ‘creative’ projects • 19 students had professional experience beyond entry-level employment
Summary • Our data structures students self-select ADTs to implement for a final project • Project grades are based upon creativity and complexity • We’ve compared final project choice with: • Students’ professional background • Independent measures of students’ performance
Summary (continued) • Those students with more professional experience, tended to implement the more creative ADTs • Those students who implemented the more complex ADTs, tended to do better in the other aspects of the course
Conclusions • A student’s decision to implement a more creative final project led to: • A better grade on the project (obviously), • A better grade in the other aspects of the course (interestingly), and • A better understanding of both the implementation and application of abstract data structures (hopefully).