Diploma in Apple Development ๐๐ฉ๐ปโ๐ป: Coding One: Lecture 1: Introduction to the Diploma and Coding One unit.
Back to slide index.
๐๐ป Hi!
Welcome to the Creative Computing Institute!
Welcome to the Diploma in Apple Development ๐๐ฉ๐ปโ๐ป!
Before we begin, I wanted to announce that you are all worms now! Apple worms that is! ๐๐ชฑ. I want you to burrow inside of Apple over the next year and make beautiful things.
This is a brand new course, rewritten completely for the Apple Vision Pro and centred around Spatial Computing. I'd love to hear all your feedback - please please please
DM me on Instagram with your thoughts, or
email me, via my website, or just message me on the
CCI Slack. I'm particularly looking out for good YouTube channels, so please share those if you find them.
We are all going to be learning as we go along, so please be patient with me and Xiaowan and each other. We have three headsets to share, so please return them as you receive them from the technical team. We are in the process of organising Tuesday and Friday afternoon Vision Pro try out sessions. Please meet Pete Mackenzie, who is in charge of the technical team here at CCI, he's helping us set up the try out sessions. Pete?
By the end of this lecture, we'll have learnt about:
- How to confirm your attendance in class by using the Seats Mobile App.
- Introduction to the course and each other via the Diploma homepage, GitHub readme.md and the GitHub wiki.
- How to make use of the Disability services at CCI.
- How to make use of the Library services at CCI.
- How you can get support around the cost of living crisis.
- Selection of course representatives.
- 10 thoughts for the Future.
- My expectations of you through this year.
- Tutorials - every Monday morning.
- Important methods for succeeding on this course (and in general)
- My background.
- What is Creative Computing?
- What are we going to learn?
- Other coding resources.
- Some situating yourself in the world resources.
- Brain exploding resources.
- What are we going to make? How?
- Homework!
First, are you all on the CCI Slack? If so, let's move on to confirming your attendance in this class! This will be your responsibility to do in every class that you attend. If you miss classes, you will be contacted by the CCI admin team. This is important not just for your learning, but most importantly for your welfare.
- Download the Seats Mobile app from the iOS app store.
- Login with your UAL ID.
- Say yes to all the permission requests - notifications, Bluetooth (make sure it's turned on) and location.
- Then you should be able to simply check in.
- If you get stuck, message me on Slack for Student Guide or a video guide.
Next, let's go around the room and re-introduce ourselves, with how you like to be addressed, how you are feeling today and which BA you are on at UAL.
Let's take a look at the
Diploma homepage, GitHub readme.md and finally the GitHub wiki.
Please send me your GitHub ID's on Slack and I'll add you to the GitHub, so that you can edit your own introduction. Don't forget to find your Wu-Tang name! I'll demonstrate how to do that now. Is everyone on Slack? Where would you go to find out how to get on it if you aren't already?
Are any of you interested in becoming the course rep? We must recruit two as soon as possible. Who's interested? Slack me if you are - great for your CV. No voting, just volunteering.
This is the link to register, but please DM me on Slack first. The deadline for nominations is Friday 25th October. The course rep team asked me to say: "they will be asked to "purchase" a Course Rep membership on our website (but don't worry, it's free!)".
My expectations of you through this year:
- I expect you to be in person at CCI on the days that you have lectures - Tuesdays, Thursdays and Fridays.
- Make use of the other resources here at CCI. The technicians, the researchers the other lecturers.
- I expect you to be checking the CCI Slack at least once every day (apart from weekends). Download the iOS Slack app. Right now if you haven't already.
- You are expected to do 25 hours of work a week outside of lectures - i.e. Monday afternoons, Tuesday afternoons, Wednesday (all day), Thursday afternoons and Friday afternoons. Immerse yourself in the https://developer.apple.com site - so many great resources there, I'll be making use of them extensively too!
Tutorials - every Monday morning. Tutorials are every
Monday morning from 1030-1300 on the CCI Slack. They are 20 minutes long and can be about anything you like - the course, how you are, challenges you are having, ambitions, career advice, music selections. Whatever you like. I've got over 20 years of experience doing interesting things with computers, so make use of that! Let's look at the schedule for next Monday and the one after.
Important methods for succeeding on this course (and in general)
Some things to keep in mind:
- โ Cassie Robinson's thoughts
- ๐ Chuck Wendig on being a magic skeleton
- ๐ David Bowie on being out of your depth
- ๐ธ Yohji Yamamoto on copying
- ๐ On going slow
- ๐ Susan Wendell on hearing disabled people
- ๐ฆ A rubber duck
Just a little out of your depth is the right place to be.
Just try. As soon as you try you are way ahead of most other people.
Susan Wendell wrote powerfully about disability and feminism. What explosion of knowledge could you make with your life?
My Background
๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ Wales and being bored.
๐ง๐ปโโ๏ธ Teaching and psychic load and meditation.
What you are we going to learn in this next year?
We are going to learn about Creative Computing - a blend of Computational Thinking and Creative Coding.
What is Computational Thinking?
- To learn how see problems at many levels (abstraction), break down problems (decomposition), find the order in them (pattern recognition), make solutions using a series of steps (algorithms) and realise that you might be able to use that solution in lots of areas (generalisation).
- Most of all, to learn how to be autodidacts.
- First task: what is an autodidact?
Look it up! What did you find?
What is Creative Coding?
I believe all coding is creative, as all life is creative. Specifically, creative coding is about blending creative techniques with software engineering. I want you to learn how to write code but also how you could use computing to change your practice. You can make lots of earth credits writing software, but I'm much more interested in giving you the tools to change yourself, your practice and the world.
Next, a really important diagram.
Jim Campbell's formula for Computer Art. Realise that you can use things without understanding every aspect of them. All that computers do is process inputs into outputs. That's it.
But what are we going to learn?
Some situating yourself in the world resources:
We are in a stressful time at the moment. Here are some resources for situating yourself in the world, and how to keep going, set up a studio (if you want) and what you (maybe) should be doing:
Some brain exploding resources:
- Digital morphogenesis is the exploration of how shapes, forms, and patterns emerge in nature through the use of computational modelling and generative systems based on biological, chemical, and physical processes. It draws upon research from practically every area of the natural sciences and has applications in architecture, digital fabrication, art, engineering, biomedicine, and more.
- Wait but Why - lots of great essays on interesting things - I started with this one - Your Life in Weeks.
- Better Explained - the best site for getting explanations of Maths ideas graphically - I started with this article - Surprising Uses of the Pythagorean Theorem.
- Joscha Bach's lectures are always brilliant - lots of amazing thinking about love, the universe and what it means to be concious.
- Stanford professor Robert Sapolsky's opening lecture of the course entitled Human Behavioural Biology on how he aims to avoid categorical thinking.
- Jane Elliott's anti racist teaching.
What are we going to make?
You are going to make two apps, a prototype for a caring app in a group in Satial One and a playful app on your own in Spatial Two (with help from me all along the way). You are also going to make your own ML model in ML Two. BTW, the idea of the playful and caring approach comes
from this amazing presentation from David Graeber. More about him in a moment.
My aim is to have our final show in the Apple Headquarters in Battersea! I'm working on that as I speak. Would you like to see 2022/2023 cohort, 2023/2024 cohort projects again?
There are three units in each Block, lasting half the academic year. Coding, Spatial and ML. Coding 1 will teach you how to write in Swift and make apps using SwiftUI. Coding 2 will continue that process, learning more APIs from Apple, including more SwiftUI, ARKit, Metal and Vision. Spatial 1 will take you through making a prototype app in a group, learning RealityKit along the way. Spatial 2 will take you through making a full app on your own. ML 1 will explore existing Machine Learning models and ML 2 will take you through making new ones.
When learning to code and make apps for a brand new platform, there will always be a chicken and egg problem. Meaning I can't teach you everything at once, so sometimes you'll have to take what I say on trust, knowing that we will return to flesh out the details later. As I said before, this is a brand new course, so things are going to change as we go. We might overrun or underrun on lectures, I'll keep things up to date from week to week, please be patient with me!
Remember, my main aim is to turn you all into autodidacts that can learn anything for themselves in order to make whatever they want to make.