<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Course Material on Interaction Programming</title>
    <link>https://www.ida.liu.se/~729G87/course-material/</link>
    <description>Recent content in Course Material on Interaction Programming</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 26 Oct 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.ida.liu.se/~729G87/course-material/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Remote Access</title>
      <link>https://www.ida.liu.se/~729G87/course-material/remote_access/</link>
      <pubDate>Wed, 09 Nov 2022 09:40:00 +0100</pubDate>
      <guid>https://www.ida.liu.se/~729G87/course-material/remote_access/</guid>
      <description>&lt;p&gt;You have three main options for accessing the Linux environment from your own computer:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Use &lt;a href=&#34;https://www.ida.liu.se/~729G87/course-material/vscode/#remotessh&#34;&gt;Remote SSH to connect to the LiU Linux environment through VS Code&lt;/a&gt;. &lt;strong&gt;(Strongly advised!)&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Login to the shared remote server using ThinLinc. (Somewhat janky and unreliable due to high load.)&lt;/li&gt;&#xA;&lt;li&gt;Use RDP to connect to available computer in a computer room. (Dependent on available computers in the computer rooms.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Information on the last two options can be found on university web page &lt;a href=&#34;https://liuonline.sharepoint.com/sites/student-under-studietiden/SitePages/en/Fjarrinloggning.aspx&#34;&gt;Remote login&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Visual Studio Code</title>
      <link>https://www.ida.liu.se/~729G87/course-material/vscode/</link>
      <pubDate>Sun, 29 Oct 2017 21:12:29 +0100</pubDate>
      <guid>https://www.ida.liu.se/~729G87/course-material/vscode/</guid>
      <description>&lt;p&gt;Visual Studio Code, or VS Code, is the recommended editor to use for this course. Using VS Code, you can use the &lt;em&gt;Live Server Extension&lt;/em&gt; which allows you to easily view the current state of your web pages.&lt;/p&gt;&#xA;&lt;p&gt;We strongly advise that you and your lab partner meet at one computer to work on the assignments and project. However if this is not possible, the &lt;em&gt;Live Share Extension&lt;/em&gt; allows you to share your editor workspace with your lab partner and simultaneusly edit the same files. The local HTTP server that Live Server runs can also be shared using Live Share making remote collaboration easier.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lectures</title>
      <link>https://www.ida.liu.se/~729G87/course-material/lectures/</link>
      <pubDate>Wed, 28 Sep 2016 00:00:00 +0000</pubDate>
      <guid>https://www.ida.liu.se/~729G87/course-material/lectures/</guid>
      <description>&lt;div class=&#34;ingress&#34;&gt;&#xA;&lt;p&gt;Below you can find an overview of the lectures that will be given during the&#xA;course together with links to lectures slide, code written during the lectures&#xA;and pointers to the recommended reading material for each lecture.&lt;/p&gt;&#xA;&lt;p&gt;Lecture slides will be updated during the course and will be made available around the time of each lecture.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;lecture-11--12-introduction-to-html-and-css&#34;&gt;Lecture 1.1 &amp;amp; 1.2: Introduction to HTML and CSS&lt;/h2&gt;&#xA;&lt;h4 id=&#34;slides&#34;&gt;Slides&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lecture 1.1 &lt;a href=&#34;l1_1-ht25.slides.html&#34;&gt;Web version&lt;/a&gt;, &lt;a href=&#34;l1_1-ht25.slides.html?print-pdf&#34;&gt;Searchable version&lt;/a&gt; (HT25)&lt;/li&gt;&#xA;&lt;li&gt;Lecture 1.2 &lt;a href=&#34;l1_2-ht25.slides.html&#34;&gt;Web version&lt;/a&gt;, &lt;a href=&#34;l1_2-ht25.slides.html?print-pdf&#34;&gt;Searchable version&lt;/a&gt; (HT25)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;code&#34;&gt;Code&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/14f93a2e6e&#34;&gt;Trinket 1: Basic HTML&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/e8d82af055&#34;&gt;Trinket 2: Basic CSS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/e3ef9c4225&#34;&gt;Trinket 3: More CSS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/f8f4b445e6&#34;&gt;Trinket 4: Multiple classes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/3c718fe5f6&#34;&gt;Trinket 5: Layout sandbox&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/13f1040d2c&#34;&gt;Trinket 6: Flexbox&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;reading-material-tips&#34;&gt;Reading material (tips)&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started&#34;&gt;MDN web docs - Getting started with HTML&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps/Getting_started&#34;&gt;MDN web docs - Getting started with CSS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model&#34;&gt;MDN web docs - CSS Building blocks, The box model&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout&#34;&gt;MDN web docs - CSS Layout&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://css-tricks.com/snippets/css/a-guide-to-flexbox/&#34;&gt;A Complete Guide to Flexbox&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;videos-tips&#34;&gt;Videos (tips)&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=Sp9ZfSvpf7A&#34;&gt;Inspecting the CSS Cascade using Firefox DevTools&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;other&#34;&gt;Other&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://flexboxfroggy.com/&#34;&gt;Flexbox Froggy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.flexboxdefense.com/&#34;&gt;Flexbox Defense&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lecture-2-introduction-to-javascript&#34;&gt;Lecture 2: Introduction to JavaScript&lt;/h2&gt;&#xA;&lt;h4 id=&#34;slides-1&#34;&gt;Slides&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lecture 2 &lt;a href=&#34;l2-ht25.slides.html&#34;&gt;Web version&lt;/a&gt;, &lt;a href=&#34;l2-ht25.slides.html?print-pdf&#34;&gt;Searchable version&lt;/a&gt; (HT25) &lt;em&gt;(This is a merge of actual lecture slides and the recovered broken slide deck I had planned to use, hopefully the order makes sense. The examples have now been run and have actual outputs.)&lt;/em&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;code-1&#34;&gt;Code&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/b63f83425f&#34;&gt;Trinket, functions&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/0b504fb397&#34;&gt;Trinket, template for demo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://trinket.io/html/29dbe2d04c&#34;&gt;Trinket, final state of demo files&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;reading-material-tips-1&#34;&gt;Reading material (tips)&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction&#34;&gt;JavaScript Guide in the MDN web docs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Using the console in Google Chrome &lt;a href=&#34;https://developer.chrome.com/docs/devtools/console/&#34;&gt;link1&lt;/a&gt;, &lt;a href=&#34;https://developer.chrome.com/docs/devtools/javascript/&#34;&gt;link2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Using the console in Firefox &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector&#34;&gt;link 1&lt;/a&gt;, &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Tools/Web_Console&#34;&gt;link 2&lt;/a&gt;, &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Tools/Debugger&#34;&gt;link 3&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;js-videos&#34;&gt;Videos (tips)&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://youtu.be/B1PPzML9Z9M&#34;&gt;JavaScript Quirks for Python Developers&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For those of you familiar with Python, JavaScript is just about similar enough to give you a false sense of security, but different enough to trip you up. This covers some of the most important differences to keep in mind.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://youtu.be/pobWEaHNChY&#34;&gt;JavaScript var, let, and const explained&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Why you should prefer &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; over &lt;code&gt;var&lt;/code&gt;. (And maybe &lt;code&gt;const&lt;/code&gt; over &lt;code&gt;let&lt;/code&gt; too.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://youtu.be/cMt9U6kCWsM&#34;&gt;The different types of JavaScript functions explained&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Useful for understanding function expressions vs declarations vs arrow functions.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lecture-3-more-on-event-handling--animation&#34;&gt;Lecture 3: More on event handling + animation&lt;/h2&gt;&#xA;&lt;h4 id=&#34;slides-2&#34;&gt;Slides&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lecture 3 &lt;a href=&#34;l3-ht25.slides.html&#34;&gt;Web version&lt;/a&gt;, &lt;a href=&#34;l3-ht25.slides.html?print-pdf&#34;&gt;Searchable version&lt;/a&gt; (HT25) (Now with updated anime.js examples compatible with version 4.x!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;code-2&#34;&gt;Code&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/jodyfoo/pen/poWzOJR&#34;&gt;Box sliders using id&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/jodyfoo/pen/YzrKOgP&#34;&gt;Navigate DOM using event.target&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ida.liu.se/~729G87/course-material/lectures/examples/card-bubble/card.html&#34;&gt;Event bubbling demo&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/jodyfoo/pen/ZEXzmaW&#34;&gt;Global event listener&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/XJdgRrN&#34;&gt;Animating CSS properties&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/OPNgmbY&#34;&gt;Animate when clicked&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/qEZjmro&#34;&gt;Animating transforms&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/Kwzqmqz&#34;&gt;Animation parameters&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/azNwWRG&#34;&gt;Easings&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/QwNggLp&#34;&gt;Click and hide using onComplete&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://codepen.io/Falkenjack/pen/yyOXXYP&#34;&gt;Click and hide using promise&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lecture-4-web-components&#34;&gt;Lecture 4: Web Components&lt;/h2&gt;&#xA;&lt;h4 id=&#34;slides-3&#34;&gt;Slides&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lecture 4 &lt;a href=&#34;l4-ht25.slides.html&#34;&gt;Web version&lt;/a&gt;, &lt;a href=&#34;l4-ht25.slides.html?print-pdf&#34;&gt;Searchable version&lt;/a&gt; (HT25)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;code-3&#34;&gt;Code&lt;/h4&gt;&#xA;&lt;p&gt;_ &lt;a href=&#34;https://codepen.io/jodyfoo/pen/xxzjeqa&#34;&gt;Web Component without shadow DOM&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
