Home › Practice Tools › DataLab Notebook
๐Ÿ”ฌ
Data Science

DataLab Notebook

A cell-by-cell JavaScript notebook for practicing data-analysis thinking, right in the browser. Save and share your notebook.
Ideal for: Beginners practicing step-by-step data-analysis thinking before moving to a full notebook environment.

What you'll practice

Start practicing

DataLab Notebook is part of Practice Tools. Sign in or create an account, then subscribe for โ‚ฆ4,000/month to unlock it.

๐Ÿ“‹ Lab Instructions

Step-by-step exercises for DataLab Notebook - read them here, then practice live in the tool above.

Beginner Lab Instructions

Last updated: August 9, 2026
Lab 1 (Beginner) โ€” DataLab Notebook
๐Ÿ““ DataLab Notebook Beginner ยท Lab 1

Getting Started with the DataLab Notebook

Practice breaking a data-analysis problem into discrete, cell-by-cell steps โ€” question, look, clean, compute โ€” keeping each cell doing exactly one thing.

~20โ€“30 minestimated time
Noneprerequisite
4+ cellsquestion โ†’ look โ†’ clean โ†’ compute

Setup Before you open the notebook

The notebook runs plain JavaScript in each cell โ€” no real file import, no pandas-style library. Your "dataset" is just a JS array or object you write directly into a cell.

1Pick a tiny dataset and a real question

Something small enough to hold in your head: a list of numbers, a handful of names with scores, a short list of prices. Then pick one genuine question about it โ€” not "explore the data," but something specific, e.g. "what's the average?" or "which item is the outlier?"

Build One cell, one job

Click Open to launch the notebook. You'll see a starter cell already there โ€” read it, then replace it with your own.

2Start with a cell that states your question

Not code โ€” just a comment. This forces you to commit to a specific question before touching any data.

// What's the average score, and who's above it?
question cell
3Add a cell to look at or summarise the data

Just look โ€” no filtering, no computing yet. Click + Add Cell, write your dataset as a plain array or object, and console.log it to see it printed. Click โ–ถ Run to see the output appear below the cell.

const scores = [72, 88, 91, 64, 79, 95, 58]; console.log(scores);
4Add a cell to clean or filter it

Even simple data usually needs one cleaning step โ€” removing an invalid value, filtering out a category you don't care about, sorting it. Pick one real cleaning step relevant to your data.

const valid = scores.filter(s => s > 0); console.log("Valid scores:", valid);
5Add a cell to compute the actual answer

This is the cell that answers your Step 2 question directly โ€” not a step toward the answer, the answer itself.

const avg = valid.reduce((a,b) => a+b) / valid.length; console.log("Average:", avg); console.log("Above average:", valid.filter(s => s > avg));
6Keep each cell doing ONE thing

If you notice a cell both filtering and computing, split it into two. This is the single habit real notebook work depends on โ€” one idea per cell makes a notebook readable and debuggable; a cell doing three things at once is where notebooks quietly turn into a mess.

7Save your notebook

Click ๐Ÿ’พ Save This Notebook as a Project and give it a specific title (e.g. "Practice โ€” Score Average"), not something generic.

Reflect Write 2โ€“3 sentences

Reflection prompts

  • Did writing the question cell first change how you approached the data, compared to just diving in?
  • Was there a moment you caught a cell trying to do two things at once? What did you split it into?

โœ“ Success checklist

  • Notebook has at least 4 cells: question, look, clean, compute
  • Question cell states a specific question, not a vague exploration goal
  • Every code cell was actually run (โ–ถ) and shows real output, not just written
  • No single cell does more than one job
  • Notebook saved with a specific, descriptive title

Tip: write a one-line comment above each cell explaining what it's for โ€” future-you (or a teammate) will thank you.
DataLab Notebook ยท Practice Sandbox โ€” Lab 1 of 3

Intermediate Lab Instructions

Last updated: August 9, 2026
Lab 2 (Intermediate) โ€” DataLab Notebook
๐Ÿ““ DataLab Notebook Intermediate ยท Lab 2

A Multi-Cell EDA Pass

Building on Lab 1: you broke one question into a few cells. Now run a fuller exploratory data analysis pass โ€” including the step beginners skip: noticing what's odd in the data before you touch it.

~35โ€“45 minestimated time
Lab 1prerequisite
7+ cellsquestion โ†’ look โ†’ notice โ†’ clean โ†’ compute ร— N โ†’ interpret

Setup Before you open the notebook

Start a new notebook โ€” this lab is about the shape of a fuller EDA pass, not extending Lab 1's exact dataset.

1Pick a small dataset with something genuinely off in it

Deliberately write a dataset with at least one issue baked in โ€” a missing/invalid value, an outlier, an unexpected category. Real data always has something like this; practicing on data you know is messy, on purpose, builds the habit faster than hoping you stumble onto messy real data by accident.

Explore Run the fuller EDA pass

2Start with a cell stating your question

Same as Lab 1 โ€” commit to a specific question about this dataset before doing anything else.

// What's the average score, and is anything skewing it?
3Add a cell that just looks at the raw data

No filtering, no computing yet โ€” just print it and look.

const scores = [72, 88, 91, -1, 79, 95, 58, 240]; console.log(scores);
4Add a cell noting anything odd, before doing any analysis

This is the step beginners skip and experienced analysts never do. Write it as a comment or a console.log of your observation โ€” don't fix anything yet, just name what you see.

// Noticed: -1 looks like an invalid/missing-value placeholder. // Noticed: 240 is way outside the 0-100 range โ€” bad entry or wrong scale?
notice-first cell
5Add a cell that filters or cleans based on what you noticed

