use a variety of tools and processes to plan, design, and share algorithms and computational artifacts