Browse articles about Computer Science.
Understand how the stack and heap work, how garbage collection operates, and how to identify and resolve stack overflows and memory leaks.
Learn caching strategies for application performance, including how CDN caches static content and Redis caches in-memory data, how they differ, and common interview questions.
Learn how database indexes improve SELECT performance, why indexing everything is impractical, and how faster reads trade off against slower writes.
Prepare for common REST API interview questions by learning REST principles, HTTP methods, idempotency, status codes, and RESTful design.
Learn about actors, use cases, and scenarios, and write a use case specification with basic, alternative, and exception flows.
Explore techniques for requirements analysis, a key stage in software development. Learn the strengths and use cases of formal and informal analysis, interviews, surveys, workshops, observation, and the Requirements Traceability Matrix (RTM).
Understand why a software requirements specification matters, what it contains, and how to write functional and nonfunctional requirements with concrete examples.
Learn the roles of models, views, and controllers and how they interact, with Java examples and comparisons across frameworks.
Compare the software life cycle with Waterfall, Iterative, and Agile models, and learn how to choose an approach for a real project.
Explore the core object-oriented design principles SOLID (SRP, OCP, LSP, ISP, DIP). Learn what each principle means and why it matters through Java examples, and how to apply them to build flexible, maintainable software.
Learn how to visualize system functionality with UML use case diagrams, including actors, system boundaries, and include and extend relationships.
Explore why software requirements change and learn flexible strategies for managing those changes, including change control, traceability, communication, and practical tools.
Learn to distinguish early ideas from concrete functional requirements, separate your assumptions from user needs, and use prototyping and documentation to guide a project.
Review Scrum, XP, and Kanban, learn from real-world agile adoption successes and challenges, and see how teams apply iteration and feedback.
Compare iterative development with Waterfall, understand evolutionary prototyping, and learn the Agile Manifesto values and principles.
Learn how to validate designs and gather user feedback with throwaway, evolutionary, low-fidelity, and high-fidelity prototypes.
Understand UML sequence diagrams through lifelines, message types, activations, control frames, and a practical use case that shows how objects collaborate over time.
Learn the core parts of UML class diagrams—classes, attributes, methods, and relationships—and how to visualize software design.
Software verification and validation, inspections, testing stages, black-box and white-box testing, and equivalence partitioning.
Unit testing, regression tests, drivers and stubs, JUnit assertions, fixtures, and test-method structure.
Turn UML design class diagrams and interaction diagrams into classes, method bodies, and collection-based implementations.
Understanding visibility when designing interactions between objects.
Use case realization and operation contracts in object design with GRASP.
An introduction to the nine GRASP patterns, object responsibilities, coupling, and cohesion in software design.
Design class diagrams, association perspectives, keywords, stereotypes, and deriving classes and code from interaction diagrams.
An overview of UML interaction diagrams, including sequence and communication diagrams and the messages, links, creation, numbering, iteration, and call types they represent.
Object-level design in software engineering, including static and dynamic models.
An overview of logical architecture design in software engineering, including layers, UML package diagrams, and the separation of models and views.
Connect the operating-system concepts from days 1–19 into a complete picture of processes, memory, files, protection, virtualization, and networks.
Learn the fundamentals, benefits, structures, communication methods, design challenges, and distributed file systems behind distributed systems.
Understand virtualization, virtual-machine architecture, hypervisors, hardware support, and their trade-offs.
Understand protection principles, domains, access-control matrices, ACLs, capabilities, and operating-system protection policies.
Learn how operating system security protects systems and user data, with examples of common threats, encryption, authentication, and app security.
Learn how mounting, partitions, file sharing, VFS, and caching form the internal structure of a file system.
Learn how operating systems implement directory structures, file allocation, free-space management, and file system recovery.
Learn how file system interfaces manage files through access methods, directory structures, permissions, and memory-mapped files.
Understand I/O hardware, controllers, kernel subsystems, drivers, system calls, DMA, STREAMS, and I/O scheduling.
Understand how virtual memory provides an address space larger than physical memory, with examples of demand paging, page replacement, and copy-on-write.
Understand how TLB caching speeds up address translation and how swapping moves inactive processes between RAM and disk.
Learn about main memory, contiguous allocation strategies, paging, page tables, and multi-level address translation.
Understand deadlock, the Coffman conditions, and prevention, avoidance, detection, and recovery strategies with process and thread examples.
Explore practical synchronization scenarios, from classic problems to code examples, to prevent resource conflicts in concurrent environments and prepare for interviews.
Learn how mutexes, semaphores, and monitors coordinate access to shared resources and prevent race conditions.
Learn how operating systems allocate CPU time, compare common scheduling algorithms, and review the trade-offs often discussed in technical interviews.
Learn how threads divide execution within a process, enable concurrency, and introduce synchronization challenges such as race conditions and deadlocks.
Learn about processes, a core operating-system concept, with examples covering scheduling and inter-process communication. This topic often appears in technical interviews and coding tests.
Explore the components and design of an operating system, including user interfaces, system calls, linkers and loaders, kernel architectures, and the boot process.
An operating system manages computer resources and connects users with hardware. Explore its core roles, structure, resource management, security, and virtualization.
Understand the timing differences between useEffect and useLayoutEffect, practical uses for useRef, state management with useReducer, and how custom hooks make logic reusable.
Learn how React 18 automatic batching and concurrency work, including differences from React 17, microtasks, flushSync, and the startTransition API.
Learn how React’s useState Hook and setter work internally, including Hook call order, linked lists, the Update Queue, functional updates, batching, and lazy initial state.
TCP Reno congestion windows, slow start, congestion avoidance, AIMD, and responses to packet loss.
Network congestion, its causes and costs, retransmissions, duplicate packets, and throughput under different scenarios.
Explore TCP connection properties, sequence and ACK numbers, retransmission, flow control, three-way handshakes, and connection closure.
Network management infrastructure, managed devices, agents, and management information bases.
ICMP error reporting, echo messages, and its role in traceroute.
BGP operation, eBGP and iBGP sessions, route selection, and hot potato routing.
Scaling routing with autonomous systems and the operation of the OSPF link-state protocol.
Routing goals, network graphs, link-state and distance-vector algorithms, Dijkstra, Bellman–Ford, and their trade-offs.
An overview of the network control plane.
Understand IP datagram fields, fragmentation, IPv4 addressing, subnets, CIDR, DHCP, NAT, and the transition to IPv6.
Router architecture, input and output ports, switching fabrics, buffering, and packet scheduling.
Network-layer forwarding and routing, data and control planes, and network service models.
Compare ALOHA, CSMA, CSMA/CD, and CSMA/CA, including acknowledgments, RTS/CTS, and exponential backoff.
An overview of contention-free protocols in mobile communications, including FDMA, TDMA, CDMA, and radio link duplexing.
Multiple-access techniques in the MAC layer of wireless mobile communications.
Network architecture, SDUs and PDUs, and the OSI, TCP/IP, and hybrid reference models.
Understand signal spaces, orthonormal bases, Euclidean distance, BPSK, and QAM.
Explore linear signal transmission, bandwidth, modulation methods, communication noise, and receiver operations.
Learn about forward error correction, block and convolutional codes, interleaving, modulation, and the Shannon capacity limit.
Source coding, prefix codes, compression efficiency, and the Huffman coding algorithm.
Source coding and channel coding in wireless mobile communications.
Study notes for the third subject of Korea's Engineer Information Processing exam, covering database design and implementation.
A comprehensive review of software development fundamentals, including data structures, algorithms, configuration management, testing methods, interfaces, and exam questions.
A concise software engineering review covering life cycle models, requirements, UML, user interfaces, architecture, object-oriented design, coupling, cohesion, modules, codes, design patterns, middleware, and exam questions.
Message authentication codes, HMAC construction and security, and block-cipher-based CBC-MAC.
Cryptographic hash requirements and the design of SHA-1, SHA-2, and SHA-3.
Explore elliptic curve cryptography, finite fields, point addition and doubling, scalar multiplication, ECDSA, and elliptic curve ElGamal.
An overview of schemes for verifying digital signatures, including RSA, ElGamal, and DSA.
Digital signature algorithms, correctness, message authentication, and security against chosen-message attacks.
An explanation of ElGamal encryption used in public-key cryptography.
The Diffie–Hellman key-exchange algorithm, examples, computational assumptions, and man-in-the-middle attacks.
An introduction to groups, subgroups, element order, cyclic groups, and the discrete logarithm problem.
Learn RSA key generation, encryption and decryption, correctness, CRT-based optimization, security limitations, and OAEP padding.
A guide to RSA, modular exponentiation, Euclidean algorithms, Euler’s phi function, Fermat’s theorem, the Chinese remainder theorem, and probabilistic primality tests.
An explanation of public-key encryption.
Stream ciphers, random and pseudorandom numbers, RC4, and an introduction to block-cipher modes.
An introduction to AES, its finite-field mathematics, encryption transformations, key expansion, and security.
Feistel structure, DES permutations, S-boxes, key scheduling, security, and Triple DES.
The structure and computational security of block ciphers.
An introduction to symmetric-key encryption, block ciphers, and stream ciphers.
Classical encryption techniques: shift, affine, substitution, Vigenère, permutation, and LFSR ciphers.
An introduction to the basic concepts of cryptography.
Computer security, the CIA triad, vulnerabilities, attacks, countermeasures, and security strategies.