MEDIAART 3D03: Interface, Code, Data
Note: This is the "fluid syllabus" for the course MEDIAART 3D03: Interface, Code, Data at McMaster University (Winter 2026 semester). Expectations, policies, rules, etc will be the same as the official course outline (which current students can access through Avenue and Simple Syllabus), but this fluid version is formatted differently to take advantage of web possibilities, can be navigated in different ways, has up-to-date links to more detailed resources of various types, and will be updated to refer to new resources as they become available.
Quick Links
Course Description
From the McMaster Calendar: "A hands-on exploration of the role of interfaces, code, and data in Media Arts practice. Students will explore the possibilities of formats such as visualizations, websites, mobile apps, databases, games, live coding performances and generative art. Lecture, web module, tutorial (three hours); one term Prerequisite(s): Registration in Level III or above of a Multimedia, Media Arts or Communication Studies program Antirequisite(s): MEDIAART 2A06, MMEDIA 2A06"
Welcome to MEDIAART 3D03: Interface, Code, Data, a course in which we'll explore programming and the web through a media arts lens. This will be the first time this new course in the Media Arts program has been offered (and my 69th course as an instructor) and I'm looking forward to thinking with you all about it. Your thoughts, choices, work, and engagement will have a strong impact on what this course becomes for future students.
I strongly encourage each of you to visit me during my office hours (Wednesdays 3:30-4:30 PM, shortly after our Wednesday full-class meeting). I’m happy to talk about anything related to this course, and I’m also happy to talk about other things as well (e.g. games, music, careers, graduate school, etc.)! If the time of my regular office hours doesn’t work for your schedule, please do get in touch by email so we can find another time that does work.
The course is organized into six areas/learning outcomes, which we will develop through both in-class activities and larger projects:
- Codes: We will examine and directly translate a series of codes related to contemporary web technologies (e.g. ASCII, QR codes).
- Devops: We will use the UNIX terminal to manage files, filesystems, and web servers.
- JavaScript: We will read and write JavaScript code to support interactive interfaces, to transform and visualize data, and to query and update databases.
- Web Interfaces: We will design graphical interfaces using HTML and CSS.
- Web Pasts, Presents, Futures: We will imagine alternative presents and futures for the web, informed by an analysis of the web's past and present.
- Generative Art and Live Coding: We will explore the intersection of the web (and programming technologies more generally) with art, games, and improvisation.
Required Materials and Texts
-
Access to a Windows, MacOS, Linux, or Chromebook laptop that can be brought to our class meetings, and on which a UNIX terminal and node.js can be installed (support for this installation process will be provided during and outside of class time).
-
There are no other required materials/texts, and all necessary reading/reference materials will be freely available on the open web (including but not limited to materials provided here at my web garden at https://dktr0.github.io).
Class Format
In Person
Our full-class meetings will largely consist of active learning activities involving trying things out on our laptops individually and in small groups. Regular attendance at these meetings will be crucial to developing competence in the six areas/learning outcomes addressed by the course (it will likely be much more difficult to meet the course requirements in the absence of regular attendance). Because any and all of the "fixed content" of the course will be posted to my web garden, there will be no slide decks used during our full-class meetings. Simply put, to participate in and benefit from our meetings, you will need to be there (nonetheless: if/when you are ill, you should simply not come to class, for your health and that of others).
Asynchronous peer-to-peer interaction during the course will be supported through a dedicated Discord server (invite link to be provided through Avenue to Learn, and not to be shared with individuals outside of our class). Joining this Discord server is optional but recommended - I encourage everyone to join it and use it to communicate in between class meetings (here is Discord’s privacy policy). Please ensure that your handle on the class Discord server reflects the preferred way that we should call you, so that we all know who is who (Discord allows you to set a specific name for a specific server, by the way).
Course Evaluation
Assessment in this course works in a different way than what you might be used to. For several years now I have been exploring what is sometimes called “alternative grading.” I am convinced it is a profoundly positive thing, and am constantly striving for assessments that (a) provide a high level of clarity about how work meets or does not meet requirements, (b) invite artistic work whose motivations and aesthetic choices are different than my own, (c) support learning through feedback loops and resubmissions, and (d) ensure short-term difficulties (whether connected to disability, illness, emergencies, workload, etc) present no obstacle to earning the full range of available grades.
In this course, the grade on McMaster's 12-point scale is determined by adding the following (assuming the minimum achievement to pass the course has been met, see further below):
- +1 project #1 meets all requirements (due 10 PM on Fri 13 Feb, on Avenue)
- +1 project #1 shared during showcase #1 (during class meeting on Mon 23 Feb)
- +1 project #2 proposal meets all requirements (due 10 PM on Fri 13 Mar, on Avenue)
- +1 project #2 meets all requirements (due 10 PM on Thu 2 Apr, on Avenue)
- +1 project #2 shared during showcase #2 (during class meeting on Mon 6 Apr)
- +1 for every 2 out of 6 asynchronous, open-book, re-doable tests completed to 80% correct (can be earned 3 times; tests available between Mon 23 Feb and 10 PM on Mon 30 Mar)
- +1 for each of 6 areas/learning outcomes completed to 80% on registrar scheduled final exam (can be earned 6 times)
- +1 for peer recognition (top 3 places or honorable mention) in either project showcase (can be earned twice)
- +1 for instructor recognition for outstanding project work (can be earned twice)
That's a total of up to 18 points, relative to the mere 12 points of the McMaster grading scale! Obviously, the grade you earn will be capped at 12 points (sorry, no A+++++++ grades). Additionally, please note that the provision of many ways to earn the maximum grade is a universal accommodation for any and all challenges that may arise during your completion of course requirements (including those related to illness, emergencies, disability, MSAF, etc). I'm more than happy to talk and think with you about those challenges, at any time; however for grading purposes the accommodation for literally all of them will be to point you to the other ways of earning a higher grade in this course.
Note that there are no partial grades or credit for anything. Everything is either ACHIEVED or will be invited to RESUBMIT. Projects and proposals that are submitted in good faith (i.e. clearly represent a substantial quantity of work aimed at the requirements) but which do not quite meet the requirements will be given the chance to RESUBMIT within one calendar week of the date on which feedback is given (normally within 2 weeks of submission), up until the date of the final exam (TBD) after which no further resubmissions are possible.
As just one example of all this, imagine someone has completed and earned all of the points for project #1, has proposed and completed project #2 successfully, shared it at the first showcase, and completed all six asynchronous tests successfully. So far that would be a grade of 7. And now imagine they miss the project #2 showcase because they become very ill that morning. No problem! There are still 6 points available to them from the final exam (for which they should be well prepared if they have completed the asynchronous tests honestly and diligently), more than enough to still earn the maximum possible grade in the course (and that's not even counting the possibility of earning points through peer and instructor recognition of outstanding project work during the two showcases).
The minimum achievement to receive credit for the course is to submit at least one of the two projects, completely meeting the specifications for that project. If you do not successfully complete at least one of the projects, you will not receive credit for passing the course, regardless of what any other achievements in the class might have been.
Full details of the requirements for the two projects and proposals will be provided here in my web garden's section for this course. All projects and asynchronous tests are submitted/completed on Avenue to Learn.
Late Assignments
You are expected to plan work on the two projects (and the proposal for the second one) in a way that enables you to submit them by their stated deadlines. Please get in touch with me as soon as possible if it looks like that might not be possible. Please note also that you will not be able to share an incomplete project at a project showcase (and no credit is possible for showcasing a work if you do not showcase a complete work, without exception).
While I’m here... Have you been wondering why all of the due dates in this course outline (and on Avenue) are set at 10 PM? Because sleep is vital to our health and wellness! The 10 PM due dates are intended to communicate that, wherever possible, as a matter of healthy and sustainable working habits, we should plan to complete our work in a way that allows us to sleep during the night.
Absences, Missed Work, Illness
You are expected to show up on time for full-class meetings, ready to participate. No aspect of the final grade is predicated directly on attendance (although attendance is a very good idea) so there is no need to contact me about absences unless you wish to think together about strategies for recovery of learning. If you are not present for a showcase but have a work to share, you are responsible for making arrangements (e.g. with peers) to make that happen.
Universal accommodation for items of work that are not completed is provided by the fact that there are many ways to earn the full spectrum of the McMaster 12-point grading scale. The asynchronous tests in parts B and C are available for a full five weeks and are infinitely re-doable during that time. After that time, they are strictly unavailable (no exceptions given the length of the window and the fact that there are other ways to earn the grades), so do plan to start working on them early in the window of their availability.
Generative AI: Use Prohibited
Students are not permitted to use generative AI in this course. In alignment with McMaster academic integrity policy, it “shall be an offence knowingly to … submit academic work for assessment that was purchased or acquired from another source”. This includes work created by generative AI tools. Also stated in the policy is the following, “Contract Cheating is the act of “outsourcing of student work to third parties” (Lancaster & Clarke, 2016, p. 639) with or without payment.” Using Generative AI tools is a form of contract cheating. Charges of academic dishonesty will be brought forward to the Office of Academic Integrity.
For official McMaster University policies/statements related to this course, please see the Simple Syllabus outline for this course.