Q:

How do client side applications work?

I am a complete beginner when it comes to web development. My programming background mainly consists of algorithms as well as local windows forms showcasing said control mechanisms. In order to explain my algorithms I tend to make some visualization tools, which are great for debugging as well. I usually distribute my tools over email as a compiled exe(c++ or c# win form) to my students. (I teach mathematics for a small class)
It then came to me, how great would it be, if I wouldn't have to give everyone a copy of my tools to use and learn, but to set up a web page for my applications. Ideally the browser would load the page from the server and from then on, no communication would be necessary to use the page/application. So the application would run client side.
Is it possible to run programs like that? Can such a client side (?) program access files on a computer, like a file upload? I understand that you can upload files to servers, but the main goal would be i could just "upload" a file to the client browser from the client pc, run some code on it client side and then display some numbers. All without any communication with the server, from where the page was loaded. Would something like this possible? If so, please specify some pointers to the right directions!
Thank you in advance.

A:

If I understand you correctly. You Teach algorithms for a class or something like that.
I see that you already have binaries compiled. So, there's this new paradigm of running binary code on Web (YES NOT JS!), check it out here:
https://webassembly.org/getting-started/developers-guide/

OR

(Re)write your algorithm(s) in JavaScript. What I mean by that is:
index.html

algorithms.js

In algorthims.js you write function(s) like:

const binarySearch = (array, element) => {
/* your logic here */
return 
}
const reverseString = (sentence) => {
  /* your logic here */

}
Similarly, write other functions required.

This way you have everything loaded when the rendering is done and you can run this via just the client side

