<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title><![CDATA[A Blog of Sorts - MathiasSM]]></title>
    <subtitle><![CDATA[Mathias' writings on Computer Science, work, life and anything.]]></subtitle>
    <link href="https://mathiassm.dev/blog/atom.xml" rel="self" />
    <link href="https://mathiassm.dev" />
    <id>https://mathiassm.dev/blog/atom.xml</id>
    <author>
        <name><![CDATA[Mathias San Miguel]]></name>
    </author>
    <updated>2018-10-14T00:00:00Z</updated>
<entry>
    <title><![CDATA[SIGPAE: Syllabus Management System]]></title>
    <link href="https://mathiassm.dev/blog/sigpae" />
    <id>https://mathiassm.dev/blog/sigpae</id>
    <published>2017-03-01T00:00:00Z</published>
    <updated>2018-10-14T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>As part of our <strong>Software Engineering</strong> course in the <em>Universidad Simón Bolívar</em>, eight (8) of us, as Team “Zenpy” (notice me), developed, during five (5) weeks, a nice tool for the university’s Academic Records Office.</p>
<h2 id="the-product-as-the-client-asked">The Product, as the client asked</h2>
<p>The tool allows the user to communicate with the Academic Records Office database, to check if <em>Syllabus</em> records are digitized for any given course, and check if it follows the newly standardized format. Since this format was new, and no other standardized format existed before, the tool is intended to allow an easy upload of a <em>Syllabus</em> document for a course; the program will then parse it as well as it can, to automatically fill in the needed course information. It then allows the user to check if the parsing was correct and edit it to fill in missing or unparsed text.</p>
<p>Technologies used were <strong>Django</strong> as backend framework, <strong>Bootstrap</strong> as frontend framework and <strong><a href="https://github.com/tesseract-ocr/">Tesseract OCR</a></strong> to be able to parse PDFs and scanned documents.</p>
<p>The tool has no name other than “SIGPAE” (Spanish: <em>Sistema de Gestión de Programas Analíticos de Estudios</em>) and we signed a confidentiality contract; sadly, I can’t show the source code here.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[Retyna: A Ruby interpreter for Retina]]></title>
    <link href="https://mathiassm.dev/blog/retyna" />
    <id>https://mathiassm.dev/blog/retyna</id>
    <published>2017-03-01T00:00:00Z</published>
    <updated>2018-10-14T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>Together with Carlos Serrada, a friend in the same Language Theory class (Official name: <em>Traductores e Interpretadores</em>), we made a Ruby interpreter for the “Retina” language, created by Prof. David Lilue. With it, you can programmatically draw simple bitmaps with a simple syntax.</p>
<p>We called the Ruby interpreter for Retina language <em><a href="https://retyna.github.io/">Retyna</a></em>, and made that website for its code and documentation.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[Apolo: Firefighters Support System]]></title>
    <link href="https://mathiassm.dev/blog/apolo-firefighters" />
    <id>https://mathiassm.dev/blog/apolo-firefighters</id>
    <published>2017-01-01T00:00:00Z</published>
    <updated>2018-10-14T00:00:00Z</updated>
    <content type="html"><![CDATA[<p><strong>Apolo</strong>, as we called it, is a software system made as part of our <strong>Information Systems</strong> course in the <em>Universidad Simón Bolívar</em>. I led a team of eight (8) in charge of the “Operations” module for the CBVUSB (Volunteer Fire Corps of the USB) Support System.</p>
<p>Our team had to communicate with the Client (part of the CBVUSB) and keep in sync with the “Human Resources” team, as both modules would be the initial pillars for the system. Both teams as one followed the RUP methodology, with all its formal documents, diagrams and the like, to provide a solid ground for long-term maintainability. At each third of the way, a small demo presentation was made to show invited people the development process.</p>
<h2 id="the-operations-module">The Operations Module</h2>
<p>It provides a simple interface for keeping a record of every activity regarding the main station. The corps follow strict schedules and protocols regarding the services they provide. The module is to keep a digital record of such procedures and be able to check, among other things, that they have been followed to the letter.</p>
<p>The whole module was to be planned (following RUP methodology), and a single submodule developed. The rest would be developed by other teams in the next courses’ iterations (Information Systems II, and III, for those who take it).</p>
<h3 id="records-book-shifts-and-services">Records Book, Shifts and Services</h3>
<p><strong>The Records Book submodule</strong> keeps a digitalized version of a real book the fire corps keep of everything that happens at the station: Who enters, who leaves, the inventory, the commissions formed and gone to serve. It follows a strict set of rules the system must take into account, besides regular consistency checks.</p>
<p><strong>The Shifts submodule</strong> provides an interface for managing service hours of each volunteer, the fixed shifts, the owed hours and the special shifts. Everything follows the corps protocols, as required.</p>
<p><strong>The Services submodule</strong> keeps records of every service the corps have attended: From wood fires to missing pets and injured people. They register the involved volunteers and their vehicles, the victims if any and their medical examination. They need all this information validated by the chief Firefighter at the service, and in paper, for legal purposes.</p>
<hr />
<p>The Firefighters Corps at USB are an incredibly prepared team of people (students, professors and everything in between). They follow strict rules and protocols to the letter, spend a long time preparing to be a volunteer there, and they keep on training and preparing in different skills, like first-aid and hazardous goods.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[IOI - Russia]]></title>
    <link href="https://mathiassm.dev/blog/ioi-russia" />
    <id>https://mathiassm.dev/blog/ioi-russia</id>
    <published>2016-07-01T00:00:00Z</published>
    <updated>2019-07-26T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>Out of lots of luck and training, I got to compete in the International Olympiad in Informatics. Now my goal is to train younger students to represent Venezuela in this great event!</p>
<h2 id="the-international-olympiad-in-informatics">The International Olympiad in Informatics</h2>
<p>The IOI is an old competition like the ACM-ICPC, but targeted at younger students, just as the IMO, IChO, and other famous science olympiads. Each country is allowed to send 4 students to compete; in our case, only two of us (Satoru and I) got to go, due to Venezuela’s economic problems.</p>
<h3 id="a-week-to-meet-the-world">A week to meet the world</h3>
<p>A great thing about the IOI is that we get to know other people from all around the world. The organizers also work hard so that we get to experience the local culture while sharing interesting conversations with people from other countries.</p>
<h3 id="two-weeks-of-fighting">Two weeks of fighting</h3>
<p>Unlike many other styles in Coding Competitions, the IOI divides its main event into two days, separated by a break day so that we don’t burn out. I think it might be to put more problems in there, to let participants know how they’re doing (and maybe plan the next day’s strategy), or just so that we can enjoy the trip to the fullest, not rushing all the time.</p>
<p>The format is the following: Two days, each with its own set of 3 problems, 5 hours each day to solve them. 3 problems for 5 hours seems like so little, but the IOI-style makes it so that each problem often requires 2 or more implementations to get all points (100 total), as multiple sets or requirements are presented.</p>
<p>Training for IOI-style competitions requires a deep understanding of algorithm complexity and lots of practice on different approaches for the same problems.</p>
<h3 id="the-results">The results</h3>
<p>They can be summed up in the following:</p>
<blockquote>
<p>I want to train on this, even if I can’t compete anymore, because it’s a really powerful skill. If I can train younger guys so that they become better at it and can win some medals for Venezuela, then I’d be extra-accomplished.</p>
</blockquote>
<h2 id="that-big-country-on-the-map-thats-not-china">That Big Country on the Map (That’s not China)</h2>
<h3 id="cold-weather-cold-people-neither">Cold weather, cold people? Neither</h3>
<p>It was so hot I thought it was the wrong country. Russia may be cold in winter, but all Hollywood movies make us think it’s a cold country, all year long. It’s not. Summer was hot. Really hot. It never rained while we were there, but it wasn’t dry weather, which wasn’t nice.</p>
<p>On the <em>cold</em> subject, about people, they all seemed the opposite of the cold bastards we are made to think of. They don’t speak with a rough accent, either; in fact, I was shocked to see how soft the Russian I heard was and how much I now like the language (I want to learn it someday).</p>
<h3 id="politics-and-the-state">Politics and the state</h3>
<p>Truth is, at least among young Russians, Putin is made fun of like any other regular president in the world. That doesn’t mean they hate him, nor that they love him; it just means they’re critical, and that no one is truly censored at a “just chatting” scale on political issues, like all movies seem to agree on.</p>
<p>As a fun fact, we were detained by the police while on an Uber taxi. The guy did not stop at a stop sign, and patrols were waiting for that to happen. The officer did not speak a thing of English (or Spanish, for that matter). But while it was annoying to stay there and be “processed” for not carrying passports (I did have mine), using Google Translate to communicate, we only got a traffic ticket at the end. The officer followed all the rules and protocols, which is something I don’t see a lot in my home country (or Hollywood movies).</p>
<h3 id="homelike-cuisine">Homelike cuisine</h3>
<p>I wasn’t expecting a magnificent cuisine. But I was expecting a rather different cuisine from the western world. It was actually pretty similar. It even had many dishes that are eaten here in Venezuela, like <em>“arroz con leche”</em>, which literally means “rice with milk” and is a common dessert here; it exists there as…. eh… some Russian name that does not mean literally “rice with milk”.</p>
<p>I also got to eat the salad known here as just “Russian salad”, which is, actually, from Russia (who would have known?) and was really good. The thing is, their food is not particularly tasty. It is all quite homelike, and as such, it was really nice. They don’t drink anything cold, though, and that’s something I couldn’t get used to.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[ACM-ICPC World Finals - Thailand]]></title>
    <link href="https://mathiassm.dev/blog/acm-icpc-world-finals-thailand" />
    <id>https://mathiassm.dev/blog/acm-icpc-world-finals-thailand</id>
    <published>2016-05-01T00:00:00Z</published>
    <updated>2018-09-21T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>After less than a year training for the ICPC competitions, Rubmary Rojas, Augusto Hidalgo and I, as team RAM (R.A.M. … y‘see?), classified for the ICPC World Finals in Thailand!</p>
