Computer Science practice
152 computer science topics across 15 areas. Choose a topic to practise with instant feedback. Generated topics create new questions each time; quiz, flashcard and diagram topics use a fixed set. After you answer, an explanation is shown.
AI/ML fundamentals
Algorithms
- Big-O notation & complexity analysisgenerated practice · easy
- Linear searchgenerated practice · easy
- Binary searchgenerated practice · easy
- Bubble sortgenerated practice · easy
- Selection sortgenerated practice · easy
- Insertion sortgenerated practice · easy
- Merge sortgenerated practice · easy
- Quick sortgenerated practice · easy
- Graph traversal (BFS)generated practice · easy
- Graph traversal (DFS)generated practice · easy
- Dijkstra's algorithm (shortest path)generated practice · easy
- Dynamic programming basicsquiz · easy
- Greedy algorithms basicsquiz · easy
- Recursion vs. iteration tradeoffsquiz · easy
Computer architecture & systems
Cybersecurity
Databases
Data structures
- Arrays & listsquiz · easy
- Linked listsdiagram labelling · easy
- Stacksquiz · easy
- Queuesquiz · easy
- Hash tables/mapsquiz · easy
- Trees (binary trees)diagram labelling · easy
- Binary search treesgenerated practice · easy
- Heaps & priority queuesquiz · easy
- Graphs (representation)diagram labelling · easy
- Setsquiz · easy
Foundations
- What is a computer? (hardware overview)flashcards · easy
- Binary, decimal, hex number systems (CS framing)generated practice · easy
- How data is represented (bits, bytes, ASCII/Unicode)quiz · easy
- Boolean logic & truth tables (CS framing)quiz · easy
- Logic gatesdiagram labelling · easy
- The history of computingflashcards · easy
General
Java
- Syntax basics (classes, main method)generated practice · easy
- Variables & primitive typesgenerated practice · easy
- Operatorsgenerated practice · easy
- Strings & the String classgenerated practice · easy
- Arraysgenerated practice · easy
- Conditionalsgenerated practice · easy
- Loops (for/while/do-while)generated practice · easy
- Methods & overloadinggenerated practice · easy
- Classes & objects (OOP basics)generated practice · easy
- Constructorsgenerated practice · easy
- Inheritancegenerated practice · easy
- Interfaces & abstract classesquiz · easy
- Polymorphismgenerated practice · easy
- Encapsulation & access modifiersquiz · easy
- Exception handling (try/catch)generated practice · easy
- Collections framework (ArrayList, HashMap)generated practice · easy
- Generics (concept)quiz · easy
- Static vs. instance membersgenerated practice · easy
- Packages & imports (concept)quiz · easy
- File I/Ogenerated practice · easy
- Standard library highlightsflashcards · easy
- Intro to Spring framework (concept)quiz · easy
- Memory management & garbage collection (concept)quiz · easy
- Multithreading basics (concept)quiz · easy
- Code tracing: "what does this print?"generated practice · easy
JavaScript
- Syntax basicsgenerated practice · easy
- Variables (var/let/const)generated practice · easy
- Data typesgenerated practice · easy
- Operators & type coerciongenerated practice · easy
- Strings & template literalsgenerated practice · easy
- Arrays & array methodsgenerated practice · easy
- Objectsgenerated practice · easy
- Conditionalsgenerated practice · easy
- Loopsgenerated practice · easy
- Functions & arrow functionsgenerated practice · easy
- Scope & closuresquiz · easy
- The "this" keyword (concept)quiz · easy
- Promises & async/await (concept)quiz · easy
- Error handling (try/catch)generated practice · easy
- DOM manipulation basicsgenerated practice · easy
- Event handling basicsquiz · easy
- Classes & prototypesgenerated practice · easy
- JSON basicsgenerated practice · easy
- Modules (import/export, concept)quiz · easy
- ES6+ features overviewflashcards · easy
- Intro to Node.js (concept)quiz · easy
- Intro to React basics (concept)quiz · easy
- Fetch API & working with APIs (concept)quiz · easy
- Common quirks & gotchasquiz · easy
- Code tracing: "what does this log?"generated practice · easy
Networking
Programming fundamentals
- Variables & data types (concept)quiz · easy
- Operators & expressionsgenerated practice · easy
- Control flow: conditionalsquiz · easy
- Control flow: loopsquiz · easy
- Functions & parameters (concept)quiz · easy
- Scope & variable lifetimequiz · easy
- Recursion (concept & tracing)generated practice · easy
- Pseudocode & flowchartsdiagram labelling · easy
- Debugging strategiesquiz · easy
Python
- Syntax basics (indentation, print)generated practice · easy
- Variables & data typesgenerated practice · easy
- Operatorsgenerated practice · easy
- Strings & string methodsgenerated practice · easy
- Listsgenerated practice · easy
- Tuplesgenerated practice · easy
- Dictionariesgenerated practice · easy
- Setsgenerated practice · easy
- Conditionalsgenerated practice · easy
- Loops (for/while)generated practice · easy
- List comprehensionsgenerated practice · easy
- Functions & default argumentsgenerated practice · easy
- *args and kwargsgenerated practice · easy
- Lambda functionsgenerated practice · easy
- Error handling (try/except)generated practice · easy
- File I/Ogenerated practice · easy
- Classes & objects (OOP basics)generated practice · easy
- Inheritance & polymorphismgenerated practice · easy
- Modules & packages (concept)quiz · easy
- Virtual environments & pip (concept)quiz · easy
- Standard library highlightsflashcards · easy
- Intro to NumPy/pandas (concept)quiz · easy
- Intro to Flask/web frameworks (concept)quiz · easy
- Decorators (concept)quiz · easy
- Code tracing: "what does this print?"generated practice · easy