LearnViz CompSci
Home / FAQ

Frequently asked questions

Answers to common questions about studying computer science, from choosing a first language to understanding Big-O notation.

Where should a complete beginner start?
Begin with Programming Fundamentals (variables, control flow, functions), then Data Structures and Algorithms. Pair each topic with the Visual Lab so you can watch the idea run.
Do I need strong math to study computer science?
You need comfort with algebra and logic to begin. Discrete math, probability and linear algebra become important for algorithms, machine learning and graphics — see the Math for Computing area.
Which programming language should I learn first?
Python is a gentle first language; JavaScript gives instant visual results in the browser; C or Rust teaches memory. The concepts transfer — pick one and build projects.
What is Big-O notation and why does it matter?
Big-O describes how an algorithm's cost grows as input grows. It lets you compare solutions independent of hardware. Try the “Growth Rates” chart in the Visual Lab.
What is the difference between a process and a thread?
A process owns its own memory space and resources; threads inside a process share that memory, which makes them lighter but needs synchronization.
Array or linked list — which is better?
Arrays give O(1) random access and cache-friendly layout; linked lists give O(1) insertion/removal at a known node. In practice arrays win more often than textbooks suggest.
What is recursion and when should I use it?
A function that solves a problem by calling itself on smaller inputs, ending at a base case. It suits trees, divide-and-conquer and backtracking. Use memoization when subproblems repeat.
What is the difference between TCP and UDP?
TCP is connection-oriented and reliable (ordering, retransmission, congestion control). UDP is connectionless and fast with no guarantees — used by DNS, streaming and games.
SQL vs NoSQL: how do I choose?
Pick relational/SQL for structured data, joins and strong transactions. Pick NoSQL when you need flexible schemas, huge horizontal scale or specialized access patterns (documents, graphs, key-value).
What does P vs NP mean?
P is the set of problems solvable quickly; NP is the set whose answers can be checked quickly. Whether every quickly-checkable problem is also quickly solvable is the biggest open question in the field.
What is the difference between compilers and interpreters?
A compiler translates the whole program to another form before running; an interpreter executes it step by step. Modern runtimes mix both via bytecode and JIT compilation.
How are the quizzes generated and scored?
Each question is built from a topic's concept and definition, with distractors from the same area and level. Practice mode gives instant feedback; Tests are timed and show a review at the end.
Is my progress saved?
Yes — in your browser's local storage on this device. Nothing is uploaded. Clearing site data (or the Reset button on the Progress page) erases it.
What do Beginner, Intermediate and Advanced mean here?
Within each area, the first third of topics are foundations, the middle third build real-world skill, and the last third are advanced or research-flavored.
How do I search?
Press “/” (or Ctrl/⌘+K) anywhere, type a term and use ↑ ↓ Enter. The search page lets you filter by level and area.
What is dynamic programming?
Breaking a problem into overlapping subproblems and storing each answer once. Watch the table fill in the “DP Table” visualizer.
How does hashing give O(1) lookups?
A hash function maps a key to a bucket index, so lookup jumps straight to the slot. Collisions are handled by chaining or probing, keeping the average cost constant.
What is the difference between concurrency and parallelism?
Concurrency is structuring a program to make progress on several tasks (possibly interleaved on one core); parallelism is literally running them at the same time on multiple cores.
How should I study effectively?
Alternate reading, visualizing and recalling: read a topic, watch it in the lab, take a short quiz, and revisit weak spots from the Progress page. Build small projects to cement ideas.
Can I use this offline?
Once loaded, the app runs fully client-side with no backend, so you can host the built `dist` folder on any static server.
How long does it take to finish the whole course?
There is no fixed finish line: the course has over a thousand topics. Most learners work through one area over several weeks in short sessions, and return to topics when a later one depends on them.
Which areas should I study to become a software engineer?
Start with Programming Fundamentals, Data Structures, Algorithms, Databases and Software Engineering. Add Web Development, Operating Systems and Computer Networks as your interests grow.
Which topics should I learn before machine learning?
Begin with Math for Computing for probability and linear algebra, then Data Structures and Algorithms. After that, AI & Machine Learning covers training, overfitting and evaluation.
How do I debug code effectively?
Reproduce the bug first, form one hypothesis, change one thing and observe the result. Prefer a debugger or logging to guessing. Some bugs appear only sometimes, and the Concurrency area explains why.
Are the quizzes and tests for practice or for grades?
They are for practice and self-assessment. Practice mode gives instant feedback, and tests are timed. Your results stay on this device in the Progress page.
Can I reuse the content in my class or training?
The content is © LearnViz CompSci and all rights are reserved. You are welcome to link to topic pages. To copy or republish material, ask the site owner for permission first.
Are the topics up to date?
Concepts such as algorithms, data structures and networking change slowly. Web, AI and cloud tools change quickly, so check current official documentation for specific versions and APIs.
How do I keep track of what I have learned?
Use the Progress page to see completed topics and quiz results. Revisit topics you missed in the quiz, since repeated recall is more effective than reading once.

Filter these questions in the app