The Art of Abstraction - Computerphile
Вставка
- Опубліковано 28 чер 2024
- Abstraction is at the heart of everything to do with computing. James Clewett takes us through the layers abstracting the pixels forming this text on screen from the electrons in the computer.
/ computerphile
/ computer_phile
This video was filmed and edited by Sean Riley.
Computerphile is a sister project to Brady Haran's Numberphile. See the full list of Brady's video projects at:periodicvideos.blogspot.co.uk/...
"I like Windows Phone"
Wow, so he is the second user of it, now I know them all!
Q: "How do you take a child and introduce them to the concept of 1's and 0's and the logic gates"
A: Redstone in minecraft. It's one of the best learning tools for experimenting with logic and abstraction in an engaging way.
I've always wondered how the computer ACTUALLY worked - all the information behind the many layers of abstraction. What if digital technology died tomorrow and we had to rebuild it from scratch? I'd have no idea how and am simply dependent, standing on the shoulders of giants, but with no awareness of the details of their work. This video was awesome in providing some initial answers as to how digital technology works.
There is nice book related to this topic - Code: The Hidden Language of Computer Hardware and Software by Charles Petzold.
I feel like things like Arduinos and Raspberry Pis and similar things will give kids excitement to get into computers and such.
As 19 year old and second semester of college I think the problem is that kids are not being exposed to stuff like programming or working with logic gates, The only reason why I started is because I took a class called Digital Electronics back in the 9th grade I got 34% in that class but was really blown away, how complex PCs where compared to what they used to be and what drives them so i got into C# programming I've spent the Past 4-5 Years know programming random stuff for fun and it's great :) Also my senior year i retook that class and got a 96% because I didn't fully understand Flip-Flops. :/
This hit the spot for me. I really feel like we're flying into this world of computing largely unprepared. The average user doesn't care how things work anymore. And while we can't all be specialists in everything, if we're going to depend on computers and use them and unconsciously trust them the way we already do, I think we all have a certain responsibilities to ourselves, at least, to be a little more informed.
It's interesting to note that the same people who made that acorn computer he shows at the end are the same people who created the ARM (Acorn RISC Machine) processor that's powering his iphone :)
I was emotionally moved by this video...
Thank you, Brady and James!!! I love your videos and am loving this channel!
I've seen a lot of dubious introductions for teaching people about computer programming, but it seems like you guys are off to a great start with this channel. I really hope this channel takes off.
I feel like channels like these are what's going to help younger kids get into more tinkering.
Being so specific about what your problems where will certainly help make future videos more accessible.
What first got me interested in computer science were those TI-84 calculators. With the TI-84 calculators, you can actually write machine code directly to it, or Assembly which is preferable, so you can get really close to the hardware and understand how the processor works. I became obsessed with it for awhile and one week I even wrote an audio driver where you could write out songs with music notes and duration in a PRGM file and then run the driver and it would play it through through speakers or headphones. The fact I could get so close to the hardware allowed me to interact directly with the hardware of other devices. I've always kind of been curious to how computers work internally as well as how the software works on top of it. It's a pain these days that getting close to the hardware is much more difficult than it has ever been. I loved the TI-84 because I could literally send controlled electrical pulses out the I/O put in Assembly and measure them on a voltmeter. Trying to do something on such a base level with a 64 bit computer these days out a USB port is nowhere near as comprehensible.
Great job guys on computerphile so far guys! I am really excited to see what other concepts you will be exploring.
I've grown up with things I didn't/couldn't take apart yet I've learned a lot about how computers work from low level assembly to high level languages and repairing or upgrading consoles and computers.
This channel is getting even more exciting! I was hoping for some Dr. Clewett videos.
i love listening to james! he explanes things so well... pleas more videos with him!!
I dedicated the last 3 years of my life to a computer engineering degree just so I could understand how to go from transistors to high level programming. Each layer of abstraction is taught as a separate class. Digital design, computer organization, compiler design and digital electronics are the subfields that cover the entirety of this transition.
By far the best Computerphile video so far IMO.
I love his passion for these things, inspiring.
That's what I love about my Commodore 64. I can take it apart, remove and swap components, fix problems with some soldering, tinker and see what it's thinking with an oscilloscope, and turn it on to that lovely blue screen and talk to it with a computer program that can make it do anything I want. Studying the schematic and seeing the waveforms on the oscilloscope is all incredibly fascinating.
I like this guy, he explains things well and will hold this whole channel together I suspect. Lets have more of him.
It's a pity that many Computerphile clips end, just at the moment an intriguing question gets asked. That's a missed opportunity.
Thanks for making an hour of my life a wonderful pursuit of knowledge I yearned for.
An episode on each of the most important abstraction layers would be a great extension of this episode.
Finally James makes his long awaited debut on Computerphile
Well said. Thank you for posting this. I started learning computer concepts in the 80s. Looking forward to more videos like this.
I love opening up my computer to have a look at all the circuit boards and whatsits. Sometimes, I just sit and marvel at how amazing it is that this complex system of switches can simulate entire worlds for me to enjoy.
This has been my favourite so far!
Older computers had big parts more non-static sensitive parts, were crudely assembled, and could be put back together. Today, everything is nanometric, full of tiny SMD, glued, has to be destroyed to be disassembled, and has high functional value. We also live in a sheltered society that is mostly affraid of mental exertion and anything that can be construed to be dangerous in any way. That isn't going to encourage absolute curiosity in some young people.
There needs to be more videos on Abstraction in computing and software. In the description it states that "Abstraction is at the heart of everything to do with computing". Which is probably the most truthful statement you can make about computing as a whole. Just this one video isn't enough.
I feel so at home with Computerphile. I've always been into computer science and I've been programming for years yet I've never known anyone i can have an educated discussion about computers with. I always feel like there is a magic people are missing out on by not understanding the fundamentals of computing and logic.
I have the feeling this is turning into 1 big story, where we are at the introduction, instead of just separeted, independent videos. Can't wait for the next chapter ;-)
The first computerphile video that I really enjoyed. Please, make others like this one!
I'm 15 and I'm extremely curious about computers and how things work...
I went to the Technion (the Israel Institute of Technology) last year for a course for children and learned logics and binary (I worked with the software "Atanua") and I discovered a whole new world of numbers.
Then I learned through UA-cam about other bases. Now, I'm watching this channel (as well as Numberphile - a great channel) and I'm learning the other sides of math and technology. Love your channels!!
Great work! I knew all things James said in this video but I think it is great introduction to more difficult topics so everyone can understand them.
Where are the people interested in how things work? Well, even i, a teenager am fascimated and mindblown that you could build a computer out of such limited parts and i want to know how. Those interested in how things work are right here, watching Computerphile :)
There have always been people that didn't care to understand the abstraction of underlying technology, and there will always still be a small portion of the population interested in taking things apart. Most people might have a iphone, but there are still teenagers interested in rooting their android phone(like me!).
Sounds really cool, I'll do that. I'm actually just starting out as an undergrad in computer engineering. I don't expect to get any sort of wold class education from these videos, but one can always stand to benefit from experiencing the unique perspectives of experts in these fields. Even for subjects in which I'm proficient, I always seem to discover new insights the more I look. It's quite humbling.
Taking apart a laptop and a desktop and trying to understand how pressing keys out here were transferred on the screen is what got me into Computer Engineering. First year and I can say, I can't wait to go back to school and see what we'll be doing next. I've learned a lot but i have much more learning to do.
Great video, very well explained. I think abstraction is the single most important concept in computer science.
This video will be forever underated
This is freaking awesome!! More james please!!!
I really like where these videos are going! You should definitely do a video about logical operations on a physical and virtual level!
This video really brings fourth the argument that we should be teaching basic programming in schools. I got my first taste of computer science when I was a senior in High School and would never have known that I might have fallen in love with it if I hadn't taken some non-necessary class to fill my schedule.
I love this professor, please do more vids with him, I think he will be the James of Computerphile.
James is fantastic. Also love him on Numberphile.
So good, so true. Thank you for making this video and sharing your thoughts.
In the 80's and even the 90's, even the average computer user had a decent notion of things like files, file sizes, file types, the difference between files and directories, and so on. They could easily distinguish, for example, between a gif file and a jpeg file, and they had a good notion not only of the size of the file, but also whether it was a "big file" or a "small file" compared to other similar files. In other words, even the average user had a relatively decent understanding of the technical aspect of many things in the computer (such as files).
Nowadays this is an almost non-existent concept, save for a very small minority of savvy users. Nowadays the average user might have an extremely _vague_ concept of what a "file" is, but will have no good concept of file types or their size. In fact, most users will never even know or understand what "file size" is, what the size of a particular file is, or even if they see it, what it means, or whether it's a "big" file or a "small" file. They simply don't understand what the number means and what its significance is.
This has all kinds of side-effects, such as people sending multi-megabyte images through email, even though the exact same information could be compressed into just some tens of kilobytes. The user at no point will have any kind of concept of what's happening, and may well be completely unaware of whether the email is "really big" or not. This is something that was less likely to happen in the 90's because the average user was a lot more aware and knowledgeable about these things.
Modern operating systems, especially Windows and Mac OS, are the culprits here. For some reason they have gone to extreme lengths to hide _everything_ from the user. File extensions and types, file sizes... everything. It seems that the less information the user is shown, the better. Nowadays the majority of users don't even know if a file is a gif, png or jpeg file, and have absolutely no concept or understanding about how "big" file might be (or even about the very concept of "file size"). It's just magic.
4:10 You worry way to much. Trust me there are loads of kids and adults too, who take things apart and find out how things tick. Great video though, ty!
Looking back, It's facinating to see how far we've come. Now we have not CPUs or GPUs but DPUs, and massively advanced AI generation logorithms and software. It's cool to see the bingining of an old "revelation" in 2023!
This is what I expected from computerphile. The first really good and interesting video!
>What is it that's encouraging them to ask the question "How does this work?"
Absolutely nothing, in fact it's telling them to do the exact opposite.
However, that's exactly why they'll ask the question. The same kid who responds to an order to keep of the lawn by doing exactly the opposite, will respond to the implied "don't open me" of the black box by doing exactly the opposite.
Excellent video!! Thank you. Hopefully there will be a more footage video on this topic that details each level of abstraction. I realize a PhD professor could go into this topic to the Nth degree of detail, but I liked his approach. He talked about the roughly 10 levels of abstraction, well enumerate what they are please. That way, people who are interested in a particular part of the process will now have the words to start doing research on their own.
This is a great topic for discussion. Thanks for the video - keep up the good work!
I think I'm not alone in thinking this is starting to be closer to what we were hoping for from Computerphile. (Hey Brady, you don't need to put the channel name at the end of each video)
Being in all of this technology has made me ask this question. I love to know how things work. I'm 17, and studying to be an IT Technician. So no need to worry about that. Curiosity will naturally spring.
By far the best computerphile video so far imho.
It sure did it for me. I used to love taking things apart and looking at the circuitry underneath.
it's a good point
and this idea of abstraction applies to just about everything, not only computers
I am very pleased by this episode. Thinking about how something works is a lot of fun. I like to imagine how other programs I see work. Unfortunately more frequently I find myself in the situation where I think "How is it able to calculate that?" And then my head starts to hurt and I say to myself "I should stop thinking about it and appreciate the fact that it works."
Seeing how the ending went (about how current devices don't encourage exploring how things work), I really can't wait for your Raspberry Pi videos (hope you cover other boards too)! Please do something on computer architecture as well.
To answer your question, I think it's videos like these that make me interested in engineering and explore more.
My interest for computers comes from a lot of things! From my amazement over my dad's (now ancient) Windows 93 computer, to the collection of circuit boards and naturally, the fact that computers aren't able to defy your programming because it doesn't have external influences (looking at you, science).
Even today, I carry a childish wonder over the rapid and unimaginable achievements that occurred since my birth! I grew up riding that wave. Now I feel old. XD
A truly great video.
I'm really worried about that too. And it's only going to get worse, both with hardware black boxes and in software ones...
through a specific setup of switches you can get logic statements like "or" or "and". It's hard to tell you in a comment section because a picture illustrating how this can be achieved is much easier to understand. Essentially you place transistors (which determine a 1 or a 0) together in a specific pattern to create a logic gate. A logic gate is just a specific setup of transistors which produce a particular logical outcome.
This is what Computerphile should be about, more of the pure fundamentals of how computation actually works. I would personally like to learn more about how Hardware and Software communicate with, and control one another.
I think it's easier than ever to get started programming. Decent C compilers and tutorials are available for free on the internet. Most of the scripting languages have friendly communities accommodating for beginners.
Excellent explanation of abstraction. When I try to explain it, people often get confused.
Great discussion towards the end of the video! I have been worried about the same thing for years - as technology has become so amazing as it has, it really doesn't encourage people to understand how it works anymore. All of my friends have smartphones but none of them has ANY clue of how it work. As a kid we used to dissemble computers with my friends because you had to do it if you really wanted to use one. Nowadays all you need is a finger. This will be a problem in the long run.
I recently covered this topic at college, blew my mind. Even a calculator is pretty complicated, so the devices we use today are just impossible to truly concieve of.
Best Computerphile to date.
Layers of abstraction: (there are multiple answers, this is just mine)
1: Seeing pixels on screen
2: Programming code
3: Assembly
4: Machine code
5: Logical switches
6: Electrical engineering
7: Electrons
8: Quantum mechanics
Each of these is a huge step, which is why it's so amazing we've achieved it all in such a short time (early 70's is when computing really started)
More videos with James please he's so awesome his lisp is cool aswell
I don't understand the worry here... I grew up curious of how computers worked without having old clunky equipment with screws that I could look inside of. I understood how electricity could make a light bulb function, but working electricity to make a computer function which seemed incomparable was enough to make me curious as to how computers work and eventually lead to me studying computer science. I would have been just as curious if I grew up with just a smart phone
+squiffyK7 *"The most remarkable thing about the future is probably the idea that you will call our time even the good old days."*
I hope to study engineering, mostly computers in college, but unfortunately what I can now do in high school is extremely, extremely limited. Really wish there were more people like you in my life and around the world that would encourage and give opportunities to kids to learn and explore how things, like great devices like the IPhone that practically everyone has, work.
The system used with redstone in Minecraft has actually been closer to the reality, than you may think. In real life, gates, flipflops and latches need to be "wired" to each other actually, and "wires" always have an intern resistance, which dissipates the power of binary signals; if their power is too low, then signals can't be processed. On the other hand, it's really realistic that the more stimulated a sensor gets, the more power it puts out.
He really hit close to home with me on this video. I've always been the "how does it work" sort as well, and one of the biggest mysteries of computers for me has always been how does the physical world translate into the cyber world. More and more these days its wifi this and cloud that, and it's getting harder to learn just by handling "real" stuff.
Thank you. The first link is really good.
I really appreciate what you said about phones.
People go and spend $500 on a device that is a closed black box then go off and brag how tech savvy they are.
Being able to operate a device designed as a closed appliance with the most non technical person as the target audience will never give deep understanding into the most basic building blocks of computing.
A grandchild that is "good with computers" may not be educated about them. They are not tech savvy. They simply are not afraid to make mistakes and so they learn more about the user interface.
Technology is not a phone, computer, or tablet.
Technology is *knowledge* that makes it possible to make them.
Computer science is the study and advancement of that knowledge.
I'm certain the low level stuff is mostly lost in the sea of quickly written web apps, using flavor of the week frameworks rotting from within.
I'm a part of that new generation and I've already asked all these questions (and more). I think there's still hope for us.
I remember when I was a kid and was taking apart my first computer, but I liked learning how to put one together much more! Nothing like it.
He reminds me of the cook, Heston Blumenthal. The way he looks like he loves his job and the way he uses his hands to explain things :)
I absolutely love how physicists manage to sneak in every channel.
Nice video, with great points towards the next gen
I always love to know how things work. From computer programs/computers all the way to things like how would they have done that special effect in a movie
Brilliant as allways ...thx
I would definitely want to hear more about the quantum mechanics involved in the inner workings of a transistor, bus or anything!
Looks like great stuff, thanks!
James Clewett is my favorite person Brady talks to.
Yes! keep them coming
This is the kind of thought that should be labeled as "philosophical engineering" applied to technology... and if recurred backwards into "philosophical reverse-engineering", the topic yields endless dividends in the realm of scientific curiosity. ;)
There's nothing more satisfying than dismantling something to see how it works :)
I was expecting something a bit different when I saw the title. I was expecting abstraction at a software level, as a stepping stone towards more videos. Still this was interesting. Can't wait for more.
People seem to expect a programming channel, rather than a computer science channel. Hardware abstraction is just as much part of computer science (and therefore, this channel), as software abstraction.
I'm a part of a generation growing up with technology and I see the problem you have mentioned among my peers. People have taken technology for granted and not many of us really care. But fear not! Due to wonders like UA-cam and Wikipedia the seed of curiosity will be planted and a new generation of engineers will rise. Hopefully me among them. :)
Great topic, abstraction is crucial. Really good video; explains at a high level why computers are so user friendly such that the uninitiated can understand it. Doesn't even look at the surface of the topic, however.
Love this guy. He would be a fantastic teacher.
Funny you should say that, I ran into minecraft about a year ago and played the game out of fun. I quickly learned about redstone and got into redstone engineering. It taught me many things like logic, wiring and a new form of thinking. This made me interested in circuits and electricity. It also got me thinking about programming in java. All in all, if you promote creativity you can get people to think.
The honourable professor James seems to be editing C source in vim in a PuTTY session. I approve!
Your words have inspired me. I'm going to attempt to teach basic programming to my younger brother.