Saturday 4:30 p.m.–5:15 p.m.

Teaching Data Structures with Python

Fernando Masanori Ashikaga

Audience level:
Novice
Category:
Education

Description

Data Structures is traditionally a “bogeyman” discipline in Computer Science courses and has a high degree of failure. In FATEC São José dos Campos we are adopting a hybrid approach, with C and Python languages. The failure rate decreased from 85% (2008) to 10% (2015). The talk will be extensively illustrated with code in C and Python, addressing the various concepts taught in this course.

Abstract

1. Data Structures is traditionally a “bogeyman” discipline in Computer Science courses and has a high degree of failure. The language used may have a part in this result. A large part of educational institutions traditionally uses the C or syntactically similar languages to teach Data Structures. But some recent "Results show that many aspects of traditional C- style syntax, while it has influenced a generation of programmers, exhibits problems in terms of usability for novices". Andreas Stefik and Susanna Siebert: "An Empirical Investigation into Programming Language Syntax." ACM Transactions on Computing Education, 13(4), Nov. 2013. 2. Also, in a recent interview, D. Knuth, pointed a danger of losing the time of classes in the syntax of the languages: "The most common fault in computer classes is to emphasize the rules of specific programming languages, instead of to emphasize the algorithms that are being expressed in those languages". D. Knuth interview at People of ACM, June, 2014. 3. In FATEC São José dos Campos we are adopting a hybrid approach, with C and Python languages. The failure rate decreased from 85% (2008) to 10% (2015). 4. The talk will be extensively illustrated with code in C and Python, addressing the various concepts taught in this course: recursion, linked lists, FIFOs, stacks, sorting algorithms. 5. Conclusions: C is good for optimization (details, low level). Python is good to show the essence of the algorithms (clarity, high level). If the algorithm is the same (complexity), "premature optimization is evil", also in teaching Data Structures.
  • このエントリーをはてなブックマークに追加