====== Brynjar's Notebook ====== ~~NOTOC~~ This page contains some of my personal notes. **Warning:** The content is unrevised and may not be correct. ===== Computer Science ===== ==== Algorithms ==== See: [[compsci:algorithms|Algorithms]] Algorithms are the building blocks of computer programs. An algorithm is a sequence of simple instructions intended to solve a specific task. The task might be to sort the elements of an array in increasing order, or find the shortest path between two cities on a map (graph, actually). Having knowledge of algorithms and their properties is important for anyone who intends to write complex programs. ==== Relational Databases ==== See: [[compsci:databases|Relational Databases]] Relational databases allow for efficient lookup in complicated data sets. Data is organized into tables where each column is a property and each row is an entry of data. With relational databases we can define relations between different tables and perform complex queries with the Structured Query Language (SQL). Relational databases are used everywhere, from banks storing financial records to simple blog sites. ==== Networking ==== See: [[compsci:networking|Networking]] Computer networks are complex systems that use a range of protocols on multiple layers, from the physical hardware to software layers. The Internet is a system of interconnected computer networks that uses the TCP/IP protocol suite. The data is sent as IP packets and the networks are connected with gateways (also called routers) which forward the packets to their destinations (determined with IP addresses). Software engineers often work with network applications where an understanding of the underlying protocols can be invaluable. ==== Cryptocurrency ==== See: [[compsci:cryptocurrency|Cryptocurrency]] A blockchain is nothing more than a data structure, where each block in the chain depends on a cryptographic hash of the previous block, making them persistent to modification. When combined with a peer-to-peer protocol they can be used as platforms that don't rely on a trusted authority. The most widespread use of blockchains is in cryptocurrencies such as Bitcoin and Ethereum. The cryptocurrency space combines many interesting subjects from math, computer science and economics. ==== Formal Languages ==== See: [[compsci:languages|Formal Languages]] ==== Operating Systems ==== See: [[compsci:os|Operating Systems]] ===== Mathematics ===== ==== Cryptography ==== See: [[math:crypto|Cryptography]] Cryptography is an essential part of computer security in the modern world. Most notable is public-key cryptography, which we use every time we open our favorite websites (including this one).