# What Makes a Good Workspace?

## Description/Purpose

A workspace is a collection of one or more code files provided to learners in a Codecademy exercise or project.

The files in the workspace are where learners write and save code on the Codecademy platform.

## Place in Content

Workspaces are associated with an exercise or a project and are stored in S3. They are presented to the learner via the Code Editor component and/or the Browser Component.

Each learner receives their own copy of the workspace when they start an exercise/project. This copy persists between sessions. The initial version of the workspace they receive is the default workspace files, not the initial savepoint.

Tests in checkpoints are typically run on the learners' code in their workspace.

Each workspace has two savepoints associated with it. The initial savepoint and the final savepoint. The initial savepoint represents the desired starting state of code for an exercise. It is presented to the learner when they reset the exercise. The final savepoint represents the solution code of the exercise. It replaces the learners code when they click "Get Solution".

## Quality Standards

### Content/Structure

• Web content in the workspace should be responsive to appeal to various device sizes, as long as the extra code does not impede the purpose of the workspace.
• Images and videos should be responsive when presented in the Web Browser
• Name the workspace using the default format course-title-lesson-title-exercise-title
• Workspace file names should be descriptive of their purpose, barring language restrictions

### Editorial

• Workspace aligns with the Checkpoints/Instructions, it is not referenced in the Narrative.
• Workspaces contain no typos or errors.
• Workspace code should use descriptive variable and function names.

### Pedagogy/Learner Experience

• The code presented should be optimized for learner understanding.
• Necessary but not relevant code (for example, a dataset or CSS file) should be hidden from the learner.
• Workspaces may include comments to direct learner attention to a specific area of the code.