CyC2018/CS-Notes
CS Notes
This repository serves as a comprehensive educational resource covering core computer science concepts, software engineering principles, and system architecture. It provides detailed explanations of fundamental data structures and algorithms, alongside in-depth analysis of database management systems, including transaction properties, storage engines, and concurrency control mechanisms.
The collection also offers extensive documentation on the Java programming language, ranging from collection internals and memory management to concurrency primitives and object-oriented design patterns. Furthermore, it covers essential networking protocols, operating system fundamentals such as process management and file systems, and architectural patterns for distributed systems. Development tools, including version control and project configuration utilities, are also documented to support standard software engineering workflows.
Features
- Computer Science Curricula - A comprehensive collection of educational materials covering computer science fundamentals, software engineering principles, system architecture, and essential development tools.
- Hash Maps - A hash-based collection using an array of buckets and linked lists to resolve collisions.
- Disjoint Set Unions - A data structure for tracking elements partitioned into non-overlapping subsets, supporting union and find operations.
- ACID Properties - A set of properties for database transactions: Atomicity (all-or-nothing execution), Consistency (maintaining valid states), Isolation (independent execution), and Durability.
- Distributed Locking - A distributed locking algorithm designed for systems with multiple independent nodes to ensure high availability.
- Associations - A structural relationship between two classes that exists independently of the execution state.
- Version Control - A reference guide for common version control operations.
- Process Management - A system call that waits for a specific child process to change state, offering more control than the standard wait call.
- Serialization Mechanisms - The process of converting an object's state into a byte stream for storage or transmission.