<h2 id="local-and-regional-contests">Local and Regional Contests</h2>
<p>Venezuela has few universities interested in Competitive Programming (there are not that many with CS studies, either), so there’s no National Contest, but rather each university holds its own. In our case, USB, UCV, and UCAB joined together for a local contest.</p>
<p>We came in third, with “Conejitos Peligrositos” (“Dangerous little bunnies”) leading in the USB with 8 problems solved, then NPI-Complete (UCV) with 7, then us (USB) with 6. The fourth team (“Segmentation Fault”, third and last classified from the USB) also had 6 problems solved, but with a bigger time penalty. We had little expectations for the regional, but things went way too well then…</p>
<p>By the start of the frozen hour we had five (5) accepted problems. We had one pending problem with a Wrong Answer (we can try again), but we quickly saw a stupid solution to another problem (the simplest bipartite matching). While coding that one, we saw the mistake in the Wrong Answer, corrected, and got two (2) more Accepted problems!</p>
<p>We ended up with seven (7) problems, pretty happy with the outcome. Still, only first place (and usually second) is guaranteed to classify for the World Finals; we were competing against Colombia, which had really good teams… And we classified, in second place (third also classified this time). We were going to Thailand.</p>
<h2 id="pre-competition-stress-venezuela-style">Pre-competition stress (Venezuela style)</h2>
<p>The event started on Monday (May 16th, 2016). Up until the previous Wednesday, we didn’t know if we were going to make it. We had some money donated by friends that was just enough to buy 3 tickets from an organization that promised low prices for academic trips. Yet at the last minute they said no.</p>
<p>We were supposed to get help from the university, private companies or the Venezuelan state. But our university is public and depends on the state, private companies have mostly disappeared from the country (due to its nationalization policies), and the state seems to prioritize sports (like “Underwater Rugby”, whatever that is) over academic events.</p>
<p>It was a Thursday and all our hopes were gone, when some coach from another country contacted us. It seemed some coaches, ICPC representatives and so on, collaborated to buy us the tickets. Within 6 hours of talks and organizing dates, we had the tickets (even for our coach). We had to run, now, as the flight was the very same night/dawn.</p>
<p>Such a miracle included a trip of 5 stops one way, 4 stops the other, for a total of 11 flights, more than 132 hours traveling (less than the time we spent there!)… It was completely worth it.</p>
<h3 id="the-flights">The flights</h3>
<p>The trip to Phuket was:</p>
<ul>
<li>Caracas - Bogotá (2 hours)
<ul>
<li>3 hours in Bogotá.</li>
</ul></li>
<li>Bogotá - Panamá City (2 hours)
<ul>
<li>3 hours in Panamá.</li>
</ul></li>
<li>Panamá City - Sao Paulo (9 hours)
<ul>
<li>Checked out our bags to change airlines.</li>
<li>…19 hours of wait…</li>
<li>Checked in our bags with the new airline.</li>
</ul></li>
<li>Sao Paulo - Abu Dhabi (16.5 hours)
<ul>
<li>5 hours in Abu Dhabi.</li>
</ul></li>
<li>Abu Dhabi - Bangkok (9 hours)
<ul>
<li><p>We had to check our bags here. Mine was lost.</p>
<p>Airport security made the others literally run after one of their guys to the gate (Augusto said it was like a video game, where no matter how fast you go, the NPC is still ahead of you).</p>
<p>Airport security made me stay to wait for my bag after they supposedly found it.</p>
<p>They did, actually, and brought it to me in a cargo elevator. The security guy rushed me to run fast through the check-out point, past some guards, up 2 or 3 floors, to the gates hall, to the farthest gate, for check-in.</p>
<p>I made it.</p>
<p>Then we had to run after the Thai guy again, as our flight was almost ready to go.</p>
<p>We were left breathless, some with tachycardia, all of us super smelly, but we made it on time and boarded that tiny airplane (way more modern than Venezuela’s planes anyway), to Phuket, finally.</p></li>
</ul></li>
<li>Bangkok - Phuket (2 hours)</li>
</ul>
<p>In Phuket, we got our bags easily and spent an hour changing, cleaning, resting, before going out to find a big welcome stand with a couple of volunteers from the host university that treated us well and got us into transportation to the hotel in minutes.</p>
<h2 id="the-world-finals-2016.-phuket-thailand">The World Finals 2016. Phuket, Thailand</h2>
<p>The main event happened the day after the dress rehearsal. There we saw the location: A sports stadium, with a big tent for resting before entering the arena. We got to listen to Executive Director Bill Poucher’s jokes and laughed hard at every one of them.</p>
<p>It was our first time in the World Finals, competing against the best of the best. Watching the giant screen showing the ICPCLive streaming just before entering the contest did not help much. Words from other competitors and friends did, though. We were there, and we were going to give it our all, anyway.</p>
<p>The contest was… tense. Lots of balloons for other teams. We got our first AC in a relatively good time. But we struggled with our second problem. It was, according to the scoreboard, the second easiest, and we got many WA, before a final AC. That left us no time to think through the other problems.</p>
<p>Mistakes made:</p>
<ul>
<li>To have stuck to a single problem for too long.</li>
<li>To be all thinking about the same problem.</li>
<li>To not read all the problems in time.</li>
<li>To underestimate ourselves with some tasks.</li>
</ul>
<p>We got only two problems. But it’s alright. We did all we could. We represented our university and country proudly. And I got this photo:</p>
<p>As for our friends from the <em>Universidad Nacional de Rosario</em> (Argentina), they became Latam Champions, no less. They achieved an outstanding 37th place, beating lots of crazily good universities. Congratulations, Leopoldo, Mariano, Pablo, and Martín!</p>
<h2 id="the-other-great-events">The other great events</h2>
<h3 id="ibm-techtrek">IBM TechTrek</h3>
<p>A long and boring… I’m kidding. An awesome and wholly interesting talk on many hot topics in Computer Science by Star Wars characters… I mean, IBM guys. They talked about many things. Among them were Big Data, Cloud Computing and Bluemix. It really made me love my choice of studies way more than ever.</p>
<h3 id="fantasea-opening-ceremony">FantaSea Opening Ceremony</h3>
<p>The opening was boring, I must confess. It was at FantaSea grounds, in some auditorium for shows. FantaSea looked great and all, but the presentation was mostly ACM-ICPC guys presenting Thai officials and professors (from the host university and so on) who did not speak English at all. There were several awards for outstanding coaches, too.</p>
<p>The best I could get out of it, though, was the moment they showed all teams onscreen. And we saw all Latin America there. Such excitement can’t be described.</p>
<p>Later on, we ate some weird Thai spicy food there (I’m definitely not a fan of spicy food). The hall was rather amazingly large, and I can’t think of anything else they could use it for. After that, tired and all, we were at FantaSea marketplace, looking at real elephants and all kinds of merchandise around them.</p>
<p>After that, there was quite an amazing circus-like show, with theater, comedy, magic, elephants, music, some Cirque du Soleil acrobatics, and more elephants. There were easily more than ten elephants on-stage at the same time! It was amazing in every sense. Sadly I could not take pictures or record it. But still, what a show!</p>
<h3 id="ibm-chillzone">IBM Chillzone</h3>
<p>IBM, as good sponsors, had a great place set up for organizing tiny presentations, demonstrations and giving away gifts. Among those gifts, I got a pair of headphones, a USB hub, some pens, a cool cube toy and a really comfy t-shirt with an eye, a bee, and an “M”… Got it?</p>
<h3 id="icpcquest">ICPCQuest</h3>
<p>The World Finals are great in many ways. But one thing I really congratulate the organizers for is this… game? It’s called ICPCQuest, and it consists of completing <em>quests</em>, which are usually tweets with a specific photo or message you have to take or write, to gain points. Given a certain quantity, you get prizes. And at the end, the rest of prizes are given “at random”; with a probability distribution that follows how many points you got (the more points you got, the more likely you were to get a prize).</p>
<p>It’s an awesome way to gain free coverage and tons of pictures of the event, to make the contestants and attendees interact with other people, and it’s just too fun to miss playing it.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[USB's Introduction to Robotics Workshop]]></title>
    <link href="https://mathiassm.dev/blog/robotics-workshop" />
    <id>https://mathiassm.dev/blog/robotics-workshop</id>
    <published>2015-12-01T00:00:00Z</published>
    <updated>2015-12-01T00:00:00Z</updated>
    <content type="html"><![CDATA[]]></content>
</entry>
<entry>
    <title><![CDATA[Training Camp Argentina 2015]]></title>
    <link href="https://mathiassm.dev/blog/training-camp-argentina-2015" />
    <id>https://mathiassm.dev/blog/training-camp-argentina-2015</id>
    <published>2015-06-01T00:00:00Z</published>
    <updated>2018-09-21T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>We were still babies at programming, to be honest. But the USB had competed in the Marrakech World Finals 2015 (Team Phoenix); there, the awesome guys from Argentina invited Venezuela to a Training Camp they had been running annually for 6 years. Yet, Team Phoenix couldn’t go, as two of its three members had graduated.</p>
<p><strong>Venezuela could send two teams</strong>, and it was decided that one should be from the USB, so Ricardo chose us, RAM, to go to fucking Argentina.</p>
<h2 id="home-pre-training">Home Pre-Training</h2>
<p>The whole idea intimidated us. We had never even participated in a real ICPC contest (local, regional or else), much less attended such a camp, or gone to Argentina, for that matter. The idea of a previous training, taught in our home university, was welcomed.</p>
<p>The main “teacher” was Ricardo, our coach, but other classes were given by Rubmary (teammate) and Wilmer Bandres (Marrakech finalist), as well. They were open classes for anyone who wanted to go, so there were usually around 7 to 10 people.</p>
<h2 id="the-necessary-fundraising">The necessary fundraising</h2>
<p>Venezuela is going, as I write this, through a political, social and economic crisis that makes everything related to travel, among a million other things, almost impossible: We had no money for it. We had to fly some miles to get there, so we asked for help. All this during the trimester and pre-training up until the end.</p>
<p>It was tough, but we somehow managed to arrange everything after lots of people (mostly family, but also friends and a couple of strangers) helped by donating or sharing our story. We finally got the money, and in a couple of stressful days, we organized the trip to Bahía Blanca, Argentina.</p>
<h2 id="two-weeks-of-intensive-training">Two weeks of intensive training</h2>
<ul>
<li>Lectures all weekday mornings.</li>
<li>Simulations all weekday afternoons.</li>
<li>A few <em>minor</em> events related to the sponsors:
<ul>
<li><strong>Google</strong> - Maps and internships open to all.</li>
<li><strong>Facebook</strong> - Mobile version/Network and internships open to… the best.</li>
<li><strong>Medallia</strong> - Networking awesomeness and internships open.</li>
</ul></li>
<li>Saturday Codeforces because we weren’t tired enough.</li>
</ul>
<p>We learned a lot, a freaking lot, then and months after, digesting all that information. This was a major help for us at the regionals when <a href="https://mathiassm.dev/blog/acm-icpc-world-finals-thailand">we classified to the World Finals</a>.</p>
<h3 id="topics-treated-in-classes">Topics treated in classes</h3>
<p>Be sure to expand every item to see specific topics.</p>
<details>
  <summary>Graphs</summary>
  <ul>
    <li>DFS / <strong>BFS</strong>.</li>
    <li><strong>Shortest paths</strong></li>
    <li><strong>Minimum Spanning Trees</strong>
      <ul>
        <li><strong>Kruskal</strong></li>
        <li><strong>Prim</strong></li>
      </ul>
    </li>
    <li>Strongly Connected Components 
      <ul>
        <li>Kosaraju</li>
        <li>SAT-2</li>
      </ul>
    </li>
    <li>DFS edge classification</li>
    <li>Topological Sorting</li>
    <li>Articulation Points</li>
    <li><strong>Intractable Problems</strong>
      <ul>
        <li><strong>Cliques</strong></li>
        <li><strong>Independent sets</strong></li>
        <li><strong>Vertex Cover</strong></li>
      </ul>
    </li>
    <li>Trees 
      <ul><li>Centroid decomposition</li></ul>
    </li>
  </ul>
</details>

<details>
  <summary>Dynamic Programming</summary>
  <ul>
    <li>Top-down</li>
    <li>Bottom-up</li>
    <li>Overlapping subproblems</li>
    <li>Principle of Optimality</li>
    <li>Range DP</li>
    <li>Bitmasking</li>
  </ul>
</details>

<details>
  <summary>Arithmetics</summary>
  <ul>
    <li>Prime numbers</li>
    <li>Factorization</li>
    <li>Euler’s Totient</li>
    <li>Modular arithmetics 
      <ul>
        <li>Euclidean algorithm (+ Extension)</li>
        <li>Chinese Remainder Theorem</li>
      </ul>
    </li>
    <li>Matrices 
      <ul>
        <li>Graphs</li>
        <li>Markov Chains</li>
        <li>System of equations</li>
        <li>Gauss-Jordan</li>
      </ul>
    </li>
    <li>FFT 
      <ul><li>You know, the usual dark magic</li></ul>
    </li>
  </ul>
</details>

<details>
  <summary>Data Structures</summary>
    <ul><li>C++ sets</li>
    <li>Range Minimum Query 
      <ul>
        <li>Sparse tables (static)</li>
        <li>Segment trees (dynamic) 
          <ul>
            <li>Lazy propagation</li>
            <li>Persistence</li>
          </ul>
        </li>
        <li>Lowest Common Ancestor</li>
      </ul>
    </li>
    <li>Interval operations 
      <ul>
        <li>Sums 
          <ul>
            <li>Partial sums (static)</li>
            <li>Binary Indexed Trees (dynamic)</li>
          </ul>
        </li>
        <li>Others 
          <ul>
            <li>“Square root trick”</li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</details>

<details>
  <summary>Greedy problem solving</summary>
  <ul>
    <li>Try to prove your stuff</li>
  </ul>
</details>

<details>
  <summary>Strings</summary>
  <ul>
    <li>String matching 
      <ul>
        <li>Knuth-Morris-Pratt</li>
      </ul>
    </li>
    <li>Tries</li>
    <li>Suffix Array 
      <ul>
        <li>Longest Common Prefix</li>
      </ul>
    </li>
  </ul>
</details>

<details>
  <summary>Geometry</summary>
  <ul>
    <li>Elements 
      <ul>
        <li>Points</li>
        <li>Vectors</li>
        <li>Lines</li>
      </ul>
    </li>
    <li>Sweep Line 
      <ul>
        <li>Closest pair</li>
        <li>Segment intersection</li>
        <li>Convex Hull</li>
      </ul>
    </li>
    <li>Polygon area</li>
  </ul>
</details>

<details>
  <summary>Game Theory</summary>
  <ul>
    <li>Winner and loser positions</li>
    <li>Nim</li>
  </ul>
</details>
<p>You can check the <a href="https://sites.google.com/site/trainingcampargentina2015/">official website for Training Camp Argentina 2015</a> (in Spanish).</p>
<h2 id="training-camp-venezuela">Training Camp Venezuela</h2>
<p>Something we agreed to commit to before going to Argentina was to share all we learned in Argentina with Venezuelan competitors. We had then (and still have) a lack of competitors and trainers, due to Venezuela’s long lasting (bad and getting worse) condition for the most part, as academic life struggles, so we all want and need to promote these competitions by training others.</p>
<p>We resorted to doing some kind of training camp. It had a totally different format, given Venezuela’s insecurity and current <em>state</em> of the State Universities; these universities depend economically on the government, and with Maduro’s administration, we were suffering a professors’ strike at that time thanks to a critical lack of necessary conditions. Certainly chaotic times, but we did it anyway.</p>
<p>The format was like this: Lectures on Friday and Saturday mornings in the <em>Universidad Central de Venezuela</em> (UCV) (which is an easier place to go to for most students) by the UCV team that went with us to Argentina and ourselves. We covered the same topics we were lectured on.</p>
<p>They got a pretty big set of topics in Argentina, but with as little time as two weeks, not everything could be taught. We tried to cover a little more than them by including <em>maximum flow</em> algorithms as the last class.</p>
<p>I got to give the second lecture on graphs. I covered <em>BFS</em>, <em>Shortest Paths</em>, <em>Minimum Spanning Trees</em>, “quirky” graphs and a few <em>intractable</em> problems.</p>
<p>Our goal is to continue this pseudo-camp on a yearly basis, to keep on promoting the competitions. We hope to get sponsors eventually, to provide a better service for all.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[LDC: Teaching Computing Lab]]></title>
    <link href="https://mathiassm.dev/blog/ldc" />
    <id>https://mathiassm.dev/blog/ldc</id>
    <published>2015-06-01T00:00:00Z</published>
    <updated>2019-09-14T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>Even as hooked on Competitive Programming as I was, at almost the same time I started training, I joined the Teaching Computing Lab of the USB (<em>Laboratorio Docente de Computación</em> or LDC). The unknown was calling me everywhere I looked. It was my first trimester studying real computer science, and I got the opportunity to learn about networks and system administration here. I took it.</p>
