Programming with JavaScript: Algorithms and Applications for Desktop and Mobile Browsers