Now act on your Step 4 observations, deliberately and visibly.

const clean = scores.filter(s => s >= 0 && s <= 100); console.log("Removed", scores.length - clean.length, "invalid entries:", clean);
6Add a cell computing 2โ€“3 different summary numbers

Not just one โ€” build a fuller picture. Average alone hides a lot; pair it with something like a min/max spread or a count above/below a threshold.

const avg = clean.reduce((a,b) => a+b) / clean.length; const max = Math.max(...clean); const min = Math.min(...clean); console.log("Average:", avg, "| Range:", min, "-", max); console.log("Above average:", clean.filter(s => s > avg).length, "of", clean.length);
7Add a cell stating, in plain English, what those numbers mean

Not more code โ€” a comment or a console.log written as a sentence, answering your original Step 2 question directly, in language a non-technical reader would understand.

// After removing 2 bad entries, the average score is ~80.5, and just over // half the class scored above that average โ€” a fairly tight, high-performing group.
8Save your notebook

Give it a title reflecting the fuller pass, e.g. "EDA Pass โ€” Class Scores."

Reflect Write 3โ€“4 sentences

Reflection prompts

  • What did you notice in the raw-look cell that you might have missed if you'd jumped straight to computing?
  • How much did your summary numbers change after cleaning, compared to what they would've been on the raw data?
  • Was your plain-English interpretation cell harder or easier to write than the code cells? What does that tell you?

โœ“ Success checklist

  • Notebook has a distinct "notice anything odd" cell, run before any cleaning
  • Cleaning cell visibly acts on what was noticed (not silently pre-cleaned data)
  • At least 2โ€“3 different summary numbers computed, not just one
  • A plain-English interpretation cell answers the original question directly
  • Notebook saved with a title reflecting the fuller EDA pass

Tip: the "notice anything odd first" cell is the step beginners skip and experienced analysts never do โ€” messy data quietly wrecks clean-looking analysis if you don't look at it first.
DataLab Notebook ยท Practice Sandbox โ€” Lab 2 of 3

Expert Level Lab Instructions

Last updated: August 9, 2026
Lab 3 (Expert) โ€” DataLab Notebook
๐Ÿ““ DataLab Notebook Expert ยท Lab 3

Present Findings, Not Just Cells

Building on Labs 1โ€“2: turn a working analysis into something you could hand to someone who wasn't in the room while you built it โ€” narrative, story order, comments, and an honestly-named limitation.

~45โ€“60 minestimated time
Lab 2prerequisite
Reorganisedquestion โ†’ look โ†’ clean โ†’ compute โ†’ conclude

Setup Before you begin

This lab is an editing and communication pass as much as an analysis pass โ€” you're turning working code into a readable story.

1Pick your best Lab 2 analysis, or build a new small one

Either works โ€” what matters is that you end this lab with one complete, presentable notebook, not several partial ones.

Build Turn cells into a presentation

2Add a first cell that's a short narrative intro

What question you're answering and why it matters โ€” written as if for someone who has zero context on why this analysis exists.

// This notebook checks whether this term's quiz scores are meaningfully higher // than last term's average of 75, to see if the new study guide helped.
narrative intro
3Reorganise cells into a logical story order

Even if that's not the order you actually wrote them in. Real analysis is messy and non-linear while you're doing it โ€” presenting it should not be.

questionโ†’ lookโ†’ cleanโ†’ computeโ†’ conclude

To reorder, delete a cell and re-add it in its correct position โ€” the tool has no drag-to-reorder, so this is a deliberate rebuild, not a shuffle.

4Add a comment above EVERY cell

Explaining what it does and why, as if handing this notebook to a teammate who will run it without you in the room to answer questions.

// Filtering out invalid entries (negative or >100) flagged in the raw-look step above. const clean = scores.filter(s => s >= 0 && s <= 100);
5Add a final cell: conclusion AND one honest limitation

State your conclusion plainly, then name a real weakness in your own analysis โ€” small sample size, one outlier skewing things, a filtering choice someone could reasonably disagree with. Don't invent a token limitation; name the one that would actually worry you if someone pushed back on this analysis.

// Conclusion: this term's average (80.5) is notably above last term's (75). // Limitation: only 8 students in this sample โ€” not enough to generalise confidently, // and one score of 95 is pulling the average up more than a "typical" student's result.
honest limitation
6Read the whole notebook top to bottom as a stranger would

Fix anything confusing. If you have to stop and think "wait, why did I do this step," that's a sign the comment above it isn't doing its job โ€” rewrite it.

7Save your finished notebook

As your final project for this tool โ€” give it a title that reflects the finished, presentable state, e.g. "Quiz Scores โ€” Term Comparison (Final)."

Reflect Write 3โ€“5 sentences

Reflection prompts

  • What changed most between your working order (Lab 2 style) and your final story order?
  • Was the limitation you named the same one you'd have named privately to yourself, or did writing it down for a reader make you more honest about it?
  • Reading top to bottom as a stranger โ€” what's one thing you fixed that you wouldn't have caught otherwise?

โœ“ Success checklist

  • Narrative intro cell states the question and why it matters, in plain language
  • Cells reorganised into question โ†’ look โ†’ clean โ†’ compute โ†’ conclude order
  • Every single cell has an explanatory comment above it
  • Final cell states a conclusion AND one specific, honest limitation
  • Notebook read top-to-bottom and edited for a first-time reader
  • Notebook saved as final project with a presentable title

Tip: a notebook that states its own limitations honestly is more trustworthy, not less โ€” practice naming the weakest part of your own analysis before someone else has to ask about it.