<h2 id="it-support-and-homework">IT Support and homework</h2>
<p>This organization is in charge of managing the entire network of the Department of Computing and IT. Inside this network, most of the CS undergrad and postgraduate studies are managed. Professors have their personal sites there, accounts for using services like the printers, email, storage and so on.</p>
<p>As a newbie there, you’re not ready to handle all that; instead, you get homework to keep learning progressively, while solving IT issues of students and faculty alike. Sometimes requests are easy, like installing an OS, or installing something, while other times it’s about fixing a printer (God I hate printers).</p>
<h3 id="what-you-learn-about">What you learn about</h3>
<p>The LDC is in charge of several basic and not-so-basic services, like:</p>
<ul>
<li>Mail (IMAP, SMTP)</li>
<li>NFS</li>
<li>LDAP</li>
<li>Databases (Postgres, MySQL… )</li>
<li>Logwatchers</li>
<li>Backups (Bacula, Amanda…)</li>
<li>DHCP</li>
<li>DNS</li>
<li>SSH</li>
</ul>
<p>In some way or another, you end up learning anything from regular expressions as life savers, package managers, the OSI model, sniffing the network and just being good at getting your hands dirty in the console.</p>
<p>I’ve completed several <em>“tareas”</em> (homework about a specific topic), but due to the rules of the LDC, I can’t post them here yet. Someday I will post them somewhere. It was a pain to find some solutions to the problems and questions there, so I’d like to make it easier for others to move on faster to higher topics.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[Writing Workshop at the USB]]></title>
    <link href="https://mathiassm.dev/blog/creative-writing-workshop" />
    <id>https://mathiassm.dev/blog/creative-writing-workshop</id>
    <published>2015-02-01T00:00:00Z</published>
    <updated>2018-09-21T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>A great experience I had in the <em>Universidad Simón Bolívar</em> was a Writing Workshop organized by a couple of Literature students from the <em>Universidad Central de Venezuela</em> as required community service for their degree. The main goal was something I was not interested in, but the writing exercises were a phenomenal experience.</p>
