# How This Course Works

How Bash in Depth works on ask-codey.com, from reading a lesson and playing its Terminal Quest goals to running an exercise's checks with bats, mastering a skill and passing a module assessment.

Novice · Unix · Linux · Updated November 10, 2026

## After this lesson you can

- Describe how Bash in Depth fits together: lessons, Check yourself, Terminal Quest, exercises, chapter checks and module assessments

## Key takeaways

- Bash in Depth has eight modules. Each one ends with a tool you build, and the course ends with an app you design.
- Skills are short "you can do this" statements. They are what the questions test and what your progress counts.
- Every lesson works in a practice folder, ~/terminal-practice, so nothing you try touches your real files.
- An exercise is done when every check passes. You run the checks yourself with bats check.bats.
- Chapter checks are practice you can take as often as you like. A module assessment passes at 80%, with three tries a day.

This course is self-study: you go at your own pace, and the course itself tells you how you're doing. A few minutes here now saves guessing later, because every chapter works the same way.

## The shape of the course

| Part | What it is |
|---|---|
| **Module** | A big stage of the course. There are eight, from Meet the Terminal to The Developer's Terminal. |
| **Chapter** | One subject, such as *Finding Your Way* or *Loops*. |
| **Topic** | A group of lessons inside a chapter. |
| **Lesson** | One idea, usually one or two commands, with examples you run in your own terminal. |
| **Project** | The end of each module: a tool of your own, built with everything the module taught. The course ends with an app you design. |

Each lesson has a **level** from 1 to 4: meeting an idea is level 1, working with it level 2, building with it level 3, and the advanced end level 4. A level says how deep a lesson goes into its subject, not how far into the course it is.

## Inside a lesson

Commands in a lesson are shown with what they printed when we ran them, so you can compare your screen with ours. Yours may differ in small ways: your user name, today's date, your computer's name.

The terminal can delete files for good, so every lesson works in a **practice folder**, `~/terminal-practice` (the `terminal-practice` folder in your home folder). Your setup lesson makes it, and lessons that need files give you the lines that make them. When a command deletes or overwrites something, the lesson says so before you run it.

- **Skills** are listed at the top of most lessons: short "you can do this" statements, such as *Print the folder you are in with pwd*. They're what the questions test, and what your progress counts.
- **Check yourself**, near the end, asks one to three short questions, then shows the answer and why. A wrong answer is useful news, not a failure: read the explanation, look back, and carry on.
- **Try it in the terminal** plays part of *Terminal Quest*, a text adventure where folders are rooms and files are things to read, right on the page, with nothing to install.
- **A cheat sheet** comes with most lessons: one page with the commands, an example of each and the mistake people make with it. It's the page to look up next week.

## Exercises, checks and assessments

Lessons whose titles start with **Exercise:** give you a small folder to work in: files to explore, answers to write or a script to finish, and a **check**, a file named `check.bats` that looks at your work. **bats**, which your setup lesson installs, runs it. From the exercise folder:

```bash
bats check.bats
```

Each check prints a ✓ when that part is right, or a message that says what to look at. When every check passes, you're done.

- A **chapter check** is a short quiz on the chapter's skills. Take it as often as you like: it's practice, and it tells you what to review.
- A **module assessment** ends each module. **80% passes**. You get three tries a day, then a 24-hour rest before the next three. Every attempt draws different questions, so a retake is a fair new try.

## Covered, Mastered, and who gets what

When you're signed in, the course keeps two separate records of your progress:

- **Covered:** the lessons you've finished.
- **Mastered:** the skills and key terms you've shown you know. A skill is mastered when you answer three different questions about it cleanly, meaning right the first time and without a hint, and those questions come at it from at least two angles: one might ask which command takes you up a folder, another might show two commands and ask where you end up. A later miss drops it back, so mastery stays honest.

Reading every lesson doesn't mean you know it, and the course never pretends it does. That's why the two are kept apart.

**Everyone**, signed in or not, can read every lesson, play its Terminal Quest goals and answer its Check yourself questions. **Signed in**, your answers count toward your skills, and you can tick lessons as done. **With Premium, or if you own this course,** you also get course progress on every page, the chapter checks, the module assessments, and the **Certificate of Completion**: every lesson covered and every module assessment passed.

## A good rhythm

1. Read a lesson, and run its commands in your own terminal, in your practice folder.
2. Play its Terminal Quest goals, when it has them, and answer its Check yourself questions.
3. Do the exercise at the end of each chapter, and run `bats check.bats` until every check passes.
4. Take the chapter check, and review the skills it points to.
5. When a module's skills are mastered, take its assessment, then build the module's project.

**Try it.** Look at this chapter's list of lessons. Find the exercise lesson at the end, and the chapter check after it: that's the rhythm every chapter follows.

## Check yourself

1 question to try on the lesson page.

## So what

The course is built so you always know where you stand: what you've read, what you've mastered, and what to practice next.

Source: https://www.ask-codey.com/lessons/bash-how-this-course-works
