01-cs-fundamentals/computer-science-fundamentals/SKILL.md
A comprehensive guide covering the fundamentals of computer science. From hardware internals and data representation to algorithms, data structures, computation theory, programming paradigms, and software engineering basics — a systematic guide to all the CS foundations every engineer needs.
npx skillsauth add gaku52/claude-code-skills computer-science-fundamentalsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
日本語版
This Skill provides comprehensive coverage of computer science fundamentals. Frameworks and libraries change every five years, but the CS foundations covered here are timeless knowledge that has remained relevant for over 50 years — they represent the core strength of an engineer.
00-introduction → 01-hardware-basics → 02-data-representation
Understand "how a computer physically works"
03-algorithms-basics → 04-data-structures
Learn "how to solve problems efficiently"
05-computation-theory → 06-programming-paradigms → 07-software-engineering-basics → 08-advanced-topics
Understand the "why" theoretically and apply it in practice
| # | File | Description | |---|------|-------------| | 00 | overview.md | Overview of Computer Science — definition, major fields, and why you should study it | | 01 | history-of-computing.md | History of Computing — from the abacus to quantum computers | | 02 | why-learn-cs.md | Why Learn CS — concrete benefits and real-world failure cases from lack of CS knowledge | | 03 | learning-path.md | CS Learning Roadmap — customized paths by goal with resource lists |
An introductory section that provides a bird's-eye view of what computer science is and its overall landscape. While tracing the history of CS, it explains with concrete examples why CS knowledge is indispensable for engineers. It also presents optimal learning paths tailored to the reader's level and goals, providing a roadmap for the entire Skill.
CS is not merely "programming." It is a discipline that mathematically addresses computability, efficiency, and correctness, with foundations spanning from hardware to software, theory to application. This section provides that big picture and serves as a signpost for the sections that follow.
| # | File | Description | |---|------|-------------| | 00 | cpu-architecture.md | CPU Architecture — instruction cycle, pipelining, CISC vs RISC | | 01 | memory-hierarchy.md | Memory Hierarchy — cache, RAM, locality principles, virtual memory | | 02 | storage-systems.md | Storage — HDD, SSD, NVMe, file systems, RAID | | 03 | motherboard-and-bus.md | Motherboard and Bus — PCIe, USB, chipset, boot process | | 04 | gpu-and-parallel.md | GPU and Parallel Computing — CUDA, OpenCL, AI training engines | | 05 | io-systems.md | I/O Systems — interrupts, DMA, device drivers | | 06 | pcb-and-circuits.md | Electronic Circuits — transistors, logic gates, semiconductor manufacturing | | 07 | capacity-limits.md | Performance Limits and the Future — Moore's Law, quantum computing |
Software ultimately runs on hardware. Understanding how a CPU executes instructions, how memory is organized into hierarchies, and how storage persists data is the first step toward performance-conscious programming.
Understanding CPU pipelining reveals the cost of branch misprediction. Knowing the memory hierarchy enables writing cache-friendly code. Understanding GPU architecture clarifies how AI training acceleration works, and knowing I/O mechanisms reveals the significance of io_uring and DPDK. This section explains hardware from a programmer's perspective, providing knowledge directly applicable to real-world practice.
| # | File | Description | |---|------|-------------| | 00 | binary-and-number-systems.md | Binary and Number Systems — bitwise operations, base conversion | | 01 | character-encoding.md | Character Encoding — ASCII, Unicode, UTF-8, handling encoding issues | | 02 | integer-representation.md | Integer Representation — two's complement, overflow, endianness | | 03 | floating-point.md | Floating-Point Numbers — IEEE 754, rounding errors, the 0.1+0.2 problem | | 04 | compression-algorithms.md | Compression Algorithms — Huffman, LZ77, DEFLATE, JPEG/MP3 | | 05 | storage-capacity.md | Developing Intuition for Data Sizes — units, back-of-the-envelope calculations | | 06 | brain-vs-computer.md | Brain vs Computer — fundamental differences in information processing |
Inside a computer, all data is represented as 0s and 1s. Text, numbers, images, audio — they are all just bit sequences interpreted differently. This section covers everything about data representation.
Many real-world problems stem from misunderstanding data representation: why 0.1 + 0.2 does not equal 0.3, what causes character encoding errors, and integer overflow incidents (such as the Ariane 5 rocket explosion). By understanding IEEE 754 at the bit level and grasping the byte structure of UTF-8, you can understand and prevent these issues at their root.
| # | File | Description | |---|------|-------------| | 00 | what-is-algorithm.md | What Is an Algorithm — definition, representation methods, design approaches overview | | 01 | complexity-analysis.md | Complexity Analysis — Big-O, Big-Omega, Big-Theta, amortized complexity | | 02 | sorting-algorithms.md | Sorting Algorithms — from Bubble Sort to TimSort, lower bound of comparison sorts | | 03 | searching-algorithms.md | Searching Algorithms — linear, binary, hash-based, string search | | 04 | recursion-and-divide.md | Recursion and Divide-and-Conquer — call stack, Master Theorem | | 05 | greedy-algorithms.md | Greedy Algorithms — activity selection, Huffman coding, Dijkstra's algorithm | | 06 | dynamic-programming.md | Dynamic Programming — knapsack, LCS, edit distance | | 07 | graph-algorithms.md | Graph Algorithms — BFS/DFS, shortest paths, MST, topological sort |
Algorithms are the heart of CS. The difference between O(n) and O(n^2) translates to "1 second vs 11.5 days" when data reaches 1 million entries. Whether you understand this difference and can choose the right algorithm is what separates engineers by skill level.
This section covers the five major topics — sorting, searching, recursion, dynamic programming, and graph algorithms — from both theoretical (complexity proofs) and practical (working code) perspectives. Each algorithm is explained internally in terms of "why this approach is efficient," promoting deep understanding rather than mere memorization.
| # | File | Description | |---|------|-------------| | 00 | arrays-and-lists.md | Arrays and Linked Lists — dynamic arrays, skip lists | | 01 | stacks-and-queues.md | Stacks and Queues — LIFO/FIFO, deque, priority queue | | 02 | hash-tables.md | Hash Tables — collision resolution, Bloom filters, consistent hashing | | 03 | trees-basics.md | Tree Basics — binary search trees, traversal, tries | | 04 | balanced-trees.md | Balanced Trees — AVL trees, red-black trees, B-trees, B+ trees | | 05 | heaps-and-priority.md | Heaps and Priority Queues — binary heaps, Fibonacci heaps | | 06 | graphs.md | Graphs — adjacency matrix/list, Union-Find | | 07 | advanced-structures.md | Advanced Data Structures — Bloom filters, LRU cache, ropes |
"Choosing the right data structure" is one of the most important decisions in programming. Arrays, hash tables, trees, graphs — each has its strengths and weaknesses, and whether you can make the optimal choice for a given problem determines the quality of your code.
Each data structure is covered in depth, including internal implementation details, time complexity, memory usage, and cache efficiency. Additionally, standard library implementations across multiple programming languages (Python, JavaScript, Java, Rust) are compared, providing knowledge immediately applicable in practice.
| # | File | Description | |---|------|-------------| | 00 | automata-theory.md | Automata Theory — DFA/NFA, regex engines | | 01 | formal-languages.md | Formal Languages — Chomsky hierarchy, BNF, parsing | | 02 | turing-machines.md | Turing Machines — mathematical definition of computation | | 03 | computability.md | Computability — halting problem, undecidability | | 04 | complexity-classes.md | Complexity Classes — P, NP, NP-complete, the P vs NP problem | | 05 | information-theory.md | Information Theory — entropy, Shannon's theorem |
Computation theory is the deepest layer of CS, mathematically revealing "what is computable and what is not." Why regular expressions cannot match recursive patterns, why a perfect bug detector cannot be built — understanding these "impossibilities" fundamentally changes the depth of an engineer's thinking.
| # | File | Description | |---|------|-------------| | 00 | imperative.md | Imperative Programming — procedural, structured, C language | | 01 | functional.md | Functional Programming — pure functions, immutability, monads | | 02 | object-oriented.md | Object-Oriented Programming — SOLID, design patterns | | 03 | logic.md | Logic Programming — Prolog, declarative programming | | 04 | multi-paradigm.md | Multi-Paradigm — Rust, Kotlin, TypeScript |
| # | File | Description | |---|------|-------------| | 00 | development-lifecycle.md | Development Lifecycle — Waterfall, Agile, DevOps | | 01 | version-control.md | Version Control — Git internals, branching strategies | | 02 | testing-fundamentals.md | Testing Fundamentals — test pyramid, TDD, BDD | | 03 | debugging-techniques.md | Debugging Techniques — scientific debugging, profiling | | 04 | documentation-practices.md | Documentation — Docs as Code, ADR |
| # | File | Description | |---|------|-------------| | 00 | distributed-systems-intro.md | Introduction to Distributed Systems — CAP theorem, Raft, microservices | | 01 | concurrency-intro.md | Introduction to Concurrency — threads, deadlocks, async/await | | 02 | security-intro.md | Introduction to Security — cryptography, TLS, OWASP Top 10 | | 03 | ai-ml-intro.md | Introduction to AI/ML — machine learning taxonomy, neural networks, LLMs |
| Directory | Description | File Count |
|-----------|-------------|------------|
| docs/00-introduction/ | Introduction, history, learning paths | 4 |
| docs/01-hardware-basics/ | How hardware works | 8 |
| docs/02-data-representation/ | Internal data representation | 7 |
| docs/03-algorithms-basics/ | Algorithm fundamentals | 8 |
| docs/04-data-structures/ | Data structures | 8 |
| docs/05-computation-theory/ | Computation theory | 6 |
| docs/06-programming-paradigms/ | Programming paradigms | 5 |
| docs/07-software-engineering-basics/ | SE basics | 5 |
| docs/08-advanced-topics/ | Advanced topics | 4 |
| Total | | 55 |
| Skill | Relationship | |-------|--------------|
tools
Fundamentals of modern web development. Framework selection (React, Vue, Next.js), project architecture, state management, routing, build tools, and CSS strategy best practices.
development
# React Development — Complete Guide > A comprehensive guide to building modern React applications with TypeScript. Covers fundamentals through advanced patterns, Hooks mastery, TypeScript integration, performance optimization, and algorithm internals. ## Target Audience - Developers new to React who want a solid foundation - Intermediate React developers looking to deepen their understanding of Hooks and TypeScript patterns - Engineers who want to understand React's internal algorithms (Virt
development
# Node.js Development Skill > A practical guide collection for Node.js development. Covers all aspects of Node.js application development, including Express, NestJS, asynchronous patterns, and performance optimization. ## Overview This skill covers the following topics: - **Express & NestJS**: When to use a lightweight framework vs. an enterprise framework - **Asynchronous Patterns**: Promise, async/await, Event Emitter, Streams, Worker Threads, Cluster - **Performance Optimization**: Memory
development
# Backend Development — Complete Guide > A comprehensive guide to backend engineering. Covers the fundamentals of HTTP, REST API design, databases, authentication, environment configuration, and algorithm proofs — everything needed to build robust server-side systems. ## Target Audience - Developers new to backend engineering - Frontend engineers expanding toward full-stack development - Engineers looking to solidify their understanding of server-side fundamentals ## Prerequisites - Basic p