Computer Science Learning Notes¶
This site is a structured, public learning resource for computer science, Java, Spring Boot, databases, and software systems. It connects formal ideas to executable examples without hiding assumptions or practical trade-offs.
What makes these notes different?¶
Every substantial topic aims to answer the same questions:
- What problem does this solve?
- What assumptions does it make?
- Why is it correct?
- How much time and memory does it require?
- When should it be used or avoided?
- How does the abstract idea appear in real Java code?
The examples are deliberately fictional and context-neutral. They do not refer to private projects, employers, research, clients, or production systems.
Choose a path¶
| Goal | Suggested starting point |
|---|---|
| Learn algorithm analysis | Asymptotic analysis |
| Study core data structures | Data structures |
| Compare search and sorting methods | Algorithms |
| Learn graph algorithms | Graph algorithms |
| Write safe concurrent Java | Concurrency and parallelism |
| Apply recurring development techniques | Practical engineering techniques |
| Build reliable web applications | Spring Boot |
If you are unsure where to begin, use the learning paths.
Language
English is the canonical language of the first edition. A Brazilian Portuguese edition is planned as a faithful translation layer.