Conclusions
My strategy for CS101 been to spend time playing with code, seeing how computers work and what they can do. Today I want to zoom out and talk about what that all means.
Big Ideas
- Algorithm
- Expressing an algorithm with code and data
- Code elements:
- -for (pixel: image) {
- -pixel.setRed(100);
- -count = count +1;
- Said on the first day: code is mechanical
- Computer systems are obviously incredibly useful .. so how is that?
- Answer: Human creativity to write code, computer dumb power - a good marriage!
Example - Cancer Cell Grading
- How can computers be intelligent?
- Cancer cell grading research Daphne Koller of Stanford
- Show the computer many example cell slides
- Program the computer to break out many different metrics of each slide
--dark/light, dark/light of boundaries, colors, number of cells, texture, ... - Do not pre-bias the computer about the meaning of the various metrics
- Also give the computer the survival data associated with each slide
- Let the computer recombine all the data, sift out the patterns
- "Intelligence" by looking at masses of data, guided by a human plan
- This is also basically how search engines work -- vast amounts of data (billions of web pages), run through a algorithm to figure out which pages are best for each search
Example - Cochlear Implant
- Treatment for some forms of deafness
--Doesn't work for everyone, controversy in the deaf community
--That said, this is an amazing use of technology - Microphone takes in sound
- Computer/electronics processes the sound into separate electrical signals
- Electrodes surgically implanted in the cochlea in the ear ... user perceives "sound"
- Researchers had the vision, the computer is just one piece
- Even from our for-loop image stuff, you can imagine a computer loop that takes in a sound signal, reconfigures it in a complex way into a series of signals for the electrodes
- deaf baby with cochlear implant hears mother's voice for the first time.
- I would be proud to work on research or technology or anything that changes people's lives like that -- wow
- I like this as a vivid example of a computer system -- marriage of the human vision of an important problem and how to solve it combined with the computer cheap/fast/available processing
Example - Self Driving Car
- Self Driving Car
- Nick prediction: self-driving cars are going to happen!
- Real time "seeing" and decision making - hard problems
- Self Driving Car
- It saves time which everybody values
- Suppose you just kick back in your car and read while it drives
Stanford CS101 Conclusions
- In first lecture, claimed something like "CS101 teaches the essential qualities of computers by playing with code"
- My hope is that people may have seen the computer as sort of opaque and impossible, but now they can see through that barrier, see the strengths and limitations of computers
- Confidence and patience
- I hope CS101 gives you confidence and patience to work with them. They are so stupid, but they are so useful.
- And if you find that you like code, take CS106A .. you've got great prep for it