Jianhao Li
Jianhao Li
College Lecturer
Contact details
Address
1117 Budapest, Pázmány Péter sétány 1/c.
Room
2.606
Links
  • 1.2 Computer and information sciences
    • Computer sciences
Distributed Protocols and Algorithms

Hardly any major software runs on a single machine anymore. Usually, the workload is spread across thousands of servers. Distributed protocols are the rulebooks that hold it all together, making a large group of scattered computers act like a single system. The catch is that real-world networks break constantly. Data gets lost in transit, messages arrive late, and hardware dies for no reason. These algorithms exist to deal with that exact mess. Their whole job is to keep the surviving machines in sync and agreeing on the truth, even when things are failing around them.

Formal Methods

How do you know a piece of software is completely safe? Regular testing can only find the bugs you think to look for. Formal methods take a different approach. They use math to prove that a system works exactly as it should. It is a strict process. You write down the exact rules, then verify the code, just like a mathematical proof. We mostly use this in critical applications such as airplanes, medical devices, and spaceflight. In those fields, a simple software crash is not an option.

Functional programming

Functional programming treats coding a lot like math. Instead of giving the computer a list of steps to change data, you write pure functions. A function just takes inputs and gives outputs. It does not mess with anything else in the background. As a result, your code becomes much more predictable. When you avoid hidden changes and shared states, finding bugs becomes much easier. It takes a different mindset to learn, but it leads to very clean and reliable software.