<p>Reading your own writings in front of strangers is quite a challenge for someone like me, but as I got to listen to marvelous writings by the other people present, I think it was a fair trade. There are quite excellent writers hidden in the science aisles.</p>
<p>I started writing (in Spanish) on a little Medium site, for anyone who’s interested. Made-up abstract stories are most of what you’ll encounter there.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[Learning French]]></title>
    <link href="https://mathiassm.dev/blog/french-start" />
    <id>https://mathiassm.dev/blog/french-start</id>
    <published>2015-01-01T00:00:00Z</published>
    <updated>2019-09-21T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>Since I was little, I’ve known enough English to read and write without much trouble. I don’t get regular spoken conversation, so as of 2015 I’m a little awkward at speaking, but can understand it pretty well. While I know I must continue improving it, I don’t want to stop there, as there are other interesting languages I’d like to learn.</p>
<p>French is one of them, as I chose it for my third language. <em>Et je l’aime.</em></p>
<p>I’ve not gotten many chances to speak it, and so far (2015), I’m a little awkward at it. Even though I know I must practice speaking my second language, I don’t want to stop there. I have always wanted to learn many more languages, but I always thought it’d be Japanese (for childish reasons). As I finally thought it through, I decided on French. And oh boy, je l’aime.</p>
<h2 id="some-basics-to-get-you-started">Some basics to get you started</h2>
<p>Personal pronouns:</p>
<ul>
<li><em>je</em> (“I”)</li>
<li><em>tu</em> (“you”)</li>
<li><em>il</em> / <em>elle</em> (“he” / “she”)</li>
<li><em>nous</em> (“we”)</li>
<li><em>vous</em> (formal singular “you” or plural “you”)</li>
<li><em>ils</em> (“they”)</li>
</ul>
<p>Auxiliary verbs: <em>être</em> (“to be”) and <em>avoir</em> (“to have”). And their conjugations in the present tense:</p>
<table>
<thead>
<tr>
<th style="text-align: right;">Qui</th>
<th style="text-align: left;">être</th>
<th style="text-align: center;"></th>
<th style="text-align: right;">Qui</th>
<th style="text-align: left;">avoir</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: right;">Je</td>
<td style="text-align: left;">suis</td>
<td style="text-align: center;"></td>
<td style="text-align: right;">J’</td>
<td style="text-align: left;">ai</td>
</tr>
<tr>
<td style="text-align: right;">Tu</td>
<td style="text-align: left;">es</td>
<td style="text-align: center;"></td>
<td style="text-align: right;">Tu</td>
<td style="text-align: left;">as</td>
</tr>
<tr>
<td style="text-align: right;">Il / Elle</td>
<td style="text-align: left;">est</td>
<td style="text-align: center;"></td>
<td style="text-align: right;">Il / Elle</td>
<td style="text-align: left;">a</td>
</tr>
<tr>
<td style="text-align: right;">Nous</td>
<td style="text-align: left;">sommes</td>
<td style="text-align: center;"></td>
<td style="text-align: right;">Nous</td>
<td style="text-align: left;">avons</td>
</tr>
<tr>
<td style="text-align: right;">Vous</td>
<td style="text-align: left;">êtes</td>
<td style="text-align: center;"></td>
<td style="text-align: right;">Vous</td>
<td style="text-align: left;">avez</td>
</tr>
<tr>
<td style="text-align: right;">Ils</td>
<td style="text-align: left;">sont</td>
<td style="text-align: center;"></td>
<td style="text-align: right;">Ils</td>
<td style="text-align: left;">ont</td>
</tr>
</tbody>
</table>]]></content>
</entry>
<entry>
    <title><![CDATA[Elgarson: Fashion web design]]></title>
    <link href="https://mathiassm.dev/blog/el-garson" />
    <id>https://mathiassm.dev/blog/el-garson</id>
    <published>2015-01-01T00:00:00Z</published>
    <updated>2019-09-14T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>I was hired to coordinate with a France-based client the design and implementation of a lifestyle-oriented website (famous people, fashion, that kind of stuff): <em>elgarson.com</em> (now offline).</p>
