This is a list of my courses at the Salzburg University of Applied Sciences. Resources (slides, links, excercises, …) are available through the Mediacube Wiki.
Full information about the bachelor and master degree programs, can be found on the official website.
Undergraduate courses
Frontend development 1
Students develop and implement the front end of a web application. They are familiar with the principle of feature detection (instead of browser detection), are able to use shivs and polyfills in order to avoid incompatibility with browsers. They understand how animations work in CSS and JavaScript, can use setInterval, setTimeout and requestAnimationFrame in a targeted way in order to program animations. They can write a jQuery plug-in in order to reuse JavaScript/jQuery code. They know the programmes that lead to poor performance in web applications, are able to carry out measurements and optimise the application. They have an in-depth understanding of the working approach of JavaScript interpreters in relation to inheritance, data types and garbage collection. They are able to use debugger and dev tools for JavaScript. They are familiar with design patterns for JavaScript and can use these successfully.
Contents: The latest tools and themes in front end development, animations, query plug-ins, web performance, inheritance in JavaScript, design patterns for JavaScript.
Frontend development 2
They develop and implement the front end of a web application that is also suitable for use on a smart phone or tablet (mobile web) including offline functionality. They can use a MV* JavaScript framework. They know the properties of HTML, Canvas (2D, 3D) and SVG, and can use them in a targeted way to depict graphics and animations. They are familiar with package manager for JavaScript and can manage dependencies and draw up a project. They can test JavaScript applications. They use tools to examine code quality.
Contents: Front end for mobile web, offline functionality, MV* framework (e.g. Ember, Backbone or Angular), Canvas vs. SVG, managing dependencies, testing, the latest developments and tools.
Web Production Workflows
Students know the specifics of web workflows and are able to use agile methods in web projects. They are familiar with the advantages and disadvantages of pair programming and are able to work in pairs with different people. They are able to use a distributed version control system within a team of developers: branching, merging and writing log notifications. They develop in small sections which are each separately checked in. They know why development, staging and production servers are required in web development, are familiar with the workflow and can successfully develop, push and deploy. They know various types of automated tests and can write unit tests for models. They can use a SCRUM board (real and virtual). They can formulate user stories and acceptance criteria.
Contents: Agile methods, XP, SCRUM, pair programming, version control with git, test-driven development. Development, staging and production servers, deployment, user stories.
Web Operations
They are able to install and configure a production web server with virtual hosts and SSL, and are familiar with their configuration files, log file and folders. They can use tools to supervise the operation of the server and alert them in the case of downtime. They can configure a load balancer.
Contents: UNIX, web server Apache(plus possible alternatives), monitoring, load balancer.
Bachelor Thesis
They know complex concepts and advanced theories from the compulsory elective 1 and can apply these in a specialist reflected bachelor thesis to the concrete tasks of an interdisciplinary multimedia project. They are aware of the latest specialist literature and possible research literature on the topics relevant to the interdisciplinary multimedia qualification.
Contents: Supporting the bachelor thesis 2; linking practical problems to theoretical background knowledge, possible link to current research.
Graduate courses
Client-side web engineering
Students are familiar with various architectures for Javascript applications for complex frontends and use these in a targeted way. They develop web applications which go beyond the classic request/response scheme of HTTP and AJAX (real-time web, server push, publish and subscribe). They are familiar with tools for mobile and offline first web applications and know the latest technology status in the web browser.
Content: Web components, different variations of MVC patterns, one-way/two-way data binding, websocket, WebRTC, local storage, indexdb, pouchdb, current developments inECMAScript, transpiler, performance metrics, mobile, current topics.
Continuous delivery
Students are familiar with techniques, processes and tools which optimise the roll-out process of web applications and enable the automatic, fast and reliable release of new software versions. They have an understanding of the tasks involved in development, test, integration and productive environment and can implement test automation, continuous integration and continuous installation.
Content: Automation, continuous integration (e.g. Jenkins), deploymentstrategies (cloud, on-premise, container/virtualisation), DevOps, infrastructure as code, test automation, dependency management, configuration management, security, *aaS.
Scalable web architectures
Students are familiar with concepts and architectures for scalable web applications and can assess which architecture a web application requires. They are able to plan a web application and develop and supply this with continuous delivery. They can monitor the performance of a web application on various levels and correctly diagnose problems and set measures to rectify these.
Content: Multi-tier, message queues, service oriented architecture and microservices. logging,profiling, monitoring, C10k problem, The Twelve Factor App.
Rapid prototyping
Students put idea approaches from the teaching module Multimedia Masters Project: Development & Presentation into practice in the form of software prototypes and evaluate the results with view to applicability and further development for masters projects. Relevant programming languages and frameworks from the fields of Game & Simulation Engineering and Web Engineering are used. Content: Technology selection and implementation coaching.