Skip to content

This is a showcase for easily comprehensible implementations of standard algorithms and data structures taught at introductory CS courses.

Notifications You must be signed in to change notification settings

socramob/algorithms-and-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Algorithms and Data Structures

This is a collection of implementations of standard algorithms and data structures taught at introductory CS courses.

The following principles guided our implementation:

  • Maximize comprehensibility.
  • Name as many concepts explicitly as possible.
  • Do not abbreviate variable or method names.
  • Do not use comments to explain what the code does or how. This is better done in source code by choosing intent-revealing names and appropriate structures. Use comments to explain why a specific implementation was used.
  • Provide an extensive set of regression tests, preferably by employing Test-Driven Development.
  • Favor objects over primitive data types, e.g. use Integer instead of int and use List instead of bare arrays.
  • Minimize duplication.
  • Program defensively; the environment may try to corrupt our code. Prevent problems by checking parameters and giving meaningful exception descriptions.
  • We try to provide a self-contained code base. Because this is intended for programming novices, we strive for minimizing dependencies to any libraries, be it the language SDK or especially third-party libraries.
  • Maximizing comprehensibility requires trading performance and/or memory requirements sometimes.

Resources

About

This is a showcase for easily comprehensible implementations of standard algorithms and data structures taught at introductory CS courses.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published