Headings denoted with an asterisk ( * ) is retrieved from the course syllabus version Autumn 2021
Content and learning outcomes
Course contents
JavaScript for interaction programming, callbacks, synchronous and asynchronous code, functional programming. Web development interfaces (API): REST, JSON, AJAX, Fetch, Promises. Local data: cookies, local storage. User interfaces, appearance: HTML, CSS, DOM API, other tree based frameworks for user interfaces (e g Android). User interfaces, interaction: events, event levels, event propagation, event management. User interfaces, architectures: Model-View-Controller. User interfaces, frameworks: React, Angular, Vue.
Intended learning outcomes
Having passed the course, the student will be able to
choose appropriate technical platforms or JavaScript frameworks to create useful data persistent interactive web applications or native applications
program interactive web applications according to Model-View-Controller or related architectures
program systems that read data from, and send data to, web interfaces with good use qualities
assess and improve the usability of existing interactive web applications
cooperate with others to implement interactive web applications.
Preparations before course start
Recommended prerequisites
Corresponding to the course Human-Computer Interaction, introductory course (DH1620/DH2620) and programming competence, elements of object-oriented programming.
A lab week takes 1 week. Lab week 1 (Tutorial Week 1, TW1) is individual. Check under KTH Git that you have received your individual git repository. The repo is accessible only to you and the course team. If you do not find your repo, or cannot access it, or for any other issue, please write to dh2642-ta@eecs.kth.se
Lab Weeks 2 and 3 are done in pairs. Please join a Lab group ASAP, under the Canvas People menu. Please do so by the end of the first course week, so we can create your lab group repository.
Latest when you submit every lab (Mondays), please book at 5-min lab examination slot (typically on Tuesday or Wednesday). This is typically done in an online spreadsheet, which will be shared with you during the first week of the course. If the 5 min are not enough (they usually are), you can talk more to a member of the course team.
Literature
There is no book, as the Interaction Programming technologies are in continous dynamic change. Besides, there are many Web resources about the technologies involved (JavaScript HTML, CSS, JSX, React, Vue, Firebase)
The Canvas pages and the course videos present a selection of concepts and technical items such as HTML elements, CSS style properties, framework features like component state, lifecycle, etc. Based on this selection you can search further information on the web. Searching information is an important engineer skill. Still, all the technical items needed for the lab are explained in the course material.
Equipment
You can use any own computer, no special software is necessary.
Software
Web browsers like Google Chrome and Mozilla Firefox include very advanced developer tools which we use in the lab. We strongly suggest using Google Chrome at the lab, especially for the unit tests.
You will also need an editor like (free) Visual Studio Code, and launch a few commands in the Terminal. The course uses Git for version control we create a repository for each student (week 1) and lab pair (weeks 2 and 3). We also make heavy use of Zoom for lab help (all labs are digital) and lab examination, as well as project help.
Support for students with disabilities
Students at KTH with a permanent disability can get support during studies from Funka:
PRO1 - Project, 4.5 credits, Grading scale: A, B, C, D, E, FX, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
The section below is not retrieved from the course syllabus:
Each lab week is examined with a 5 min Zoom discussion on Thursdays and Fridays. The discussion is individual, with a course assistant. If more time is needed, more time will be allocated, typically with another course assistant, teacher or with the course examiner.
At the start of the 5 min Zoom session please show you identification (passport, identity card) and prepare your app (vue.html, react.html) on your shared screeen, as well as the unit tests (test.html)
In the Project we expect each group member to commit to the project git repository in reasonable poportion. Each group member will submit an individual self-reflection where they will describe their project contribution, as well as reflect on the process and learning from the project experience.