1 00:00:00,770 --> 00:00:03,790 And now we've reached the end of 6.004. 2 00:00:03,790 --> 00:00:08,200 Looking back, there are two ways of thinking about the material we've discussed, the skills 3 00:00:08,200 --> 00:00:12,379 we've practiced, and the designs we've completed. 4 00:00:12,379 --> 00:00:16,680 Starting at devices, we've worked our way up the design hierarchy, each level serving 5 00:00:16,680 --> 00:00:19,190 as building blocks for the next. 6 00:00:19,190 --> 00:00:23,380 Along the way we thought about design tradeoffs, choosing the alternatives that would make 7 00:00:23,380 --> 00:00:30,370 our systems reliable, efficient and easy to understand and hence easy to maintain. 8 00:00:30,370 --> 00:00:36,640 In the other view of 6.004, we created and then used a hierarchy of engineering abstractions 9 00:00:36,640 --> 00:00:41,330 that are reasonably independent of the technologies they encapsulate. 10 00:00:41,330 --> 00:00:46,100 Even though technologies change at a rapid pace, these abstractions embody principles 11 00:00:46,100 --> 00:00:47,730 that are timeless. 12 00:00:47,730 --> 00:00:53,780 For example, the symbolic logic described by George Boole in 1847 is still used to reason 13 00:00:53,780 --> 00:00:58,989 about the operation of digital circuits you and I design today. 14 00:00:58,989 --> 00:01:03,490 The power of engineering abstractions is that they allow us to reason about the behavior 15 00:01:03,490 --> 00:01:08,930 of a system based on the behavior of the components without having to understand the implementation 16 00:01:08,930 --> 00:01:11,590 details of each component. 17 00:01:11,590 --> 00:01:16,329 The advantage of viewing components as "black boxes" implementing some specified function 18 00:01:16,329 --> 00:01:23,170 is that the implementation can change as long as the same specification is satisfied. 19 00:01:23,170 --> 00:01:28,450 In my lifetime, the size of a 2-input NAND gate has shrunk by 10 orders of magnitude, 20 00:01:28,450 --> 00:01:33,439 yet a 50-year-old logic design would still work as intended if implemented in today's 21 00:01:33,439 --> 00:01:35,689 technologies. 22 00:01:35,689 --> 00:01:40,369 Imagine trying to build a circuit that added two binary numbers if you had to reason about 23 00:01:40,369 --> 00:01:44,819 the electrical properties of doped silicon and conducting metals. 24 00:01:44,819 --> 00:01:49,509 Using abstractions lets us limit the design complexity at each level, shortening design 25 00:01:49,509 --> 00:01:54,600 time and making it easier to verify that the specifications have been met. 26 00:01:54,600 --> 00:01:58,719 And once we've created a useful repertoire of building blocks, we can use them again 27 00:01:58,719 --> 00:02:02,099 and again to assemble many different systems. 28 00:02:02,099 --> 00:02:07,590 Our goal in 6.004 is to demystify how computers work, starting with MOSFETs and working our 29 00:02:07,590 --> 00:02:09,919 way up to operating systems. 30 00:02:09,919 --> 00:02:14,290 We hope you've understood the engineering abstractions we've introduced and had a chance 31 00:02:14,290 --> 00:02:19,280 to practice using them when completing the design problems offered in the labs. 32 00:02:19,280 --> 00:02:24,200 We also hope that you'll also understand their limitations and have the confidence to create 33 00:02:24,200 --> 00:02:28,250 new abstractions when tackling new engineering tasks. 34 00:02:28,250 --> 00:02:37,160 Good engineers use abstractions, but great engineers create them. 35 00:02:37,160 --> 00:02:40,640 principles used at each level of the design hierarchy. 36 00:02:40,640 --> 00:02:45,150 If a particular topic struck you as especially interesting, we hope you'll seek out a more 37 00:02:45,150 --> 00:02:49,900 advanced course that will let you dig deeper into that engineering discipline. 38 00:02:49,900 --> 00:02:54,120 Hundreds of thousands of engineers have worked to create the digital systems that are the 39 00:02:54,120 --> 00:02:56,320 engines of today's information society. 40 00:02:56,320 --> 00:03:02,760 As you can imagine, there's no end of interesting engineering to explore and master - so roll 41 00:03:02,760 --> 00:03:06,090 up your sleeves and come join in the fun! 42 00:03:06,090 --> 00:03:09,090 What will be the engineering challenges of tomorrow? 43 00:03:09,090 --> 00:03:12,990 Here are a few thoughts about how the future of computing may be very different than the 44 00:03:12,990 --> 00:03:13,990 present. 45 00:03:13,990 --> 00:03:17,260 The systems we build today have a well-defined notion of state: 46 00:03:17,260 --> 00:03:22,200 the exact digital values stored in their memories, produced by their logic components, and traveling 47 00:03:22,200 --> 00:03:24,390 along their interconnect. 48 00:03:24,390 --> 00:03:29,090 But computation based on the principles of quantum mechanics may allow us to solve what 49 00:03:29,090 --> 00:03:34,990 are now intractable problems using states described not as collections of 1's and 0's, 50 00:03:34,990 --> 00:03:41,440 but as interrelated probabilities that describe the superposition of many states. 51 00:03:41,440 --> 00:03:45,650 We've built our systems using voltages to encode information and voltage-controlled 52 00:03:45,650 --> 00:03:51,100 switches to perform computation, using silicon-based electrical devices. 53 00:03:51,100 --> 00:03:55,350 But the chemistry of life has been carrying out detailed manufacturing operations for 54 00:03:55,350 --> 00:04:01,220 millennia using information encoded as sequences of amino acids. 55 00:04:01,220 --> 00:04:06,000 Some of the information encoded in our DNA has been around for millions of years, a truly 56 00:04:06,000 --> 00:04:08,900 long-lived information system! 57 00:04:08,900 --> 00:04:13,360 Today biologists are starting to build computational components from biological materials. 58 00:04:13,360 --> 00:04:18,529 Maybe in 50 years instead of plugging in your laptop, you'll have to feed it :) 59 00:04:18,529 --> 00:04:23,740 Instead of using truth tables and logic functions, some computations are best performed neural 60 00:04:23,740 --> 00:04:28,380 networks that operate by forming appropriately weighted combinations of analog inputs, 61 00:04:28,380 --> 00:04:32,400 where the weights are learned by the system as it is trained using example inputs that 62 00:04:32,400 --> 00:04:35,229 should produce known outputs. 63 00:04:35,229 --> 00:04:39,499 Artificial neural nets are thought to model the operation of the synapses and neurons 64 00:04:39,499 --> 00:04:41,110 in our brains. 65 00:04:41,110 --> 00:04:46,010 As we learn more about how the brain operates, we may get many new insights into how to implement 66 00:04:46,010 --> 00:04:51,159 systems that are good at recognition and reasoning. 67 00:04:51,159 --> 00:04:56,919 Again using living organisms as useful models, programming may be replaced by learning, where 68 00:04:56,919 --> 00:05:00,629 stimulus and feedback are used to evolve system behavior. 69 00:05:00,629 --> 00:05:05,999 In other words, systems will use adaptation mechanisms to evolve the desired functionality 70 00:05:05,999 --> 00:05:09,270 rather than have it explicitly programmed. 71 00:05:09,270 --> 00:05:13,860 This all seems the stuff of science fiction, but I suspect our parents feel the same way 72 00:05:13,860 --> 00:05:18,250 about having conversations with Siri about tomorrow's weather. 73 00:05:18,250 --> 00:05:21,050 Thanks for joining us here in 6.004. 74 00:05:21,050 --> 00:05:25,009 We've enjoyed presenting the material and challenging you with design tasks to exercise 75 00:05:25,009 --> 00:05:26,789 your new skills and understanding. 76 00:05:26,789 --> 00:05:31,539 There are interesting times ahead in the world of digital systems and we can certainly use 77 00:05:31,539 --> 00:05:34,719 your help in inventing the future! 78 00:05:34,719 --> 00:05:38,629 We'd welcome any feedback you have about the course so please feel free leave comments 79 00:05:38,629 --> 00:05:39,729 in the forum. 80 00:05:39,729 --> 00:05:43,069 Good bye for now... and good luck in your future studies.