Pebellslearn by building
RoadmapsMatrixCoursesSandboxSign in

Course details

Computer Science

Learn what is really going on underneath your code: how data sits in memory, how to reason about how fast an algorithm grows, and how numbers, fractions and text become bits. Every idea comes as one short rule, a fast mental shortcut and quick drills.

Ready to learn6 sections · 21 lessons
Start learning

Course curriculum

Data Structures in Memory3 lessons

Memory is one long row of numbered bytes. Learn how an array turns an index into an address, how a linked list chains nodes with pointers, and how a hash table jumps straight to a key — and what each layout makes cheap or expensive.

  1. Arrays — One Block of Memory12 min
  2. Linked Lists — Nodes and Pointers12 min
  3. Hash Tables — Jump Straight to a Key12 min
Asymptotic Notation5 lessons

Stop timing code and start counting how its work grows. Meet the common growth rates from constant to factorial, then learn the notation — Big O, Theta, Omega and their strict little cousins — that computer scientists use to describe them.

  1. Constant and Linear Time12 min
  2. Logarithmic Time — The Power of Halving12 min
  3. Polynomial, Exponential and Factorial Growth12 min
  4. Big O, Big Theta and Big Omega12 min
  5. Little o and Little Omega — Strictly Slower, Strictly Faster12 min
Binary, Hex and Endianness4 lessons

Every number in a computer is a row of bits grouped into bytes. Learn to read binary and hexadecimal quickly, then see how a number bigger than one byte is laid out in memory — most significant byte first (big endian) or last (little endian).

  1. Binary — Place Value in Powers of Two12 min
  2. Hexadecimal — Four Bits per Digit12 min
  3. Big Endian — Most Significant Byte First12 min
  4. Little Endian — Least Significant Byte First12 min
Floating Point Math3 lessons

Computers store fractions in binary, with a fixed number of bits. Learn which numbers can be stored exactly, how a float splits into sign, exponent and fraction, and how to compare and add floats without being surprised.

  1. Why 0.1 + 0.2 Is Not 0.312 min
  2. Sign, Exponent and Fraction12 min
  3. Comparing and Adding Floats Safely12 min
Character Encodings3 lessons

Text is numbers too. Learn the ASCII table that started it all, the Unicode code points that give every character in every script a number, and UTF-8, the encoding that turns those numbers into the bytes on disk and on the web.

  1. ASCII — 128 Characters, 7 Bits12 min
  2. Unicode — A Number for Every Character12 min
  3. UTF-8 — One to Four Bytes per Character12 min
Bitwise Operators3 lessons

Treat a number as a row of switches. Learn AND, OR, XOR and NOT column by column, use shifts to multiply and divide by powers of two, and combine them into masks that set, clear, flip and test individual flags.

  1. AND, OR, XOR and NOT12 min
  2. Shifts — Multiply and Divide by Powers of Two12 min
  3. Masks and Flags12 min