whatisgithub

What is computer-science-in-javascript?

humanwhocodes/computer-science-in-javascript — explained in plain English

Analysis updated 2026-06-24

9,120JavaScriptAudience · developerComplexity · 1/5LicenseSetup · easy

In one sentence

A teaching collection of classic computer science data structures and algorithms written in plain, heavily-commented JavaScript, paired with blog post explanations designed for people learning these concepts for the first time.

Mindmap

mindmap
  root((repo))
    What it does
      Data structures
      Sorting algorithms
      Encoding examples
    Content layers
      Original 2009 code
      Updated 2019 code
      Blog post pairs
    Audience
      JS beginners
      CS learners
    Setup
      Node.js required
      Run and test
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Learn how linked lists, binary search trees, and sorting algorithms work by reading plain, step-by-step JavaScript code.

USE CASE 2

Use the implementations as study material alongside the author's blog posts that explain the reasoning behind each one.

USE CASE 3

Run the included tests to verify your understanding as you work through each data structure or algorithm.

What is it built with?

JavaScriptNode.js

How does it compare?

humanwhocodes/computer-science-in-javascriptcarbon-design-system/carbongetstream/winds
Stars9,1209,1209,121
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyeasyeasyhard
Complexity1/52/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
MIT license, use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

This repository is a companion to a series of educational blog posts written by Nicholas C. Zakas, a well-known JavaScript author. It contains JavaScript implementations of classic computer science concepts: data structures like linked lists and binary search trees, sorting algorithms like bubble sort and selection sort, and other foundational algorithms like binary search and base64 encoding. The purpose is educational. The code is deliberately written to be easy to follow rather than as concise as possible, and the README notes that heavy commenting is intentional to help people who are new to these concepts. Each implementation pairs with a blog post on the author's website that walks through the reasoning behind it. The repository has two layers of content. The original implementations go back to a 2009 blog post series and sit in folders named data-structures, algorithms, and encodings. A newer batch of implementations, started in 2019 and updated to use modern JavaScript features, lives in the src folder. The author is gradually replacing the old versions with updated ones, so the two sets coexist during that transition. Running the code requires Node.js version 8 or later. Setup is the standard pattern for a JavaScript project: clone the repository, run the install command to pull in dependencies, then run the test command to verify everything works. The project is maintained as a teaching resource tied to the blog post series, so only bug fixes are accepted. No new features are being added. The license is MIT, which allows free use for any purpose. Anyone learning JavaScript who wants to see how these fundamental data structures and algorithms work, with clear step-by-step code and accompanying written explanations, will find this useful.

Copy-paste prompts

Prompt 1
Walk me through the linked list implementation in humanwhocodes/computer-science-in-javascript and explain each method step by step.
Prompt 2
Using this JavaScript binary search tree as a guide, help me build my own BST with insert, search, and delete methods.
Prompt 3
Compare the bubble sort and selection sort implementations in this repo and explain when each one is faster.
Prompt 4
Help me understand how base64 encoding works using the JavaScript implementation in this repository.

Frequently asked questions

What is computer-science-in-javascript?

A teaching collection of classic computer science data structures and algorithms written in plain, heavily-commented JavaScript, paired with blog post explanations designed for people learning these concepts for the first time.

What language is computer-science-in-javascript written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js.

What license does computer-science-in-javascript use?

MIT license, use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is computer-science-in-javascript to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is computer-science-in-javascript for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.