← Back to CoursesComputer Science: Intermediate

Neuroanatomy Explorer

Drag to rotate · scroll to zoom · click regions to explore

View
Loading 3D model…

Click a region
to explore it

Memory Deck

Flip each card and rate whether you knew it. Your score is saved.

Term
Definition

Deck complete — score saved.

Match the Pairs

Match each term to its definition. Finish the board to earn your score.

All matched — score saved.

Concept Constellation

Every key idea in this course, mapped as an explorable 3D constellation. Drag to rotate, scroll to zoom, click a node.

Click a node to read its definition.

Algorithms and Computational Thinking

Manual: General · Subject: Computer Science

Learn how to design, analyze, and compare algorithms using correctness, efficiency, and strategy.

Designing algorithms

What an algorithm is

An algorithm is a finite set of steps for solving a problem. Good algorithms are correct, efficient, and understandable. Computational thinking involves decomposing problems, recognizing patterns, abstracting important details, and designing step-by-step solutions.

🔑

Correctness comes first

An algorithm that is very fast but gives the wrong answer is not useful. Prove or test correctness before optimizing.

Ways to evaluate algorithms

Correctness

  • Does it always produce the right answer?
  • Can it be proven or tested?

Time efficiency

  • How does runtime grow as input grows?
  • Often described with asymptotic notation

Big-O notation

Big-O notation describes growth in resource usage. For example, an algorithm with runtime O(n)O(n) typically grows proportionally with input size, while O(n2)O(n^2) grows much faster. Big-O ignores constant factors and lower-order terms to focus on scaling behavior.

Which runtime usually scales better for large inputs?

Why is Big-O notation useful?

Algorithm design patterns

Common strategies include brute force, divide and conquer, greedy choice, dynamic programming, and backtracking. Each works well for certain problem structures, so choosing the right one is a major part of problem solving.

Which strategy typically solves a problem by combining solutions to smaller subproblems?

Name one situation where a greedy algorithm might be appropriate.