<p>I used WordPress as a backend, to provide an easy UI for writing on the site. The frontend was built from nothing, with plain CSS and HTML, with tiny touches of JavaScript.</p>
<h2 id="white-clear-design">White, clear design</h2>
<p>With white as its main color, the site showed elegance and clarity. Almost-black sans-serif typography was used. It followed the minimalism trend among famous fashion labels. Five (5) sections are shown: <em>Le Jardin</em>, <em>Motivation</em>, <em>Inspiration</em>, <em>Curiosité</em> and <em>Personnalités</em>.</p>
<h3 id="le-jardin-mosaic"><em>Le Jardin</em> mosaic</h3>
<p>It consists of only pictures of flowers arranged in a symmetric three-column mosaic of square photos. They can be clicked to open in a big modal.</p>
<h3 id="motivation-tips"><em>Motivation</em> tips</h3>
<p>The only part that’s not white, but pink. It shows motivational messages arranged in a single column. They stay visually separated by being in semi-transparent boxes.</p>
<h3 id="inspiration-from-famous"><em>Inspiration</em> from famous</h3>
<p>It doesn’t present a meta list of posts, but directly the last one. It presents a simple design of two columns, roughly one-third (1/3) and two-thirds (2/3) of the screen. The first column shows a photo of the person, while the second, wider column presents a short biography and share buttons. The user can browse for inspiration by using the left and right arrows for navigation. According to the client, “just one of those pages should be enough to inspire a generation”.</p>
<h3 id="curiosité-on-the-writings"><em>Curiosité</em> on the writings</h3>
<p>A simple list of posts. Each a title and small thumb on the right side. Nothing fancy here.</p>
<h3 id="personnalités-of-the-world"><em>Personnalités</em> of the world</h3>
<p>Presents a mosaic of hand-drawn named images. Each is supposed to be for an interview with a famous person (singer, artist, comedian…). The mosaic is ordered in a “Masonry” way as every image can be of a different size. On hover, the image flips to show the (usually short) interview. On mobiles, the cards are shown in a single column, with the image on the left, and the interview on the right, as hover effects don’t exist.</p>]]></content>
</entry>
<entry>
    <title><![CDATA[Competitive Programming]]></title>
    <link href="https://mathiassm.dev/blog/competitive-programming" />
    <id>https://mathiassm.dev/blog/competitive-programming</id>
    <published>2015-01-01T00:00:00Z</published>
    <updated>2018-09-21T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>After a great math professor convinced me and two other students, we started (re)learning to code sooner and with one goal in mind: To compete in the “Coding Marathons” (as they’re commonly called in my university).</p>
