Fall 2023
Introduction - Whuuuut(s)?
Module 1 - Foundations (HTML / CSS)
Module 2 - Vanilla & Asynchronous Javascript
Module 3 - Working with External Libraries*
Module 4 - Working with Graphics & Pixels*
Module 5 - Coding with Generative AI
Module 6 - Developing Locally
Module 7 - Servers
Module 8 - Getting Connected with Sockets
Module 9 - Progressive Web Apps
Module 10 - Git and Github
Note: * indicates a module that last two weeks.
Welcome, everyone, to the class! Let’s first introduce ourselves and talk about our interests. Then we will go over the syllabus, course outline, how to use the class website, how to contact me and Lucia, how to book drop-in hours, etc. We’ll also discuss the ITP/IMA Code of Conduct.
📕 Reading - due before class on Thu Sep 7th: -
1) Please fill out this short questionnaire so we can get to know you a little better.
⏱ Approx. time to complete: 5 minutes
2) Read the Wikipedia page on net.art and share anything you find interesting, inspiring, offensive, or otherwise thought-provoking or worthy of discussion among the class. Put your thoughts in this Google Doc.
⏱ Approx. time to complete: 40 minutes
✅ Total time: 45 minutes
CLASS NOTES have moved!
Discussion topics:
HTML stands for Hyper Text Markup Langauge and it is composed of:
In-class exercise:
1) Download a text editor like VS Code.
2) Using the HTML boilerplate page as a starting point, quickly work up an About Me page. The page should include:
- Your name (your name perhaps or a pithy quip about yourself - Gen Z introvert on the verge of complete public meltdown🍦🤸🏼♂️✌️)
- Hometown(s)
- Educational background
- A short story about what you did this summer, or perhaps a trip you recently took
- Previous Occupation(s)
- Hobbies
- Interests
- Pictures
- Videos
3) Do not worry about making the page “look good”. We are just making a list right now. We will use CSS to change the style later.
📕 Reading - due before class on Tue Sep 12th Thu Sep 14th:
Read Emma Rae Norton’s hand coding round robin workshop guide for inspiration. There is also some interesting ‘not required’ reading. The HTML code for the workshop page can be found here.
It’s ok if there are things you don’t understand on the page. Try to Google them, reference the W3 Schools site, or just make a note of your questions and book a drop-in appointment or pop up a hand in class!
The code is written in such a way as to be more easily understood and read by humans. There is a intentional connection left bare between the code and the output, as if the author is letting you into the art studio to watch them paint - quite a different feeling from when you inspect the source of any modern-day sites which obscure much of the code, often by design.
Lastly, if you’re not familiar with School For Poetic Computation (SFPC), check them out! They regularly do shows of student work which are always inspiring and thought-provoking. Lots of ITP/IMA alums are involved there as well.
⏱ Approx. time to complete: 45 minutes to 1 hour
CSS stands for Cascading Style Sheets.
<p style="color: green;">Here's some green text!</p>
<style> <!-- CSS block goes here --> </style>
<link rel="stylesheet" href="style.css">
✔️ In-Class Exercise
about-me.html
page inside of this folder or whatever you have called your file. You can also experiment uploading other pages and file types as well.
This is how you will turn in your assignment link so get familiar with how to navigate these pages. Later, we will move to using Github Desktop and Github Pages.
📌 Assignment 1 📌 - due before class on Tue Sep 19th:
Hand-code your own HTML web page and publish it Neocities. Here are some types of pages that you could choose for inspiration:
Feel free to experiment and try some different things out. I’d like to see that you took the time to explore. Also, take a look at some of the student work from the Emma Rae Norton’s hand-coding-round-robin archive and see what kinds of things might be fun to try like, for example, the <marquee>
tag, playing with transform
, or getting completely wacky with animation: rotate 1s alternate infinite;
😅…
Here’s a handy HTML / CSS Cheat Sheet.
⏱ Approx. time to complete: 3 hours
⏩ Submit the Neocities link to your assignment on this form.
If HTML & CSS are the body and the clothing, Javascript makes us dance mmmmk 🤸🏼♂️
- Navigating the DOM
- Using
document.getElementById()
- Callbacks, making do without
draw()
setTimeout()
to trigger events, make loops 🔄
async/await
using fetch()
URL
() => {}
try/catch
blocks for errorsSome relevant Coding Train Videos:
📕 Reading #2 - TO DO before class on Thu Sep 28th:
We will be setting up Github accounts to turn in our classwork from here on out. Assignment 2 will be turned in and published as a Github Pages site. We will also be able to easily include Assignment 1 into this platform as well.
https://github.com/yourusername
where yourusername
is the user name you chose when you just signed up. For example, my link is https://github.com/billythemusical
.📌 Assignment 2 - API APP📌 - due before class on Thu Oct 5th:
Build your own interactive API app! You can pick from the list of app ideas below and make an interactive app that does the following:
Kudos/bonus points for sleek UI/UX or totally retro/expertly awkward designs. ◻️ // 👹
⏩ Once you’re done, commit
your changes in Github Desktop and push
your changes to Github. Then share the link to your private repo this form.
For now, this repo will be set to private so that your API keys are not exposed to the wider web. We will have set up your repositories to be shared with us instructors in the initial setup. Later work will be possible to use public repos and Github Pages.
⏱ Approx. time to complete: 4-6 hours
Check in on Assignment 2
Fun external libraries
Warning: You may see ANONYMOUS functions🕵️♀️
() => console.log('say wha?')
…for Reading 3 & Assignment 3
We will be working in randomly chosen groups for these Assignments. Pick an an open source library that you would like to use for Assignment 3 below and share the name of the library and CDN link in the “link to assignment” space on this Google form. As long as one of you turns in the form, it will count for all in the group.
For example, if I was using the Green Sock library, my answer would be “Green Sock Animation Library https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js”
Here are some you can choose from, but don’t feel limited to these!
Now to spread your wings and fly out into the world of open source on your own! Only one person in your group needs to create the repo to turn in the assignment, but all should contribute to the work:
Style this special page using this Markdown cheatsheet. We’ll be using the README page more now to document our work and process.
When your group is done, remember to:
- save your work
- commit
it
- and push
the changes to Github using Github Desktop!
Turn in your group’s final repo link (or Github Pages link) on this Google form before class on Tuesday. Again, only one person in the group is required to do this. You will all receive the same grade for the assignment.
📕 Reading 4 📕 - due before class Thu Oct 19th:
Watch this Zach Lieberman talk on his creative coding and art practice and write your response on this Google Doc.
⏱ Approx. time to complete: 40-45 minutes
More creative coding links if you like:
Takawo - Daily Coding Live Sessions #05 [ARTSCLOUD] (Closed Captions can be set to English in the Settings ⚙)
📌 Assignment 4 📌 - due before class on Tue Oct 24th:
Take a photo(s) of your printed and hand-annotated pages and upload them to new Github repo called 04-pixels
and document your process in the README file. This can be a brief write up about:
code snippets
, techniques, or inspirations, etc.Upload the link to your repo to this Google form before class on Tuesday.
Hello LLM’s, goodbye homework!
Issues
Basic Terms/Parameters
Strategies for Prompting
Best Practices
Share your own LLM or AI tips, tricks, and resources here.
Here is a helpful list of Basic Linux Commands for your reference as well.
⏱ Approx. time to complete: 1.5 hours
$ node -v
Create a Digital Ocean account - Referral Link. I’ll be loose on this one due to late notice.
.env
filesSetting up a remote computer, aka a “droplet”, with Digital Ocean - INSTRUCTIONS HERE
Tired of the look of Git Bash? Take a crack at customizing it!
Get the Notify App that we built in class running on your Digital Ocean Droplet using pm2
. Again, the instructions are all located here.
Let the app run in the background throughout your week and experiment with different scenarios like the following:
06-assignment
public repo and include the code that you used in the final work.⏱ Approx. time to complete: 5 hours
Here is some great work from last year’s class for inspiration:
- Yuchi’s Journey App by June Bee
- Morning Weather Forecast by Drew Brown
Day 2
Day 3
Read this MIT Tech Review Article on China limiting screen time for it’s youth and write your response on this Google Doc. Pay particular attention to the following topics and please share your thoughts generally:
Upload the link to your repo to this Google form
Real-time communication
CLASS NOTES
LINK TO CLASS RECORDING
Reference
Begin the design process for your own Progressive Web App.
This reading assignment will be the first step for Assignment 9. You can turn anything you’ve worked on this term into an installable PWA. Or you can design something new you’ve been wanting to make.
Submit your idea on this form. You can indicate if you would like to work in a group and find a partner. Please let me know if you intend to work in a group.
Design your own PWA based on your ideas in the reading.
You can take a project you have done earlier in the semester and convert it to a PWA. Or you could design a new app! This could be a Weather App, a Timer App, a Socket Chat or ChatBot App, a Daily NASA Photos App, etc. You will want to document and reflect on your design process in the README file, including how your initial ideas from the reading assignment may have evolved over the course of the project.
If your app is just a front-end app, make sure the Github repo is set to “public.” This way a user can install the app just by visiting your repo’s Github pages site. If your app includes a backend component, make sure to include a link to the hosted app in your README, i.e. http://XX.XX.XX.XX:3000
In addition to the UI/UX design details you would like to include, the app must be satisfy the following technical criteria:
Here is some work from past semesters for inspiration:
Upload your code to a new public repo on Github called “09-pwa” and share this link in this Google form. If you’re using both backend and front end code, make sure both are included in your repo with a link in the README to the hosted app on Digital Ocean (or wherever it is hosted).
Basic Git commands