Virtually every time we interact with a computer program — on our computer, on our tablet, on our smartphones…on our SmartTVs, or our refrigerators … or, on our for some reason also connected toaster oven — we’re in reality interacting with a distributed application.
| |
The device we hold in our hands for sending an email (or, into which we slide our sliced toast … ) will, at the very least, communicate with a server, somewhere out there in “the cloud” — and, most often, communicate with a whole host of servers, and computers … and does so across this thing called “The Internet”.
| |
A corollary to this is, that every relevant modern application is a distributed application, which uses the Internet and the cloud — and, in a nutshell, the purpose of this MODAL is to teach you how to competently develop those applications.
| |
Specifically, we will give a high-level view of “how the Internet works”: what is routing, and DNS? What is TCP/UDP/IP? What’s a proxy? A switch? A router? What is an IP address? And what’s this thing called IPv6?
| |
With this baggage, we will work through a set of tutorials, introducing the (language) primitives for distributed systems developments — including interactions with (for example) web-servers, and with Twitter, as well as development of your own server applications….in fact, we will in one of those tutorials develop a on-line, multi-player, game.
| |
We will offer these tutorials in Java — and, also in C, for those looking for an opportunity to pick up a (professional) programming language. And we will see how easy it is for a client program written in C to communicate with a server written in Java (and vice-versa, of course).
| |
Once you’ve worked through the tutorials, you’ll be teaming up with your best buddy, and together put what you’ve learned to good use: you’ll work together on a project of your choosing — either, one defined by yourself, or one from among a catalogue proposed by your teachers. This may include topics such as collaborative software, multi-player games, a “social media aggregator” — or maybe even a network of annoying Twitter-bots, which will retweet and/or debunk the regurgitations of your favorite politicians … your imagination is (literally) the only limit …
| |
Student limit: | 24 | Prerequisites: | INF321 or INF311 | | (Having followed INF411, INF421 and/or INF431 probably won't hurt) | |