Skip to content

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.