<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Francisco Bustamante on Ciência Programada</title>
    <link>https://cienciaprogramada.com/authors/flsbustamante/</link>
    <description>Recent content in Francisco Bustamante on Ciência Programada</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</managingEditor>
    <webMaster>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</webMaster>
    <copyright>© 2026 Francisco Bustamante</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://cienciaprogramada.com/authors/flsbustamante/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Optimization with SciPy</title>
      <link>https://cienciaprogramada.com/2026/10/optimization-scipy/</link>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/10/optimization-scipy/</guid>
      <description>Differentiating and setting the result to zero solves textbook optimization. With several variables, constraints, or a function without a tractable derivative, that calculation breaks down. We will see minimize, SLSQP and bounds from scipy.optimize, local minima, and global search with differential_evolution.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/10/optimization-scipy/featured_0108.webp" />
    </item>
    
    <item>
      <title>Differential Equations with SciPy</title>
      <link>https://cienciaprogramada.com/2026/10/differential-equations-scipy/</link>
      <pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/10/differential-equations-scipy/</guid>
      <description>The classic pendulum period formula only holds for small oscillations, and the exact equation has no closed-form solution. With SciPy&amp;rsquo;s solve_ivp, we measure the real period and solve stiff systems, Lotka-Volterra, falling with drag, and consecutive reactions.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/10/differential-equations-scipy/featured_0107.webp" />
    </item>
    
    <item>
      <title>Numerical Integration with SciPy</title>
      <link>https://cienciaprogramada.com/2026/10/numerical-integration-scipy/</link>
      <pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/10/numerical-integration-scipy/</guid>
      <description>The Gaussian function has no elementary antiderivative, and that is a theorem of Liouville. When the antiderivative does not exist, or all you have is a table of measurements, the way forward is numerical: quad, trapezoid and Simpson, from scipy.integrate, with the care each one demands.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/10/numerical-integration-scipy/featured_0113.webp" />
    </item>
    
    <item>
      <title>Numerical Derivatives with SciPy</title>
      <link>https://cienciaprogramada.com/2026/10/numerical-derivatives-scipy/</link>
      <pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/10/numerical-derivatives-scipy/</guid>
      <description>Is the reactor temperature rising too fast? The question is a derivative, but all we have are numbers in a table. We will see finite differences, numpy.gradient and scipy.differentiate, and why shrinking the step does not always improve the derivative, because of rounding and noise.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/10/numerical-derivatives-scipy/featured_0106.webp" />
    </item>
    
    <item>
      <title>Curve Fitting with NumPy</title>
      <link>https://cienciaprogramada.com/2026/09/curve-fitting-numpy/</link>
      <pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/09/curve-fitting-numpy/</guid>
      <description>Experimental data rarely falls on a curve. We will see how NumPy fits polynomials to noisy data, what SymPy cannot do, why extrapolating is dangerous, and why Runge&amp;rsquo;s phenomenon comes from equally spaced nodes, not from high degree.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/09/curve-fitting-numpy/featured_0105.webp" />
    </item>
    
    <item>
      <title>Polynomials with NumPy</title>
      <link>https://cienciaprogramada.com/2026/09/polynomials-numpy/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/09/polynomials-numpy/</guid>
      <description>Stored in float64, the coefficients of Wilkinson&amp;rsquo;s polynomial no longer return the roots 1 to 20: two of them become a complex pair. Before getting there, we look at roots, derivatives, integrals and division with numpy.polynomial, and at the coefficient-order trap.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/09/polynomials-numpy/featured_0104.webp" />
    </item>
    
    <item>
      <title>From Chemistry to Engineering: Numerical Equations in Real Systems</title>
      <link>https://cienciaprogramada.com/2026/09/chemistry-engineering-numerical-equations/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/09/chemistry-engineering-numerical-equations/</guid>
      <description>From the pH of a weak acid to the volume of a real gas and the friction factor of a pipe: three equations that chemistry and engineering use every day and that only have a useful numerical solution. We solve all three with brentq and numpy.roots and rebuild the Moody chart.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/09/chemistry-engineering-numerical-equations/featured_0103.webp" />
    </item>
    
    <item>
      <title>Orbits and Trajectories: Numerical Equations in Physics</title>
      <link>https://cienciaprogramada.com/2026/09/orbits-trajectories-physics/</link>
      <pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/09/orbits-trajectories-physics/</guid>
      <description>Where is Halley&amp;rsquo;s Comet on any given date? The answer requires solving Kepler&amp;rsquo;s equation, which has no closed form. With SciPy&amp;rsquo;s newton and brentq, we locate the comet, make the law of areas visible, and compute the range of a projectile with air resistance.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/09/orbits-trajectories-physics/featured_0102.webp" />
    </item>
    
    <item>
      <title>Solving Equations Numerically with SciPy</title>
      <link>https://cienciaprogramada.com/2026/09/numerical-equations-scipy/</link>
      <pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/09/numerical-equations-scipy/</guid>
      <description>In Kepler&amp;rsquo;s equation, the unknown appears both inside and outside a sine, and no algebra isolates it. For cases like this, SciPy approximates the root. We will see bisection and brentq, Newton&amp;rsquo;s method and why it can fail, and nonlinear systems with fsolve and root.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/09/numerical-equations-scipy/featured_0101.webp" />
    </item>
    
    <item>
      <title>From Symbol to Number: SciPy and NumPy Beyond SymPy</title>
      <link>https://cienciaprogramada.com/2026/09/from-symbol-to-number/</link>
      <pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/09/from-symbol-to-number/</guid>
      <description>Most equations, integrals, and differential equations in real problems have no closed-form solution, and SymPy can&amp;rsquo;t solve them. This 13-article series shows how NumPy and SciPy tackle these problems: roots, polynomials, numerical calculus, optimization, and FFT.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/09/from-symbol-to-number/featured_0112.webp" />
    </item>
    
    <item>
      <title>Directed Graphs: When Direction Matters</title>
      <link>https://cienciaprogramada.com/2026/08/directed-graphs/</link>
      <pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/directed-graphs/</guid>
      <description>A one-way street, a hyperlink, and a dependency between tasks are relations with a direction, and directed graphs exist for them. We will see in- and out-degrees, strong, unilateral, and weak connectivity, matrices, DAGs, and the topological sort that Apache Airflow uses.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/directed-graphs/featured_0099.webp" />
    </item>
    
    <item>
      <title>Planar Graphs: When Crossing Is Unavoidable</title>
      <link>https://cienciaprogramada.com/2026/08/planar-graphs/</link>
      <pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/planar-graphs/</guid>
      <description>Try to connect three houses to gas, water, and electricity without crossing lines: it is impossible. We will see why, with Euler&amp;rsquo;s Formula, the proof that the three-houses graph and the complete graph on five vertices are not planar, Kuratowski&amp;rsquo;s Theorem, and the coloring of planar graphs, from six colors down to four.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/planar-graphs/featured_0098.webp" />
    </item>
    
    <item>
      <title>Eulerian and Hamiltonian Graphs</title>
      <link>https://cienciaprogramada.com/2026/08/eulerian-hamiltonian-graphs/</link>
      <pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/eulerian-hamiltonian-graphs/</guid>
      <description>Traversing each edge exactly once is easy to decide: just look at the parity of the degrees (Euler&amp;rsquo;s Theorem). Deciding whether we can visit each vertex exactly once is NP-complete. We will see both problems, the theorems of Dirac and Ore, and the Traveling Salesman, from Held-Karp to Christofides.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/eulerian-hamiltonian-graphs/featured_0097.webp" />
    </item>
    
    <item>
      <title>Trees: The Most Elegant Structure in Graphs</title>
      <link>https://cienciaprogramada.com/2026/08/trees/</link>
      <pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/trees/</guid>
      <description>A file system is a tree: a connected graph with no cycles. We prove that every tree has one edge fewer than it has vertices and that its center has one or two vertices, and we look at spanning trees and rooted trees, including the difference between a balanced tree and a degenerate one.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/trees/featured_0096.webp" />
    </item>
    
    <item>
      <title>Paths, Cycles, and Connectivity</title>
      <link>https://cienciaprogramada.com/2026/08/paths-cycles/</link>
      <pubDate>Thu, 13 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/paths-cycles/</guid>
      <description>How do we know whether two points of a network are connected, and by which shortest path? We define walk, trail, path, and cycle, connectivity and distance, compute distances with breadth-first search and Dijkstra, and prove that a graph is bipartite if and only if it has no odd cycle.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/paths-cycles/featured_0095.webp" />
    </item>
    
    <item>
      <title>Isomorphism and Matrix Representation</title>
      <link>https://cienciaprogramada.com/2026/08/graph-isomorphism-matrices/</link>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/graph-isomorphism-matrices/</guid>
      <description>Two graphs with the same number of vertices, the same number of edges and the same degree sequence may not be isomorphic. We will see what isomorphism is, how to prove it with a bijection, and how to represent graphs by adjacency and incidence matrices.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/graph-isomorphism-matrices/featured_0094.webp" />
    </item>
    
    <item>
      <title>Degree of a Vertex and the Handshaking Lemma</title>
      <link>https://cienciaprogramada.com/2026/08/vertex-degree/</link>
      <pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/vertex-degree/</guid>
      <description>The sum of the degrees of a graph is always twice the number of edges: this is the Handshaking Theorem. We will see degree, regular graphs, and the degree sequence, and we check the theorem on Zachary&amp;rsquo;s Karate Club, a real network of 34 people that split in two.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/vertex-degree/featured_0093.webp" />
    </item>
    
    <item>
      <title>Definitions and Notation in Graph Theory</title>
      <link>https://cienciaprogramada.com/2026/08/graph-definitions/</link>
      <pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/08/graph-definitions/</guid>
      <description>The formal vocabulary of graph theory: vertices, edges, neighborhood, isolated and universal vertices, complement, induced and spanning subgraphs, complete and null graphs, cliques and independent sets, with 14 worked examples and exercises.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/08/graph-definitions/featured_0092.webp" />
    </item>
    
    <item>
      <title>Graphs: A Language for Modeling Connections</title>
      <link>https://cienciaprogramada.com/2026/07/graphs-introduction/</link>
      <pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/graphs-introduction/</guid>
      <description>Can you cross the seven bridges of Königsberg passing over each one exactly once? Euler showed you can&amp;rsquo;t, and in doing so created graph theory. We will see what a graph is, the Four Color Theorem, and the computation of PageRank on a mini-web of five pages, in Python.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/graphs-introduction/featured_0091.webp" />
    </item>
    
    <item>
      <title>The Mathematics of Connections: Graph Theory from Scratch</title>
      <link>https://cienciaprogramada.com/2026/07/mathematics-of-connections/</link>
      <pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/mathematics-of-connections/</guid>
      <description>In 1736, Euler solved a puzzle about the bridges of a Prussian city and, without meaning to, founded graph theory. This series of 9 articles goes from the basic definitions to Kuratowski&amp;rsquo;s Theorem, through paths, trees, planarity, and directed graphs.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/mathematics-of-connections/featured_0090.webp" />
    </item>
    
    <item>
      <title>The Binomial Theorem: Expanding (a&#43;b)^n</title>
      <link>https://cienciaprogramada.com/2026/07/binomial-theorem/</link>
      <pubDate>Tue, 28 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/binomial-theorem/</guid>
      <description>What is the coefficient of a term in the expansion of a binomial raised to the tenth power? The binomial theorem answers in one line, with the coefficients from Pascal&amp;rsquo;s triangle. We will see the theorem and its proof by induction, the general term formula, and the identities that come from special cases.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/binomial-theorem/featured_0089.webp" />
    </item>
    
    <item>
      <title>Binomial Coefficients and Pascal&#39;s Triangle</title>
      <link>https://cienciaprogramada.com/2026/07/binomial-coefficients/</link>
      <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/binomial-coefficients/</guid>
      <description>A set with 10 elements has 1,024 subsets, and that is the sum of row 10 of Pascal&amp;rsquo;s triangle. We will see the identities of binomial coefficients: symmetry, Pascal&amp;rsquo;s rule (Stifel&amp;rsquo;s rule), and the row, column, and diagonal theorems.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/binomial-coefficients/featured_0088.webp" />
    </item>
    
    <item>
      <title>Combinations with Repetition: Stars and Bars</title>
      <link>https://cienciaprogramada.com/2026/07/combinations-with-repetition/</link>
      <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/combinations-with-repetition/</guid>
      <description>At an ice cream shop with 7 flavors, there are 210 ways to order 4 scoops, repeating flavors allowed. We get there with the stars and bars method, which shows that choosing with repetition, distributing balls into boxes, and solving integer equations are the same problem.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/combinations-with-repetition/featured_0087.webp" />
    </item>
    
    <item>
      <title>Arrangements with Repetition: n^r and Computational Representation</title>
      <link>https://cienciaprogramada.com/2026/07/arrangements-with-repetition/</link>
      <pubDate>Thu, 16 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/arrangements-with-repetition/</guid>
      <description>A 4-digit password allows repetition, and that is why there are 10,000 of them: ten options in each of the four positions. The arrangement with repetition counts passwords, license plates, and RGB colors, and shows how many patterns fit in the 32 bits of a float and in the registers of an HP-11C calculator.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/arrangements-with-repetition/featured_0086.webp" />
    </item>
    
    <item>
      <title>Permutations with Repetition: When Elements Repeat</title>
      <link>https://cienciaprogramada.com/2026/07/permutations-with-repetition/</link>
      <pubDate>Tue, 14 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/permutations-with-repetition/</guid>
      <description>How many anagrams does the word MAMBEMBE have? Fewer than an 8-letter word with distinct letters would have, because swapping two equal letters does not create a new anagram. The formula discounts the repetitions by dividing by factorials, and it works for binary sequences and for shortest paths on grids.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/permutations-with-repetition/featured_0085.webp" />
    </item>
    
    <item>
      <title>Combinations: When Order Does Not Matter</title>
      <link>https://cienciaprogramada.com/2026/07/combinations/</link>
      <pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/combinations/</guid>
      <description>Out of 10 friends, 3 go buy the popcorn. Only who goes matters, not the order of the choice, so there are 120 possible groups. We will see the combination formula, its symmetry, the complement method, and how to split a set into groups.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/combinations/featured_0084.webp" />
    </item>
    
    <item>
      <title>Arrangements: Ordering Without Using Everything</title>
      <link>https://cienciaprogramada.com/2026/07/arrangements/</link>
      <pubDate>Tue, 07 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/arrangements/</guid>
      <description>In a race with 10 athletes, the podium can be filled in 720 ways. That is an arrangement, an ordered selection of some elements of a set. We solve problems about routes, license plates, and numbers with distinct digits, with Python and SQL.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/arrangements/featured_0083.webp" />
    </item>
    
    <item>
      <title>Simple and Circular Permutations</title>
      <link>https://cienciaprogramada.com/2026/07/permutations/</link>
      <pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/07/permutations/</guid>
      <description>How many anagrams does the word VIRUS have? In how many ways can 5 friends sit around a table? The answers are 120 and 24, by simple and circular permutations. We will also see adjacency restrictions, the traveling salesman problem, and derangements.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/07/permutations/featured_0082.webp" />
    </item>
    
    <item>
      <title>Sum Rule and Product Rule: The Foundation of Counting</title>
      <link>https://cienciaprogramada.com/2026/06/sum-and-product-rules/</link>
      <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/sum-and-product-rules/</guid>
      <description>With 4 math books and 3 Portuguese books, there are 7 ways to pick one book and 12 ways to pick one of each. The first count is a sum and the second is a product: these are the sum rule and the product rule, applied here to passwords, flags, answer keys, and counting divisors.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/sum-and-product-rules/featured_0081.webp" />
    </item>
    
    <item>
      <title>The Art of Counting: A Journey Through Combinatorics</title>
      <link>https://cienciaprogramada.com/2026/06/the-art-of-counting/</link>
      <pubDate>Mon, 29 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/the-art-of-counting/</guid>
      <description>How many 8-character passwords are there? In how many ways can 10 people sit around a table? Combinatorics answers without listing every case. This is the roadmap of the series: from the counting rules to permutations, arrangements, combinations and the binomial theorem.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/the-art-of-counting/featured_0080.webp" />
    </item>
    
    <item>
      <title>Recurrence Relations: Defining Sequences in Terms of Themselves</title>
      <link>https://cienciaprogramada.com/2026/06/recurrence-relations/</link>
      <pubDate>Thu, 25 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/recurrence-relations/</guid>
      <description>How many moves does it take to solve the Tower of Hanoi? The answer comes from a recurrence relation, which writes the problem in terms of itself with one disk fewer. We set up recurrences and solve them by substitution, by the characteristic equation and by the Master Theorem, used for merge sort.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/recurrence-relations/featured_0079.webp" />
    </item>
    
    <item>
      <title>Strong Induction: When the Step Needs More Context</title>
      <link>https://cienciaprogramada.com/2026/06/strong-induction/</link>
      <pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/strong-induction/</guid>
      <description>What if the step depends on more than one earlier case, as in Fibonacci? Strong induction assumes all the earlier cases. We will see the technique at work on prime factorization, the chocolate bar, postage stamps and Binet&amp;rsquo;s formula, which in floating point fails from the 71st term on.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/strong-induction/featured_0078.webp" />
    </item>
    
    <item>
      <title>Mathematical Induction: Proving Properties for All Natural Numbers</title>
      <link>https://cienciaprogramada.com/2026/06/mathematical-induction/</link>
      <pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/mathematical-induction/</guid>
      <description>If the first domino falls and each domino knocks over the next, they all fall. That is the logic of the Principle of Mathematical Induction. We will see the structure of the proof (base case, hypothesis and step) in sums, divisibility and inequalities, and the false proof that all horses are the same color.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/mathematical-induction/featured_0077.webp" />
    </item>
    
    <item>
      <title>From Base Case to Infinity: An Introduction to Induction and Recurrence</title>
      <link>https://cienciaprogramada.com/2026/06/from-base-case-to-infinity/</link>
      <pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/from-base-case-to-infinity/</guid>
      <description>How do you prove a formula holds for every natural number, if there are infinitely many of them? With mathematical induction. This introduction maps out the series: classic induction, strong induction and recurrence relations, from Fibonacci to the Tower of Hanoi.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/from-base-case-to-infinity/featured_0076.webp" />
    </item>
    
    <item>
      <title>Sets in Python: set, frozenset, and Operations</title>
      <link>https://cienciaprogramada.com/2026/06/python-sets/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/python-sets/</guid>
      <description>Testing whether an element is in a set takes constant time on average, while in a list the time grows with its size. We will see how set theory becomes Python code: set and frozenset, comprehension, membership and inclusion, union, intersection and difference, hashing, and practical applications.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/python-sets/featured_0100.jpg" />
    </item>
    
    <item>
      <title>Cardinality: Counting the Elements of a Set</title>
      <link>https://cienciaprogramada.com/2026/06/cardinality/</link>
      <pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/cardinality/</guid>
      <description>Adding the sizes of two sets counts the intersection twice. The Inclusion-Exclusion Principle fixes the count, for two, three, or any number of sets. We will also see infinities of different sizes, derangements, and the Sieve of Eratosthenes.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/cardinality/featured_0075.jpg" />
    </item>
    
    <item>
      <title>Venn Diagrams and Set Operations</title>
      <link>https://cienciaprogramada.com/2026/06/venn-diagrams-set-operations/</link>
      <pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/venn-diagrams-set-operations/</guid>
      <description>Union, intersection, difference, and complement are the basic operations on sets, and they show up in SQL as UNION, INTERSECT, and EXCEPT. We see each one in Venn diagrams, along with De Morgan&amp;rsquo;s laws, distributivity, and the difference between a Venn diagram and an Euler diagram.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/venn-diagrams-set-operations/featured_0074.jpg" />
    </item>
    
    <item>
      <title>Sets: What They Are and How to Define Them Precisely</title>
      <link>https://cienciaprogramada.com/2026/06/sets/</link>
      <pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/sets/</guid>
      <description>The collection of tall people is not a set: there is no criterion that decides, for any person, whether they belong or not. We define set, membership, roster and set-builder descriptions, equality, inclusion, and the power set.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/sets/featured_0073.jpg" />
    </item>
    
    <item>
      <title>Discrete Mathematics: Introduction and Roadmap</title>
      <link>https://cienciaprogramada.com/2026/06/discrete-mathematics-introduction-roadmap/</link>
      <pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/06/discrete-mathematics-introduction-roadmap/</guid>
      <description>In how many ways can you choose a valid password? What is the shortest path between two cities? These are questions of discrete mathematics. This roadmap introduces the site&amp;rsquo;s four series on the topic: sets, induction and recurrence, combinatorics, and graphs, with 28 articles.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/06/discrete-mathematics-introduction-roadmap/featured_0072.jpg" />
    </item>
    
    <item>
      <title>Simplifying Logic Functions: Minterms, Maxterms, and the Karnaugh Map</title>
      <link>https://cienciaprogramada.com/2026/05/simplifying-logic-functions/</link>
      <pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/05/simplifying-logic-functions/</guid>
      <description>How do we go from a truth table to the leanest Boolean expression? We show three paths: the canonical forms with minterms and maxterms, algebraic simplification, and the Karnaugh map, with worked exercises and a check in Python with SymPy.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/05/simplifying-logic-functions/featured_0071.jpg" />
    </item>
    
    <item>
      <title>Boolean Algebra: the mathematical foundation of digital computing</title>
      <link>https://cienciaprogramada.com/2026/05/boolean-algebra/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/05/boolean-algebra/</guid>
      <description>Every operation of a processor can be described with three logical operations: AND, OR and NOT. We go from gates and truth tables to theorems, De Morgan&amp;rsquo;s laws and the simplification of expressions, with the half adder as the first circuit and examples in Python.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/05/boolean-algebra/featured_0070.png" />
    </item>
    
    <item>
      <title>Advanced Architectures: RISC, Flynn, and Modern Parallelism</title>
      <link>https://cienciaprogramada.com/2026/05/advanced-architectures/</link>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/05/advanced-architectures/</guid>
      <description>With 10% serial code, eight cores make the program only 4.7 times faster, and no number of cores gets past 10 times. We close the series with RISC and CISC, performance metrics, Flynn&amp;rsquo;s taxonomy, SMP, clusters, NUMA, multicore, and Amdahl&amp;rsquo;s Law.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/05/advanced-architectures/featured_0069.jpg" />
    </item>
    
    <item>
      <title>Input and Output: How the Computer Talks to the World</title>
      <link>https://cienciaprogramada.com/2026/05/input-output/</link>
      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/05/input-output/</guid>
      <description>Busy-waiting on a 10 ms disk, a 1 GHz CPU wastes ten million cycles. We compare the three ways of handling input and output (polling, interrupts, and DMA), calculate the overhead of each one, and see why polling came back with NVMe SSDs.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/05/input-output/featured_0068.jpg" />
    </item>
    
    <item>
      <title>Python and Compilers: A Didactic Bridge to the CPython Pipeline</title>
      <link>https://cienciaprogramada.com/2026/05/python-bytecode-compilers/</link>
      <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/05/python-bytecode-compilers/</guid>
      <description>Python does not run your code line by line: first, CPython compiles it to bytecode. With the tokenize, ast, compile, and dis modules, we follow a simple expression from tokens to syntax tree to bytecode, right in the interpreter.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/05/python-bytecode-compilers/featured_0067.jpg" />
    </item>
    
    <item>
      <title>Program Execution: From Source Code to Machine Code</title>
      <link>https://cienciaprogramada.com/2026/05/program-execution/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/05/program-execution/</guid>
      <description>You write a line of code, and the processor only understands bits. We follow the translation: the two-pass assembler, the compiler phases, linking and loading. Along the way, GCC cuts twelve instructions down to two with -O2, and we see where Python and Java sit between compiling and interpreting.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/05/program-execution/featured_0066.jpg" />
    </item>
    
    <item>
      <title>Instruction Representation: ISA, Formats, and Addressing Modes</title>
      <link>https://cienciaprogramada.com/2026/04/instruction-representation/</link>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/instruction-representation/</guid>
      <description>The same expression costs 5 instructions with three operands, 7 with two, and 11 with an accumulator. We will see the ISA, the contract between hardware and software, instruction formats, the RISC-V R-type, and the seven addressing modes that tell where each operand is.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/instruction-representation/featured_0065.jpg" />
    </item>
    
    <item>
      <title>Data Representation: Bits That Mean Something</title>
      <link>https://cienciaprogramada.com/2026/04/data-representation/</link>
      <pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/data-representation/</guid>
      <description>Uppercase and lowercase differ by a single bit in the ASCII table, and that was no accident. To the hardware everything is bits, and the value depends on the reading convention: ASCII, Unicode, and UTF-8 for text, two&amp;rsquo;s complement for integers, and IEEE 754 for real numbers.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/data-representation/featured_0064.jpg" />
    </item>
    
    <item>
      <title>Pipeline and Buses: Parallelism and Communication in the CPU</title>
      <link>https://cienciaprogramada.com/2026/04/pipeline-and-buses/</link>
      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/pipeline-and-buses/</guid>
      <description>An assembly line does not wait for one car to be finished before starting the next, and the pipeline does the same with instructions. We will see the stages, the hazards that stall the line, the speedup calculation, the buses that connect CPU, memory, and peripherals, and the control unit.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/pipeline-and-buses/featured_0063.jpg" />
    </item>
    
    <item>
      <title>CPU in Action: The Hypothetical Processor and the Fundamentals of Assembly</title>
      <link>https://cienciaprogramada.com/2026/04/cpu-hypothetical-processor/</link>
      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/cpu-hypothetical-processor/</guid>
      <description>A hypothetical 12-bit processor with 15 instructions serves as a model for following the complete instruction cycle. We execute LDA and ADD register by register, encode instructions in hexadecimal, and write assembly programs with branches and loops.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/cpu-hypothetical-processor/featured_0062.jpg" />
    </item>
    
    <item>
      <title>CPU: Components, Instruction Cycle, and What Happens Inside the Processor</title>
      <link>https://cienciaprogramada.com/2026/04/cpu-components-instruction-cycle/</link>
      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/cpu-components-instruction-cycle/</guid>
      <description>A 2 GHz processor can execute more instructions per second than a 3 GHz one. To understand why, we open up the CPU: ALU, control unit, registers, flags, decoder, and clock, along with the microevents of the fetch cycle in formal notation.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/cpu-components-instruction-cycle/featured_0061.jpg" />
    </item>
    
    <item>
      <title>Cache Memory: Mapping, Replacement, and Writing</title>
      <link>https://cienciaprogramada.com/2026/04/cache-memory/</link>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/cache-memory/</guid>
      <description>With a 95% hit rate, the cache makes the processor see a 4.95 ns memory where DRAM takes 80 ns. We will see why it works (locality), the direct, associative, and set-associative mappings, the replacement algorithms, and the write policies.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/cache-memory/featured_0060.jpg" />
    </item>
    
    <item>
      <title>Memory Hierarchy: From Register to Disk</title>
      <link>https://cienciaprogramada.com/2026/04/memory-hierarchy/</link>
      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/memory-hierarchy/</guid>
      <description>If a register access took one second, a main memory access would take four and a half minutes, and a hard disk access, more than a year. We will see the memory hierarchy, cells, addresses and buses, the sizing formulas, and SRAM, DRAM, ROM and ECC.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/memory-hierarchy/featured_0059.jpg" />
    </item>
    
    <item>
      <title>Inside the Computer: How Machines Really Work</title>
      <link>https://cienciaprogramada.com/2026/04/inside-the-computer/</link>
      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/inside-the-computer/</guid>
      <description>You press Enter and the result shows up three tenths of a second later. In that interval, the processor fetched hundreds of millions of instructions from memory. This series of 13 articles explains how: memory, cache, CPU, pipeline, data representation, and program execution.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/inside-the-computer/featured_0058.jpg" />
    </item>
    
    <item>
      <title>Inside IEEE 754: How the Computer Stores Real Numbers (and Why It Gets Them Wrong)</title>
      <link>https://cienciaprogramada.com/2026/04/ieee-754-real-number-representation/</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/ieee-754-real-number-representation/</guid>
      <description>How can the same 32 bits hold the distance between galaxies and the diameter of an atom? We dissect IEEE 754: sign, biased exponent and significand with a hidden bit, hand conversions, infinity, NaN, subnormals and machine epsilon.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/ieee-754-real-number-representation/featured_0057.jpg" />
    </item>
    
    <item>
      <title>Real Numbers and Floating Point: Base Conversion and Precision</title>
      <link>https://cienciaprogramada.com/2026/04/real-numbers-base-conversion/</link>
      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/04/real-numbers-base-conversion/</guid>
      <description>Why doesn&amp;rsquo;t 0.1 plus 0.2 give 0.3? Because 0.1 is a repeating fraction in binary. We convert fractions between bases by successive multiplications, look at the bits of a float with struct, and see two practical ways out: integers for money and math.isclose for comparisons.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/04/real-numbers-base-conversion/featured_0053.jpg" />
    </item>
    
    <item>
      <title>Bit-Level Logic: Bitwise Operators and Masks in Python</title>
      <link>https://cienciaprogramada.com/2026/03/bitwise-operators-masks-python/</link>
      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/03/bitwise-operators-masks-python/</guid>
      <description>In Python, 5 and 6 returns 6, and 5 &amp;amp; 6 returns 4. We explain the difference and the bitwise operators AND, OR, XOR, NOT and the shifts, used in masks that check, set, clear and toggle bits. In the end, we see where the 755 in chmod comes from.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/03/bitwise-operators-masks-python/featured_0056.jpg" />
    </item>
    
    <item>
      <title>How the Computer Subtracts by Adding: Two&#39;s Complement and Overflow</title>
      <link>https://cienciaprogramada.com/2026/03/twos-complement-overflow/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/03/twos-complement-overflow/</guid>
      <description>To subtract, the processor adds the first number to the complement of the second, so a single adder does both operations. We will see two&amp;rsquo;s complement, why 8 signed bits range from -128 to +127, and how overflow took down the Ariane 5 and froze Pac-Man on level 256.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/03/twos-complement-overflow/featured_0055.jpg" />
    </item>
    
    <item>
      <title>Computer Arithmetic: Addition and Subtraction in Binary, Octal, and Hexadecimal</title>
      <link>https://cienciaprogramada.com/2026/03/arithmetic-operations-number-bases/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/03/arithmetic-operations-number-bases/</guid>
      <description>The addition and subtraction rules of base 10 hold in any base: only the value that triggers the carry changes. We do arithmetic in binary, octal, and hexadecimal, see why with three addends the carry can be worth 2, and implement both algorithms in Python.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/03/arithmetic-operations-number-bases/featured_0054.jpg" />
    </item>
    
    <item>
      <title>Number Bases and Integer Conversion: The Complete Guide</title>
      <link>https://cienciaprogramada.com/2026/03/integer-bases-conversions/</link>
      <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2026/03/integer-bases-conversions/</guid>
      <description>In any base, the value of the base itself is written 10. We start from positional notation to convert integers between decimal, binary, octal, and hexadecimal, using expansion, successive divisions, bit grouping, and Python&amp;rsquo;s bin, oct, hex, and int functions.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2026/03/integer-bases-conversions/featured_0052.jpg" />
    </item>
    
    <item>
      <title>Understanding the Concept of Axis in NumPy and pandas: How to Work with Data in Python</title>
      <link>https://cienciaprogramada.com/2023/04/axis-concept-numpy-pandas/</link>
      <pubDate>Sun, 02 Apr 2023 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2023/04/axis-concept-numpy-pandas/</guid>
      <description>Both NumPy and pandas use the concept of an axis, but with subtle differences. In NumPy, it refers to the dimension along which an operation is performed, while in pandas it indicates the direction of an operation. This article presents examples of using axis in each library.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2023/04/axis-concept-numpy-pandas/featured_0051.jpg" />
    </item>
    
    <item>
      <title>NumPy broadcasting and vector quantization</title>
      <link>https://cienciaprogramada.com/2023/03/broadcasting-vector-quantization/</link>
      <pubDate>Thu, 02 Mar 2023 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2023/03/broadcasting-vector-quantization/</guid>
      <description>We learn in math that there are rules for adding or multiplying matrices. But in computational math problems we sometimes have matrices or vectors that we would like to add or multiply and that do not meet the requirements. In this article we will see how the NumPy broadcasting concept is useful in these contexts and how it relates to vector quantization.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2023/03/broadcasting-vector-quantization/featured_0050.jpg" />
    </item>
    
    <item>
      <title>So, What Is NumPy&#39;s reshape?</title>
      <link>https://cienciaprogramada.com/2023/02/what-is-numpy-reshape/</link>
      <pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2023/02/what-is-numpy-reshape/</guid>
      <description>If you are venturing into data science, you have most likely seen a reshape in some code. Maybe with a mysterious value of -1 in one of the positions, as in reshape(-1, 1). But what does that mean? Why do we sometimes need to transform our data to use model methods in Scikit-Learn? That is what we will see in this article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2023/02/what-is-numpy-reshape/featured_0049.jpg" />
    </item>
    
    <item>
      <title>Monte Carlo Methods with Python</title>
      <link>https://cienciaprogramada.com/2022/08/monte-carlo-methods-python/</link>
      <pubDate>Tue, 02 Aug 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/08/monte-carlo-methods-python/</guid>
      <description>Monte Carlo methods are computational algorithms that rely on random samples to obtain numerical results. In this article, we will see how to obtain the value of pi with these methods.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/08/monte-carlo-methods-python/featured_0048.jpg" />
    </item>
    
    <item>
      <title>The History of the Number Pi with Python</title>
      <link>https://cienciaprogramada.com/2022/07/history-of-pi-with-python/</link>
      <pubDate>Thu, 07 Jul 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/07/history-of-pi-with-python/</guid>
      <description>The number π is a mathematical constant: the ratio of a circle&amp;rsquo;s circumference to its diameter. In this article we walk through the history of π and learn a bit of Python programming along the way.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/07/history-of-pi-with-python/featured_0047.jpg" />
    </item>
    
    <item>
      <title>Infinite Series - Calculus with Python and SymPy</title>
      <link>https://cienciaprogramada.com/2022/05/infinite-series-calculus-python/</link>
      <pubDate>Thu, 05 May 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/05/infinite-series-calculus-python/</guid>
      <description>A good part of the study of calculus is devoted to what are called infinite series. But what, exactly, are infinite series? And how are they related to the paradox of Achilles and the tortoise, one of the so-called paradoxes of Zeno of Elea, the Greek philosopher? What is the connection with quantum mechanics and the uncertainty principle? And where does Python come in? That is what we will find out in this article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/05/infinite-series-calculus-python/featured_0046.jpg" />
    </item>
    
    <item>
      <title>Integrals - Calculus with Python and SymPy</title>
      <link>https://cienciaprogramada.com/2022/04/calculus-python-sympy-integrals/</link>
      <pubDate>Fri, 15 Apr 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/04/calculus-python-sympy-integrals/</guid>
      <description>We have already written here on the site about the concepts of limit and derivative and how we can do the related computations with Python. Continuing our journey through calculus, in this article we will see how to work with integrals using SymPy and SciPy, Python packages. Along the way, we will pick up some notions of numerical methods.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/04/calculus-python-sympy-integrals/featured_0045.jpg" />
    </item>
    
    <item>
      <title>The max Function in Python</title>
      <link>https://cienciaprogramada.com/2022/04/max-function-in-python/</link>
      <pubDate>Fri, 15 Apr 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/04/max-function-in-python/</guid>
      <description>Did you know that Python&amp;rsquo;s max function has many options and ways of use that few people know about? In this post we will see different ways of using the max function in Python.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/04/max-function-in-python/featured_0040.png" />
    </item>
    
    <item>
      <title>So, What Are Best Practices?</title>
      <link>https://cienciaprogramada.com/2022/04/what-are-best-practices/</link>
      <pubDate>Thu, 07 Apr 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/04/what-are-best-practices/</guid>
      <description>I recently watched an excellent video about best practices in programming. But the idea can be broadened to best practices in general, for any career. And, deep down, it is a video about communication, as I will show in this article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/04/what-are-best-practices/featured_0042.jpg" />
    </item>
    
    <item>
      <title>Optimization Problems with Python</title>
      <link>https://cienciaprogramada.com/2022/04/optimization-problems-python/</link>
      <pubDate>Tue, 05 Apr 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/04/optimization-problems-python/</guid>
      <description>Engineers and scientists are always trying to get the most performance out of their equipment and projects at the lowest cost. This search gives rise to so-called optimization problems. In this article, we will see how to use Python, with the help of the SymPy package, to solve them.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/04/optimization-problems-python/featured_0043.jpg" />
    </item>
    
    <item>
      <title>Linux Mint: What to Do After Installing? Complete Customization Guide</title>
      <link>https://cienciaprogramada.com/2022/04/linux-mint-after-install-customization/</link>
      <pubDate>Fri, 01 Apr 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/04/linux-mint-after-install-customization/</guid>
      <description>Linux Mint is a friendly, easy-to-use Linux distribution. In this video (in Portuguese), we make a series of customizations that make it even friendlier and more productive.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/04/linux-mint-after-install-customization/featured_0041.jpg" />
    </item>
    
    <item>
      <title>String formatting in Python</title>
      <link>https://cienciaprogramada.com/2022/03/string-formatting-python/</link>
      <pubDate>Thu, 31 Mar 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/03/string-formatting-python/</guid>
      <description>We spend a considerable amount of time dealing with strings, so it is important to know how to present them the way we want. That is what we will see in this article, with plenty of examples.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/03/string-formatting-python/featured_0039.png" />
    </item>
    
    <item>
      <title>Calculus with Python and SymPy - Derivatives</title>
      <link>https://cienciaprogramada.com/2022/03/calculus-python-sympy-derivatives/</link>
      <pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/03/calculus-python-sympy-derivatives/</guid>
      <description>The start of a calculus course tends to feel abstract because of the concept of a limit. But it soon becomes more tangible with the introduction of the derivative, which has many obvious practical applications. In this article, we will see how to work with derivatives using SymPy, a Python package.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/03/calculus-python-sympy-derivatives/featured_0038.jpg" />
    </item>
    
    <item>
      <title>Calculus with Python and SymPy: limits</title>
      <link>https://cienciaprogramada.com/2022/03/calculus-python-sympy-limits/</link>
      <pubDate>Thu, 10 Mar 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/03/calculus-python-sympy-limits/</guid>
      <description>The concept of a limit is the most important one in the study of calculus. Many other concepts and ideas are built on the definition of a limit. In this article, we will see how to find the limit of functions using SymPy and how this package can be a teaching aid in the study of calculus.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/03/calculus-python-sympy-limits/featured_0036.jpg" />
    </item>
    
    <item>
      <title>Complex Numbers with Python and SymPy</title>
      <link>https://cienciaprogramada.com/2022/03/complex-numbers-python-sympy/</link>
      <pubDate>Sat, 05 Mar 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/03/complex-numbers-python-sympy/</guid>
      <description>Complex numbers are fascinating and have many practical applications. In this article, we will see how Python handles complex numbers natively and how the SymPy package extends the power of the language.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/03/complex-numbers-python-sympy/featured_0035.jpg" />
    </item>
    
    <item>
      <title>How to Install Linux Mint</title>
      <link>https://cienciaprogramada.com/2022/03/how-to-install-linux-mint/</link>
      <pubDate>Tue, 01 Mar 2022 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2022/03/how-to-install-linux-mint/</guid>
      <description>Linux Mint is a distribution based on Ubuntu whose main desktop environment is Cinnamon. Its look is more familiar to people migrating from Windows, and it meets the needs of all kinds of users.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2022/03/how-to-install-linux-mint/featured_0037.jpg" />
    </item>
    
    <item>
      <title>Trigonometric Functions with SymPy</title>
      <link>https://cienciaprogramada.com/2021/12/trigonometric-functions-with-sympy/</link>
      <pubDate>Wed, 15 Dec 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/12/trigonometric-functions-with-sympy/</guid>
      <description>What do ocean waves, soap bubbles, and DNA have in common? That is what I show in this article, with the help of Python. We will see how these subjects relate to trigonometric functions.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/12/trigonometric-functions-with-sympy/featured_0032.jpg" />
    </item>
    
    <item>
      <title>Logic for Programmers</title>
      <link>https://cienciaprogramada.com/2021/12/logic-for-programmers/</link>
      <pubDate>Fri, 03 Dec 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/12/logic-for-programmers/</guid>
      <description>In programming, the word “logic” can refer to the process of designing an algorithm, to the conditional structures of the language, or to logical operators such as AND and OR. In the last two cases, we are within what is called mathematical logic.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/12/logic-for-programmers/featured_0033.jpg" />
    </item>
    
    <item>
      <title>Polynomials with SymPy - Calculations with Python</title>
      <link>https://cienciaprogramada.com/2021/11/polynomials-sympy-python-calculations/</link>
      <pubDate>Mon, 22 Nov 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/11/polynomials-sympy-python-calculations/</guid>
      <description>In this article, we will see how the SymPy library for Python helps us handle operations involving polynomials.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/11/polynomials-sympy-python-calculations/featured_0031.jpg" />
    </item>
    
    <item>
      <title>ENEM with Python: The Sucrose Inversion Problem (2020)</title>
      <link>https://cienciaprogramada.com/2021/11/enem-python-sucrose-inversion-2020/</link>
      <pubDate>Mon, 15 Nov 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/11/enem-python-sucrose-inversion-2020/</guid>
      <description>Is it possible to study for the college entrance exam and still learn Python? Of course! In this article, we analyze a problem from the 2020 exam. It is a chemistry problem, but one that can be solved more with reasoning than with chemistry itself.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/11/enem-python-sucrose-inversion-2020/featured_0030.jpg" />
    </item>
    
    <item>
      <title>Plots with SymPy and Matplotlib</title>
      <link>https://cienciaprogramada.com/2021/11/plots-with-sympy-and-matplotlib/</link>
      <pubDate>Mon, 08 Nov 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/11/plots-with-sympy-and-matplotlib/</guid>
      <description>In this article we will see how to make plots with SymPy and Matplotlib. When people talk about SymPy, we usually focus on solving mathematical problems. But many forget that the library has some basic features for building plots, which we will see in this article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/11/plots-with-sympy-and-matplotlib/featured_0029.jpg" />
    </item>
    
    <item>
      <title>Rational Expressions, Exponentials, and Logarithms with SymPy</title>
      <link>https://cienciaprogramada.com/2021/11/rational-logarithms-exponentials-sympy/</link>
      <pubDate>Tue, 02 Nov 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/11/rational-logarithms-exponentials-sympy/</guid>
      <description>In this article we will see how to work with rational expressions, exponentials, and logarithms using Python&amp;rsquo;s SymPy library</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/11/rational-logarithms-exponentials-sympy/featured_0028.jpg" />
    </item>
    
    <item>
      <title>Solving Equations with SymPy</title>
      <link>https://cienciaprogramada.com/2021/10/solving-equations-with-sympy/</link>
      <pubDate>Fri, 08 Oct 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/10/solving-equations-with-sympy/</guid>
      <description>A large part of fundamental math education is devoted to solving equations and systems of equations. In this article we will see how to use SymPy for these tasks quickly and intuitively.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/10/solving-equations-with-sympy/featured_0027.jpg" />
    </item>
    
    <item>
      <title>Introduction to SymPy - Calculations with Python</title>
      <link>https://cienciaprogramada.com/2021/10/introduction-to-sympy/</link>
      <pubDate>Sat, 02 Oct 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/10/introduction-to-sympy/</guid>
      <description>In this article we take an introductory look at SymPy, one of the most powerful mathematical packages for the Python language</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/10/introduction-to-sympy/featured_0026.jpg" />
    </item>
    
    <item>
      <title>Git and GitHub: The Definitive Collaboration Guide</title>
      <link>https://cienciaprogramada.com/2021/09/definitive-guide-git-github/</link>
      <pubDate>Mon, 20 Sep 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/09/definitive-guide-git-github/</guid>
      <description>Git can be a somewhat scary tool for beginners because of its large number of commands and possibilities. In this article, we demystify the main aspects of Git so that you can collaborate on any project. The famous workflow of forks and pull requests, popularized by GitHub, is covered.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/09/definitive-guide-git-github/featured_0025.jpg" />
    </item>
    
    <item>
      <title>yield from - What Is It? Understanding Generators in Python</title>
      <link>https://cienciaprogramada.com/2021/09/generators-in-python-yield-from/</link>
      <pubDate>Thu, 16 Sep 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/09/generators-in-python-yield-from/</guid>
      <description>Have you ever seen the term “yield from” in some Python code and wondered what it was? In this article we will dive even deeper into generators and understand, with examples, what “yield from” means and how we can use it to make our code even more efficient.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/09/generators-in-python-yield-from/featured_0024.jpg" />
    </item>
    
    <item>
      <title>Infinite Sequences in Python - Fibonacci Like You Have Never Seen</title>
      <link>https://cienciaprogramada.com/2021/09/infinite-sequences-python-fibonacci/</link>
      <pubDate>Thu, 09 Sep 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/09/infinite-sequences-python-fibonacci/</guid>
      <description>Did you know you can create an infinite sequence without running into memory problems and still consume that sequence however you like? Today we will look at a specific function from the itertools module, islice, which is excellent for our purpose. We will learn to use it with the example of the Fibonacci sequence.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/09/infinite-sequences-python-fibonacci/featured_0023.jpg" />
    </item>
    
    <item>
      <title>The any and all Functions in Python</title>
      <link>https://cienciaprogramada.com/2021/09/any-and-all-functions-in-python/</link>
      <pubDate>Thu, 02 Sep 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/09/any-and-all-functions-in-python/</guid>
      <description>In this article, we will see how the all and any functions, available in a standard installation of Python, work. We will also see what each of them is useful for and what to watch out for when using them, based on a complexity analysis.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/09/any-and-all-functions-in-python/featured_0022.jpg" />
    </item>
    
    <item>
      <title>Generators in Python - Code Up to 1000 Times Faster</title>
      <link>https://cienciaprogramada.com/2021/08/python-generators-fast-code/</link>
      <pubDate>Mon, 30 Aug 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/08/python-generators-fast-code/</guid>
      <description>Do you know the difference between a “normal” function and a generator function in Python? What is the difference between the return of a usual function and the yield of a generator? In this article we answer these questions and dig deeper into some aspects of the language. We will see how generators in Python can make your code up to 1000 times faster.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/08/python-generators-fast-code/featured_0021.jpg" />
    </item>
    
    <item>
      <title>Iterators and iterables in Python</title>
      <link>https://cienciaprogramada.com/2021/08/iterators-and-iterables-in-python/</link>
      <pubDate>Mon, 23 Aug 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/08/iterators-and-iterables-in-python/</guid>
      <description>Do you know what an iterable is? And an iterator? How do you recognize these structures in Python? Answering these questions is the goal of this article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/08/iterators-and-iterables-in-python/featured_0020.jpg" />
    </item>
    
    <item>
      <title>Short-Circuit Evaluation in Python - Boolean Operators</title>
      <link>https://cienciaprogramada.com/2021/08/short-circuit-in-python/</link>
      <pubDate>Mon, 16 Aug 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/08/short-circuit-in-python/</guid>
      <description>The and and or operators are short-circuit operators, meaning that the second operand is only evaluated if the result cannot be determined from the value of the first operand alone. Confusing? Let&amp;rsquo;s look at some examples in this article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/08/short-circuit-in-python/featured_0019.jpg" />
    </item>
    
    <item>
      <title>Analyzing Olympic Data with Pandas and Plotly</title>
      <link>https://cienciaprogramada.com/2021/08/olympics-data-pandas-plotly/</link>
      <pubDate>Sun, 08 Aug 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/08/olympics-data-pandas-plotly/</guid>
      <description>The Olympics are coming to an end&amp;hellip; and, besides nostalgia and stories of perseverance, every Olympics leaves behind an enormous amount of data! In this article, we will see how to use Pandas to analyze part of that data, looking at how athletes&amp;rsquo; times have evolved in track and field events.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/08/olympics-data-pandas-plotly/featured_0018.jpg" />
    </item>
    
    <item>
      <title>ENEM: The Killer Brick Problem</title>
      <link>https://cienciaprogramada.com/2021/01/enem-killer-brick-problem/</link>
      <pubDate>Fri, 08 Jan 2021 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2021/01/enem-killer-brick-problem/</guid>
      <description>Is it possible to study for the college entrance exam and still learn Python? Of course! And that is one of the goals of the Brazilian Exam Problems category on this site. In it, we use computational tools to analyze and expand problems from the ENEM, Brazil&amp;rsquo;s national high school exam. In today&amp;rsquo;s article, we analyze a problem from the 2019 exam. And, along the way, we learn to make 3D and 4D(?!) plots with Matplotlib. All because of a killer brick.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2021/01/enem-killer-brick-problem/featured_0017.jpg" />
    </item>
    
    <item>
      <title>Markdown Basics for a Good README on GitHub</title>
      <link>https://cienciaprogramada.com/2020/12/markdown-basics-github-readme/</link>
      <pubDate>Tue, 29 Dec 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/12/markdown-basics-github-readme/</guid>
      <description>We will see the basics of Markdown for creating a good README on GitHub, with practical examples and tips on how to make your project more attractive.</description>
      
    </item>
    
    <item>
      <title>Studying Our Atmosphere with Python</title>
      <link>https://cienciaprogramada.com/2020/12/studying-atmosphere-python/</link>
      <pubDate>Sat, 05 Dec 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/12/studying-atmosphere-python/</guid>
      <description>Colorless, made of invisible constituents, and odorless (we hope!). We often forget that we are surrounded by the gases that make up our atmosphere. In this article, we will see how to easily get a list of the main constituents of air with Python and web scraping. We will also do some calculations, such as density and mean molar mass, and, of course, present everything in spectacular plots.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/12/studying-atmosphere-python/featured_0016.jpg" />
    </item>
    
    <item>
      <title>Managing Issues and Pull Requests on GitHub</title>
      <link>https://cienciaprogramada.com/2020/12/managing-issues-pull-requests-github/</link>
      <pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/12/managing-issues-pull-requests-github/</guid>
      <description>We will see how to manage issues and pull requests on GitHub, both through the website interface and from the terminal of your local repository.</description>
      
    </item>
    
    <item>
      <title>Creating a CLI with Python and Using Branches in Git</title>
      <link>https://cienciaprogramada.com/2020/11/creating-python-cli-git-branches/</link>
      <pubDate>Wed, 25 Nov 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/11/creating-python-cli-git-branches/</guid>
      <description>Let&amp;rsquo;s create a very simple command-line interface (CLI) in Python and, along the way, I show how to use branches in Git.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/11/creating-python-cli-git-branches/featured_0013.jpg" />
    </item>
    
    <item>
      <title>Efficient Python: TDD tests, Git, and factorial solved in one line</title>
      <link>https://cienciaprogramada.com/2020/11/efficient-python-tdd-git-factorial/</link>
      <pubDate>Mon, 02 Nov 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/11/efficient-python-tdd-git-factorial/</guid>
      <description>Let&amp;rsquo;s see how to structure a small Python project with the help of a very simple exercise. I will show the steps to set up whatever editor or IDE you use, how to work with version control (in this case Git), and how to develop with tests (TDD, Test Driven Development).</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/11/efficient-python-tdd-git-factorial/featured_0012.jpg" />
    </item>
    
    <item>
      <title>Learn Python with an interactive interpreter</title>
      <link>https://cienciaprogramada.com/2020/09/learn-python-interactive-interpreter/</link>
      <pubDate>Sun, 27 Sep 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/09/learn-python-interactive-interpreter/</guid>
      <description>We will see the advantages of using an interactive Python interpreter over the language&amp;rsquo;s standard interpreter. IPython can help you study the language and produce Python-related content.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/09/learn-python-interactive-interpreter/featured_0011.jpg" />
    </item>
    
    <item>
      <title>RegEx - Regular Expressions in Python</title>
      <link>https://cienciaprogramada.com/2020/09/regex-regular-expressions-python/</link>
      <pubDate>Sun, 20 Sep 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/09/regex-regular-expressions-python/</guid>
      <description>Knowing regular expressions, or simply regex, is very useful, but it tends to look a bit scary to a beginner. In this article we cover the basics of regex using Python</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/09/regex-regular-expressions-python/featured_0010.jpg" />
    </item>
    
    <item>
      <title>Digitizing Charts with Engauge Digitizer and Python</title>
      <link>https://cienciaprogramada.com/2020/09/digitizing-charts-engauge-digitizer-python/</link>
      <pubDate>Tue, 15 Sep 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/09/digitizing-charts-engauge-digitizer-python/</guid>
      <description>You may have been in this situation: you are writing a paper or doing research and find a figure that presents interesting data, but it is low quality or you would like to add or remove elements from it. However, the data that originated it are not available. How do you get out of this? That is what we will see in today&amp;rsquo;s article.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/09/digitizing-charts-engauge-digitizer-python/featured_0009.jpg" />
    </item>
    
    <item>
      <title>Bolt vs Python: finding the speed of an Olympic athlete</title>
      <link>https://cienciaprogramada.com/2020/09/bolt-python-olympic-athlete-speed/</link>
      <pubDate>Thu, 10 Sep 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/09/bolt-python-olympic-athlete-speed/</guid>
      <description>Usain Bolt is considered by many to be the greatest sprinter of all time. In this article, we will see how to use Python to find the speed and acceleration the Jamaican reached in his races. We will also take the chance to discuss mathematical models and the care needed in choosing them and interpreting their results.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/09/bolt-python-olympic-athlete-speed/featured_0008.jpg" />
    </item>
    
    <item>
      <title>Plots with units in Python: pint and matplotlib</title>
      <link>https://cienciaprogramada.com/2020/09/python-plots-pint-matplotlib/</link>
      <pubDate>Sat, 05 Sep 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/09/python-plots-pint-matplotlib/</guid>
      <description>In this article we detail how to get visually elegant plots that correctly show units on their axes. We will combine the pint, numpy and matplotlib libraries.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/09/python-plots-pint-matplotlib/featured_0007.png" />
    </item>
    
    <item>
      <title>Python, Units, and Beer(?!): The pint Package</title>
      <link>https://cienciaprogramada.com/2020/09/python-units-beer-pint/</link>
      <pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/09/python-units-beer-pint/</guid>
      <description>Whenever we work with measurements and experimental data, we need to express our values with their respective units. In this article, we will see a Python library for working with units and what that has to do with beer.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/09/python-units-beer-pint/featured_0006.jpg" />
    </item>
    
    <item>
      <title>NASA Loses Millions of Dollars to Unit Errors</title>
      <link>https://cienciaprogramada.com/2020/08/nasa-loses-millions-unit-errors/</link>
      <pubDate>Thu, 20 Aug 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/08/nasa-loses-millions-unit-errors/</guid>
      <description>In this article we will see how NASA has lost multimillion-dollar projects to simple unit conversion errors. We will also see which system of units took humans to the Moon in the Apollo Program, by looking at the source code of the onboard computer.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/08/nasa-loses-millions-unit-errors/featured_0005.jpg" />
    </item>
    
    <item>
      <title>Can a Unit Conversion Error Bring Down a Plane?</title>
      <link>https://cienciaprogramada.com/2020/08/unit-conversion-error-plane/</link>
      <pubDate>Sat, 15 Aug 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/08/unit-conversion-error-plane/</guid>
      <description>How can a plane run out of fuel at 12 km of altitude? Today&amp;rsquo;s article is about a Boeing that became a 100-ton-plus “glider” and how it all happened because of a simple unit conversion error.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/08/unit-conversion-error-plane/featured_0004.jpg" />
    </item>
    
    <item>
      <title>Creating a virtual environment for your Python project</title>
      <link>https://cienciaprogramada.com/2020/08/virtual-environment-python-project/</link>
      <pubDate>Sat, 08 Aug 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/08/virtual-environment-python-project/</guid>
      <description>In this article we will see how to use virtual environments to manage Python projects. We will see that it is possible to have a different Python version for each project, and also how packages and dependencies are controlled.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/08/virtual-environment-python-project/featured_0003.jpg" />
    </item>
    
    <item>
      <title>Installing Anaconda on Linux Mint 20</title>
      <link>https://cienciaprogramada.com/2020/08/installing-anaconda-on-linux/</link>
      <pubDate>Sat, 01 Aug 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/08/installing-anaconda-on-linux/</guid>
      <description>You have probably heard of data science or machine learning. And you may also have heard of, or worked with, the R or Python languages. Today&amp;rsquo;s article is about Anaconda, a distribution that aims to make it easier to install and manage tools for these two languages, especially for scientific applications.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/08/installing-anaconda-on-linux/featured_0002.jpg" />
    </item>
    
    <item>
      <title>SpeedCrunch - a high-precision scientific calculator</title>
      <link>https://cienciaprogramada.com/2020/07/speedcrunch-high-precision-scientific-calculator/</link>
      <pubDate>Mon, 20 Jul 2020 00:00:00 +0000</pubDate>
      <author>contato[@]cienciaprogramada.com.br (Francisco Bustamante)</author>
      <guid>https://cienciaprogramada.com/2020/07/speedcrunch-high-precision-scientific-calculator/</guid>
      <description>SpeedCrunch is a high-precision scientific calculator with a simple but highly customizable interface. It has a large collection of constants and functions. Free and open source.</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://cienciaprogramada.com/2020/07/speedcrunch-high-precision-scientific-calculator/featured_0001.jpg" />
    </item>
    
  </channel>
</rss>
