Computing and Systems

Computer Science and Software Engineering

Programming, data structures, algorithms, operating systems, databases, architecture and software design.

Subcategories

Start here

Data Structures
Arrays vs Linked Lists: Differences and Use Cases Arrays vs linked lists compared: memory layout, access, insertion and deletion costs, cache behaviour, memory overhead and when to use each, with examples.
Algorithms
Big O Notation Explained with Examples Big O notation explained with examples: what it measures, common complexity classes from O(1) to O(2^n), rules for simplifying, space complexity and pitfalls.
Programming Languages
Compiled vs Interpreted Languages Explained Compiled vs interpreted languages explained: how compilers, interpreters, bytecode and JIT work, speed, portability, debugging and which languages use each.
Databases
Database Normalization: 1NF, 2NF and 3NF Explained Database normalization explained: anomalies, functional dependencies, keys, first, second and third normal form and BCNF, with a step-by-step worked example.
Web Development
How HTTP Works: Requests, Responses and Status Codes How HTTP works step by step: DNS, TCP and TLS, the structure of requests and responses, methods, headers, status codes, cookies, caching and HTTP versions.
Operating Systems
Process vs Thread in Operating Systems Process vs thread explained: what each owns, memory sharing, context switching, creation cost, isolation, concurrency problems and when to use each.
APIs and Backend
REST API Basics: Methods, Status Codes and Design REST API basics explained: resources and URLs, HTTP methods, status codes, JSON, statelessness, versioning, pagination, security and design best practices.
Software Engineering and Design Patterns
SOLID Principles of Software Design Explained The SOLID principles explained with code examples: single responsibility, open closed, Liskov substitution, interface segregation, dependency inversion.
Software Testing
Types of Software Testing: Unit, Integration and System Types of software testing explained: unit, integration, system and acceptance tests, functional and non-functional testing, black box and the test pyramid.
Computer Architecture
Von Neumann vs Harvard Architecture Von Neumann vs Harvard architecture compared: shared and separate memories and buses, the Von Neumann bottleneck, modified Harvard designs and uses.

All Computer Science and Software Engineering articles

Related disciplines

Automation and Robotics AI and Data Telecom and Networks