<h2 id="the-acm-icpc">The ACM-ICPC</h2>
<p>The Association for Computing Machinery - International Collegiate Programming Contest (ACM-ICPC) is an annual competition for college students around the world, to compete against 40,000 other students in local and regional rounds for the opportunity to participate in the World Finals.</p>
<p>The rules are simple enough:</p>
<ul>
<li>Group
<ul>
<li>Made up of 3 students of the same university.</li>
</ul></li>
<li>Materials
<ul>
<li>Each group is given a single computer.</li>
<li>Each group can bring (with some limits) books or other non-electronic material.</li>
<li>Paper and pencils are provided.</li>
</ul></li>
<li>Competition
<ul>
<li>Each competition (or round) lasts 5 hours.</li>
<li>Each consists of solving 8 to 13 programming problems.</li>
<li>At any given moment, except for the final (dead) hour, a team is able to watch the scoreboard of solved problems by other teams.</li>
</ul></li>
</ul>
<h2 id="other-competitions">Other competitions</h2>
<p>The ICPC is but one of many worldwide competitions to prove your coding and logical thinking skills. Big companies like Google or Facebook like the idea enough to host their own competitions (CodeJam and HackerCup, respectively). The format is a little different from competition to competition, but topics are generally the same (lots and lots of topics).</p>
<p>If you’re a minor, high-school student, you can compete in the International Olympiad in Informatics (IOI), which is, along with the ICPC, one of the oldest programming competitions, besides being one of the big five international science olympiads.</p>
<p>There are also many other institutions that organize coding competitions (even as their main activity), online or on-site. Some of them are the “Competitive Programming Network” (or RPC, “Red de Programación Competitiva” in Spanish), Codeforces (from Russia), CodeChef (from India), Topcoder (from the USA), HackerRank (from the USA); almost every competition is in English as a standard to avoid ambiguity due to translation.</p>
<h2 id="what-you-can-learn-training">What you can learn training</h2>
<p>There are tons of things you can learn; and you must learn them if you want to reach for glory (red status in Codeforces, for example). Among those topics are a great deal of magical data structures, graph theory, geometry, string analysis, dynamic programming, number theory, and so much more.</p>
<p>Dealing with such a quantity of information, it’s normal to get intimidated. And indeed, this might not be everyone’s cup of tea, but it’s impossible to know without trying. I can just say it can get pretty fun.</p>
<h3 id="how-to-start-training">How to start training</h3>
<p>I started training soon in my studies, at the same time as my then-teammates Augusto and Rubmary, with help from Prof. Ricardo. He guided us through the beginning of our journey, with puzzles and basic programming tasks that required just a bit more thinking than the last one. I love puzzles and find it a great way to train logical thinking.</p>
<p>We picked up C++ as it’s the most used language in ICPC competitions, and found in it a powerful tool, too big to grasp all at once at first, but flexible enough to provide a simple learning environment. One thing I learned on the way, though, is that the language doesn’t matter that much: The main goal of these competitions is to think of a solution. The basics are enough to start, and along the way more and more details of the language will show themselves.</p>
<p>The easiest way to train is to use an online judge of solutions. The judges usually have big catalogs of problems, which you can choose from, pick one, code a solution, and the judge will test it against several (usually hidden to the user) test cases to prove your solution correct, or give you some feedback as to why it’s not (too much time running, too much memory used, crashed along the way, didn’t even compile, …).</p>
<p>A common judge is SPOJ, and here are some easy problems for beginners: TEST, ADDREV, HELLOKIT, OFFSIDE, CANDY, NSTEPS, DRAWM, CYLINDER. Some not-so-beginner-friendly problems: FARIDA, SAMER08F, STPAR, CHOCOLA, HISTOGRA, PIGBANK, AGGRCOW. Do not look for answers before you try them yourself.</p>
<h3 id="basic-topics-to-learn-along">Basic topics to learn along</h3>
<p>Theory and implementations to learn right after you start are:</p>
<ul>
<li>Asymptotic Notation</li>
<li>Data Structures
<ul>
<li>Arrays</li>
<li>Linked lists</li>
<li>Stacks and Queues</li>
<li>Graphs
<ul>
<li>Adjacency matrix</li>
<li>Adjacency list</li>
<li>Arc list</li>
</ul></li>
</ul></li>
<li>Algorithms
<ul>
<li>Sorting (Bubblesort, Mergesort, Quicksort)</li>
<li>Binary Search</li>
<li>On graphs
<ul>
<li>Traversal (DFS, BFS)</li>
<li>Backtracking</li>
</ul></li>
</ul></li>
</ul>
<p>There are many other topics. You’re free to search around for them or contact me if you need help with anything.</p>
<h3 id="best-practices">Best practices</h3>
<ul>
<li>Practice writing code on paper, even pseudo code.</li>
<li>Practice reading other people’s code (important: read your teammates’ code a lot, understand their thought process).</li>
<li>Practice in online contests like Codeforces, and measure yourself with others.</li>
<li>Don’t look for other people’s solutions, unless you’re certain you can’t solve it yourself; but, even then, implement the solution yourself so that you get experience on problems similar to that.</li>
<li>Always solve off-contest any problem you couldn’t solve on time.</li>
<li>Read posts online explaining topics, or the books themselves.</li>
<li>Don’t get stuck on a single problem, move on to another (that goes for in-contest and off-contest alike).</li>
<li>Read the editorials for the contests after the fact (sometimes written by competitors in ugly but potentially interesting blogs).</li>
<li>Don’t lose the habit.</li>
<li>Keep a template for online contests, practice writing it quickly for on-sites, keep it short.</li>
</ul>
<div class="sourceCode" id="cb1"><pre class="sourceCode cpp"><code class="sourceCode cpp"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#include </span><span class="im">&lt;bits/stdc++.h&gt;</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="pp">#define FOR</span><span class="op">(</span>i<span class="op">,</span><span class="pp"> </span>from<span class="op">,</span><span class="pp"> </span>to<span class="op">)</span><span class="pp"> </span><span class="cf">for</span><span class="pp"> </span><span class="op">(</span><span class="dt">int</span><span class="pp"> </span>i<span class="pp"> </span><span class="op">=</span><span class="pp"> </span><span class="op">(</span>from<span class="op">)</span><span class="pp"> </span><span class="op">;</span><span class="pp"> </span>i<span class="pp"> </span><span class="op">&lt;</span><span class="pp"> </span>to<span class="pp"> </span><span class="op">;</span><span class="pp"> </span>i<span class="op">++)</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="pp">#define ms</span><span class="op">(</span>obj<span class="op">,</span><span class="pp"> </span>val<span class="op">)</span><span class="pp"> </span>memset<span class="op">(</span>obj<span class="op">,</span><span class="pp"> </span>val<span class="op">,</span><span class="pp"> </span><span class="kw">sizeof</span><span class="op">(</span>obj<span class="op">))</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a><span class="pp">#define ri</span><span class="op">(</span>i<span class="op">)</span><span class="pp"> </span>scanf<span class="op">(</span><span class="st">&quot;</span><span class="sc">%d</span><span class="st">&quot;</span><span class="op">,&amp;</span>i<span class="op">)</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="pp">#define mp </span>make_pair</span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="pp">#define pb </span>push_back</span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a><span class="pp">#define INF </span><span class="bn">0x3f3f3f3f</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a><span class="pp">#define EPS </span><span class="fl">1e-10</span></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a><span class="pp">#define PI </span>acos<span class="op">(-</span><span class="dv">1</span><span class="op">)</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-13"><a href="#cb1-13" aria-hidden="true" tabindex="-1"></a><span class="kw">using</span> <span class="kw">namespace</span> std<span class="op">;</span></span>
<span id="cb1-14"><a href="#cb1-14" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-15"><a href="#cb1-15" aria-hidden="true" tabindex="-1"></a><span class="kw">typedef</span> <span class="dt">long</span> <span class="dt">long</span> ll<span class="op">;</span></span>
<span id="cb1-16"><a href="#cb1-16" aria-hidden="true" tabindex="-1"></a><span class="kw">typedef</span> pair<span class="op">&lt;</span><span class="dt">int</span><span class="op">,</span> <span class="dt">int</span><span class="op">&gt;</span> ii<span class="op">;</span></span>
<span id="cb1-17"><a href="#cb1-17" aria-hidden="true" tabindex="-1"></a><span class="kw">typedef</span> vector<span class="op">&lt;</span><span class="dt">int</span><span class="op">&gt;</span> vi<span class="op">;</span></span>
<span id="cb1-18"><a href="#cb1-18" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-19"><a href="#cb1-19" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> gcd<span class="op">(</span><span class="dt">int</span> a<span class="op">,</span> <span class="dt">int</span> b<span class="op">){</span> <span class="cf">return</span> b <span class="op">?</span> gcd<span class="op">(</span>b<span class="op">,</span> a <span class="op">%</span> b<span class="op">)</span> <span class="op">:</span> a<span class="op">;</span> <span class="op">}</span></span>
<span id="cb1-20"><a href="#cb1-20" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> mcm<span class="op">(</span><span class="dt">int</span> a<span class="op">,</span> <span class="dt">int</span> b<span class="op">){</span> <span class="cf">return</span> a <span class="op">*</span> b <span class="op">/</span> gcd<span class="op">(</span>a<span class="op">,</span> b<span class="op">);</span> <span class="op">}</span></span>
<span id="cb1-21"><a href="#cb1-21" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> pot<span class="op">(</span><span class="dt">int</span> a<span class="op">,</span> <span class="dt">int</span> b<span class="op">){</span> <span class="cf">return</span> b <span class="op">?</span> <span class="op">(</span>pot<span class="op">(</span>a<span class="op">,</span> b <span class="op">&gt;&gt;</span> <span class="dv">1</span><span class="op">))*(</span>pot<span class="op">(</span>a<span class="op">,</span> b <span class="op">&gt;&gt;</span> <span class="dv">1</span><span class="op">))*(</span>b <span class="op">&amp;</span> <span class="dv">1</span> <span class="op">?</span> a <span class="op">:</span> <span class="dv">1</span><span class="op">)</span> <span class="op">:</span> <span class="dv">1</span><span class="op">;</span> <span class="op">}</span></span>
<span id="cb1-22"><a href="#cb1-22" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-23"><a href="#cb1-23" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> main<span class="op">(){</span></span>
<span id="cb1-24"><a href="#cb1-24" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-25"><a href="#cb1-25" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>]]></content>
</entry>
<entry>
    <title><![CDATA[USB's Mathematics Honor Class]]></title>
    <link href="https://mathiassm.dev/blog/mathematics-honor-class" />
    <id>https://mathiassm.dev/blog/mathematics-honor-class</id>
    <published>2014-10-01T00:00:00Z</published>
    <updated>2019-09-21T00:00:00Z</updated>
    <content type="html"><![CDATA[<p>I hadn’t even started classes; I was just enrolling in the <em>Universidad Simón Bolívar</em> (USB). I don’t remember how, but I found out there was an optional class, “Honor Math”, that I could choose instead of the regular mathematics class. It was promised to be harder and there were no extra credits nor any extra gain for it. I decided to go for the introductory presentation.</p>
<h2 id="knocking-on-the-door">Knocking on the door</h2>
<p>I’ve participated in Mathematics Olympiads since late elementary school; I even got a (national) gold medal in my last year of high school, mere months before this introduction. My high school final research project was also related to mathematics. I was curious, for I wanted to know what college math was all about.</p>
<p>The presentation summed up to this: Ph.D. Alfredo Ríos was teaching the class, the topics or methodologies were not like the olympiads, it’s just a different approach, focusing on deeper and more challenging concepts. I was sold. And I never regretted it.</p>
<p>I met amazing people, weird people, intelligent people. Alfredo turned out to be an excellent lecturer (in my opinion) and a great person.</p>
<h2 id="regular-and-honor-math-compared">Regular and honor math compared</h2>
<p>It was just as Alfredo told us: Different. It didn’t feel particularly harder, or easier for that matter. It was just for people who, like me, hate mechanical methods to solve problems. Here, one is supposed to work with axioms and slowly build up the theorems of differential and integral calculus.</p>
<p>A note here: While the classes followed the regular topics, the “Preparadurías” (scheduled classes by a more advanced student, Santiago Palacios) in Honor Math were ridiculously far from those of regular classes, which concentrated on practicing those mechanical methods; instead, we were lectured on different, unrelated and awesome topics that didn’t matter at all towards a final grade.</p>
<h2 id="the-changes-in-math-iii-algebra">The changes in Math III: Algebra</h2>
<p>Alfredo had to step down as our professor because of his sabbatical. Ph.D. Pedro Berrizbeitia, just back from his period as a guest professor in Spain, taught the class. Now things got weird, as he had never taught this class before, so the topics were different this time, mostly in order and quantity, as we were taught everything from regular Math III, and more.</p>
<p>I met abstraction, fields, mathematically defined objects and many other things that would eventually help me a lot in upcoming classes, like the Discrete Math branch of CS.</p>
<h2 id="the-end-of-it">The end of it</h2>
<p>Only three honor math trimesters seemed too little for all of us, but from Math IV on the different majors get different irregular schedules, it was never possible to teach a so-called Honor Math IV. That’d have been awesome for me, since I almost failed Math IV, due to my own lack of interest and laziness towards that horribly boring class.</p>]]></content>
</entry>

</feed>
