Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
The pragmatic programmer: from journeyman to master
The pragmatic programmer: from journeyman to master
Data Structures and Algorithms
Data Structures and Algorithms
Test Driven Development: By Example
Test Driven Development: By Example
Enhancing apprentice-based learning of Java
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Extreme Programming Explained: Embrace Change (2nd Edition)
Extreme Programming Explained: Embrace Change (2nd Edition)
Helping novice programming students succeed
Journal of Computing Sciences in Colleges
Instructional design of a programming course: a learning theoretic approach
Proceedings of the third international workshop on Computing education research
Effective Java (2nd Edition) (The Java Series)
Effective Java (2nd Edition) (The Java Series)
Clean Code: A Handbook of Agile Software Craftsmanship
Clean Code: A Handbook of Agile Software Craftsmanship
Test-driven data structures: revitalizing CS2
Proceedings of the 40th ACM technical symposium on Computer science education
Introduction to Algorithms, Third Edition
Introduction to Algorithms, Third Edition
Extreme apprenticeship method in teaching programming for beginners
Proceedings of the 42nd ACM technical symposium on Computer science education
Algorithms
Three years of design-based research to reform a software engineering curriculum
Proceedings of the 13th annual conference on Information technology education
On the efficacy of board game strategy development as a first-year CS project
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
Data Structures (CS2) courses and course books do not usually put much emphasis in the process of how a data structure is engineered or invented. Instead, algorithms are readily given, and the main focus is in the mathematical complexity analysis of the algorithms. We present an alternative approach on presenting data structures using worked examples, i.e., by explicitly displaying the process that leads to the invention and creation of a data stucture and its algorithms. Our approach is heavily backed up by some of the best programming practices advocated by the Agile and Software Craftsmanship communities. It brings the often mathematically oriented CS2 course closer to modern software engineering and practical problem solving, without a need for compromise in proofs and analysis.