<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Computer Science on Artur Rios Lab</title><link>https://lab.artur-rios.tech/tags/computer-science/</link><description>Recent content in Computer Science on Artur Rios Lab</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 20 Oct 2026 18:00:00 +0000</lastBuildDate><atom:link href="https://lab.artur-rios.tech/tags/computer-science/index.xml" rel="self" type="application/rss+xml"/><item><title>How Do Computer Networks Work? TCP/IP, the OSI Model and the Protocols Every Programmer Uses</title><link>https://lab.artur-rios.tech/fundamentals/computer-networks/</link><pubDate>Tue, 20 Oct 2026 18:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/computer-networks/</guid><description>&lt;p&gt;Very few programs work alone. A web page fetches data from an API, the API&#10;queries a database on another machine, the database replicates to a third, and&#10;all of them ask a time server what time it is and a name server where everyone&#10;else lives. Every one of those conversations crosses a network, and every one&#10;of them can be slow, fail halfway or arrive in pieces. A programmer who&#10;understands what happens between &lt;code&gt;connect()&lt;/code&gt; and the reply can tell a DNS&#10;problem from a TLS problem from a congested link, and can write code that&#10;copes with all three.&lt;/p&gt;</description></item><item><title>How Does a Web Browser Work? From a URL to Pixels on the Screen</title><link>https://lab.artur-rios.tech/fundamentals/how-browsers-work/</link><pubDate>Tue, 20 Oct 2026 17:30:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/how-browsers-work/</guid><description>&lt;p&gt;A web browser is probably the most complex program most people use every day.&#10;In a few hundred milliseconds it turns a line of text in an address bar into&#10;a network connection, a stream of bytes, a tree of objects, a set of styled and&#10;measured boxes, and finally pixels, then keeps all of that live while scripts&#10;change it and the user scrolls, types and clicks. It is also a small operating&#10;system in its own right (&lt;a href="https://lab.artur-rios.tech/fundamentals/operating-systems/"&gt;What Is an Operating System?&lt;/a&gt;),&#10;running untrusted code from every site you visit and keeping those sites apart.&lt;/p&gt;</description></item><item><title>What Is Text Encoding? From Telegraph Codes to Unicode and UTF-8</title><link>https://lab.artur-rios.tech/fundamentals/text-encoding/</link><pubDate>Tue, 20 Oct 2026 17:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/text-encoding/</guid><description>&lt;p&gt;A computer stores nothing but numbers. Every letter you read on a screen, every&#10;name in a database and every line of source code is held as a sequence of&#10;numbers, and something has to agree on which number means which character.&#10;That agreement is a &lt;strong&gt;text encoding&lt;/strong&gt;. When it works, nobody notices. When two&#10;programs disagree, &amp;ldquo;café&amp;rdquo; turns into &amp;ldquo;cafÃ©&amp;rdquo;, a customer&amp;rsquo;s name is rejected as&#10;invalid, or an emoji crashes a database insert. This article explains what a&#10;text encoding is, how the world got from telegraph codes to Unicode, how the&#10;modern encodings work bit by bit, and where text still goes wrong. The examples&#10;were run with Python 3.10 and Node.js 12, and their output is shown as printed.&lt;/p&gt;</description></item><item><title>What Are Data Structures? From Arrays to Hash Tables, and How to Choose One</title><link>https://lab.artur-rios.tech/fundamentals/data-structures/</link><pubDate>Tue, 20 Oct 2026 16:30:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/data-structures/</guid><description>&lt;p&gt;Niklaus Wirth titled a 1976 book &lt;em&gt;Algorithms + Data Structures =&#10;Programs&lt;/em&gt;,&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; and &lt;a href="https://lab.artur-rios.tech/fundamentals/what-is-programming/"&gt;What Is Programming?&lt;/a&gt;&#10;quoted it: choosing how to represent information is as much a part of&#10;programming as choosing the steps that work on it. This article is about the&#10;second half of that equation. It explains what a data structure is, where the&#10;classic ones came from, how each works and what it costs, and how to choose&#10;between them. The examples were run with Python 3.10 on an Intel Core&#10;i9-13900K, and their output is shown exactly as printed.&lt;/p&gt;</description></item><item><title>What Is a Compiler? How Source Code Becomes a Running Program</title><link>https://lab.artur-rios.tech/fundamentals/compilers/</link><pubDate>Tue, 20 Oct 2026 16:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/compilers/</guid><description>&lt;p&gt;&lt;a href="https://lab.artur-rios.tech/fundamentals/what-is-programming/"&gt;What Is Programming?&lt;/a&gt; ended with&#10;high-level languages taking over from machine code, and&#10;&lt;a href="https://lab.artur-rios.tech/fundamentals/processors/"&gt;What Is a Processor?&lt;/a&gt; described the machine&#10;instructions a CPU actually runs. Between the two sits the compiler: the&#10;program that turns one into the other. This article explains what a compiler&#10;is, where compilers came from, how each of their phases works, how a C file&#10;becomes an executable on a real system, and how to build a small compiler of&#10;your own. Every compiler output shown here was produced by running the tools&#10;on Ubuntu 22.04 with GCC 11.4 and Python 3.10, not written by hand.&lt;/p&gt;</description></item><item><title>What Is a Processor? History, Architectures and How a CPU Works</title><link>https://lab.artur-rios.tech/fundamentals/processors/</link><pubDate>Tue, 20 Oct 2026 15:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/processors/</guid><description>&lt;p&gt;&lt;a href="https://lab.artur-rios.tech/fundamentals/what-is-programming/"&gt;What Is Programming?&lt;/a&gt; described programs as&#10;precise descriptions of a process, and&#10;&lt;a href="https://lab.artur-rios.tech/fundamentals/operating-systems/"&gt;What Is an Operating System?&lt;/a&gt; described the&#10;software that shares a machine between them. This article goes one level&#10;further down, to the part that does the work: the processor. It covers what a&#10;processor is, how it got from vacuum tubes to tens of billions of transistors,&#10;the main ways processors are designed, and, in some detail, how a modern CPU&#10;turns instructions into results.&lt;/p&gt;</description></item><item><title>What Is an Operating System? History, Architectures and How It Works</title><link>https://lab.artur-rios.tech/fundamentals/operating-systems/</link><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/operating-systems/</guid><description>&lt;p&gt;Every program you have ever written leaned on an operating system without&#10;asking. Printing a line, opening a file, allocating memory, waiting for a key&#10;press: none of these is something a processor knows how to do. The operating&#10;system does them on the program&amp;rsquo;s behalf, and does them for hundreds of other&#10;programs at the same time without letting any of them trample the others.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://lab.artur-rios.tech/fundamentals/what-is-programming/"&gt;What Is Programming?&lt;/a&gt; followed the history&#10;of telling machines what to do. This article follows the program that stands&#10;between every other program and the machine: what it is, how it came to exist,&#10;the main ways it can be built, and, in some detail, how it actually works.&lt;/p&gt;</description></item><item><title>What Is Programming? A Short History of Telling Machines What to Do</title><link>https://lab.artur-rios.tech/fundamentals/what-is-programming/</link><pubDate>Mon, 19 Oct 2026 09:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/fundamentals/what-is-programming/</guid><description>&lt;p&gt;Ask ten developers what programming is and you will get ten answers: &amp;ldquo;writing&#10;code&amp;rdquo;, &amp;ldquo;solving problems&amp;rdquo;, &amp;ldquo;telling a computer what to do&amp;rdquo;. All of them are&#10;true, and none of them is quite enough. This article tries to pin the idea down,&#10;and then follows it through roughly two centuries of history — because most of&#10;what feels arbitrary about programming today makes sense once you know where it&#10;came from.&lt;/p&gt;</description></item></channel></rss>