1 00:00:07,960 --> 00:00:10,355 Hi, I'm Steve Oney, 2 00:00:10,355 --> 00:00:12,270 I'm the Assistant Professor here in the School of 3 00:00:12,270 --> 00:00:14,430 Information at the University of Michigan. 4 00:00:14,430 --> 00:00:18,430 So, I did some of the introductory programming classes in the School of Information, 5 00:00:18,430 --> 00:00:21,780 and I'm really excited to have you join us because I really think programming is 6 00:00:21,780 --> 00:00:25,230 going to increasingly be a fundamentally important literacy, 7 00:00:25,230 --> 00:00:28,260 and a way of dealing with the increasing amounts of 8 00:00:28,260 --> 00:00:31,630 data that we get and deal with in our everyday lives. 9 00:00:31,630 --> 00:00:35,475 In my private life, I play soccer. 10 00:00:35,475 --> 00:00:38,930 Like Professor Resnick, I'm an avid biker as well, 11 00:00:38,930 --> 00:00:43,005 and you'll be seeing me in courses one, two, and four. 12 00:00:43,005 --> 00:00:46,925 Most of my research deals with making programming tools more usable. 13 00:00:46,925 --> 00:00:48,980 In other words, making programming tools that are 14 00:00:48,980 --> 00:00:50,930 designed around the ways that people think, 15 00:00:50,930 --> 00:00:53,830 in the ways that we actually program as well. 16 00:00:53,830 --> 00:00:57,000 Hi. I'm Paul Resnick, 17 00:00:57,000 --> 00:00:58,860 I'm a Professor and Associate Dean for 18 00:00:58,860 --> 00:01:02,089 research at the University of Michigan School of Information. 19 00:01:02,089 --> 00:01:04,970 As Associate Dean, I don't get to teach that much, 20 00:01:04,970 --> 00:01:06,590 but I really enjoy teaching 21 00:01:06,590 --> 00:01:10,115 the material that I'll be teaching you in this specialization. 22 00:01:10,115 --> 00:01:12,930 I'm glad to have a chance to share it with you. 23 00:01:13,500 --> 00:01:16,780 You'll see me in courses one and two, 24 00:01:16,780 --> 00:01:20,310 almost all of course three and a little bit in course four. 25 00:01:20,310 --> 00:01:24,335 I'm a fan of nerdy pun humor, 26 00:01:24,335 --> 00:01:26,420 also known as dad jokes, 27 00:01:26,420 --> 00:01:31,040 and so I'll be sharing a few of those with you at the ends of some of the lessons. 28 00:01:31,040 --> 00:01:34,315 In my research, I'm probably best known for, 29 00:01:34,315 --> 00:01:37,005 what's now known as Recommender Systems. 30 00:01:37,005 --> 00:01:40,295 I first published this back in the early 90s. 31 00:01:40,295 --> 00:01:42,980 Things like, at Amazon where it says people who 32 00:01:42,980 --> 00:01:46,330 bought this book also bought these other books. 33 00:01:46,330 --> 00:01:49,865 More recently, I've been working on online communities, 34 00:01:49,865 --> 00:01:52,760 and then on educational technologies. 35 00:01:52,760 --> 00:01:54,605 In my personal life, 36 00:01:54,605 --> 00:01:57,965 I like to play tennis and ride a bike. 37 00:01:57,965 --> 00:02:01,250 I've ridden very slowly. 38 00:02:01,250 --> 00:02:05,280 I have a couple of the iconic climbs of the Tour de France, 39 00:02:05,280 --> 00:02:07,200 four years ago at Mont Ventoux, 40 00:02:07,200 --> 00:02:10,955 and a couple of years ago at the Col du Tourmalet in the Pyrenees. 41 00:02:10,955 --> 00:02:14,480 I don't travel nearly as much as Dr. Chuck, 42 00:02:14,480 --> 00:02:18,290 but I do look forward to trying to adapt his practice 43 00:02:18,290 --> 00:02:21,810 of holding live office hours in places when I do get to travel. 44 00:02:21,810 --> 00:02:24,350 So, maybe I'll get a chance to see you. 45 00:02:24,350 --> 00:02:26,215 See you in the lessons. 46 00:02:26,215 --> 00:02:28,600 Hi. My name is Jackie Cohen, 47 00:02:28,600 --> 00:02:31,835 and I'm a lecturer at the University of Michigan School of Information. 48 00:02:31,835 --> 00:02:33,800 I teach a lot of programming courses 49 00:02:33,800 --> 00:02:36,425 including courses a lot like the ones you'll see here, 50 00:02:36,425 --> 00:02:40,085 and I also build and design and support a lot of course resources. 51 00:02:40,085 --> 00:02:42,680 All of this means that I've seen a lot of different students, 52 00:02:42,680 --> 00:02:45,050 complete a lot of different programming projects, 53 00:02:45,050 --> 00:02:48,530 and what I'll be doing here is orienting you to the end of course projects, 54 00:02:48,530 --> 00:02:50,630 and giving you some hints and tips about what 55 00:02:50,630 --> 00:02:53,120 might be useful and exciting while working on them. 56 00:02:53,120 --> 00:02:56,360 I hope you enjoy them because I think they're really fun, 57 00:02:56,360 --> 00:03:00,340 and they'll give you a lot of tools for working with programming in your everyday life. 58 00:03:00,340 --> 00:03:01,885 Hi. I'm Chris Brooks, 59 00:03:01,885 --> 00:03:04,415 I'm faculty here at the University of Michigan. 60 00:03:04,415 --> 00:03:07,730 In this specialization, I'll be teaching the last course. 61 00:03:07,730 --> 00:03:10,940 In that course, you're going to take image manipulation libraries, 62 00:03:10,940 --> 00:03:12,635 and large image sets, 63 00:03:12,635 --> 00:03:17,585 and use Python to change it into useful information. 64 00:03:17,585 --> 00:03:21,260 My research focuses on educational technology, 65 00:03:21,260 --> 00:03:25,870 and I teach a lot of data science courses including some on this platform. 66 00:03:25,870 --> 00:03:29,495 I'm very interested in how learners like, you approach technology, 67 00:03:29,495 --> 00:03:33,170 interact with technology, and use it to enable your learning. 68 00:03:33,170 --> 00:03:35,815 I'm looking forward to seeing you in that last course. 69 00:03:35,815 --> 00:03:37,530 Hello. My name is Charles Severance, 70 00:03:37,530 --> 00:03:39,700 and you may have seen me before in the Python for 71 00:03:39,700 --> 00:03:42,430 Everybody specialization which is some of you took that, 72 00:03:42,430 --> 00:03:44,905 and then came to this class. 73 00:03:44,905 --> 00:03:47,680 I'm really enjoying what I'm doing in this class, 74 00:03:47,680 --> 00:03:48,790 and that I'm not actually, 75 00:03:48,790 --> 00:03:50,815 teaching any of the core material, 76 00:03:50,815 --> 00:03:52,720 but I'm doing what we call the way the programmer, 77 00:03:52,720 --> 00:03:54,520 and that is I get to play a little bit, 78 00:03:54,520 --> 00:03:56,125 and not actually teach you anything, 79 00:03:56,125 --> 00:03:57,490 but show you something cool, 80 00:03:57,490 --> 00:04:01,765 and that gave me a lot of freedom to show things that I consider fun. 81 00:04:01,765 --> 00:04:05,830 My research area, as some of you may know, is educational technology. 82 00:04:05,830 --> 00:04:09,400 The platform that you're using is something I'm very curious about, 83 00:04:09,400 --> 00:04:10,435 how we can improve it, 84 00:04:10,435 --> 00:04:12,410 how we can make it better. 85 00:04:12,410 --> 00:04:14,475 I have lots of hobbies, 86 00:04:14,475 --> 00:04:17,760 but my most recent hobby is racing, 87 00:04:17,760 --> 00:04:20,040 racing on road courses. 88 00:04:20,040 --> 00:04:24,500 So, if you look you might find a picture of me in a race car. 89 00:04:24,500 --> 00:04:26,660 Hi. I'm Lauren Murphy. 90 00:04:26,660 --> 00:04:28,520 I took the on-campus version of 91 00:04:28,520 --> 00:04:33,200 this course a couple of years ago and ended up working as instructional aide, 92 00:04:33,200 --> 00:04:35,420 and to help other students learn the material. 93 00:04:35,420 --> 00:04:37,820 I since return to help out with this course, 94 00:04:37,820 --> 00:04:40,925 building up the quizzes, and assessments and projects that you'll be doing. 95 00:04:40,925 --> 00:04:44,480 I'm very excited that you'll have the opportunity to learn the same material, 96 00:04:44,480 --> 00:04:47,005 and I hope that you have a good time. 97 00:04:47,005 --> 00:04:50,200 In this specialization for Python Three programming, 98 00:04:50,200 --> 00:04:53,150 you'll learn how to become a competent Python programmer, 99 00:04:53,150 --> 00:04:55,805 by learning the fundamentals of the language in detail. 100 00:04:55,805 --> 00:05:00,170 You'll learn how to navigate complex data structures and accumulate results from them, 101 00:05:00,170 --> 00:05:04,435 and you'll learn how to convert data into a format that can be used by other programs. 102 00:05:04,435 --> 00:05:06,145 At the end of the specialization, 103 00:05:06,145 --> 00:05:09,320 you'll be able to write Python programs of a few 100 lines, 104 00:05:09,320 --> 00:05:13,190 you'll be able to use and integrate Python modules into your code, 105 00:05:13,190 --> 00:05:18,185 you'll be able to use external tools like APIs by reading their documentation as well. 106 00:05:18,185 --> 00:05:19,610 We start from the beginning, 107 00:05:19,610 --> 00:05:21,550 and we don't assume any prior knowledge, 108 00:05:21,550 --> 00:05:23,690 but we do go deep into the fundamentals of 109 00:05:23,690 --> 00:05:26,990 Python to be sure that you understand every aspect of code. 110 00:05:26,990 --> 00:05:32,635 So I, you want to say something about what's a Runestone interactive environment? 111 00:05:32,635 --> 00:05:37,850 Yeah. So, the Runestone interactive textbook allows you t interleave learning 112 00:05:37,850 --> 00:05:42,880 materials with active code assessments that will allow you to actually write code. 113 00:05:42,880 --> 00:05:45,800 We find that writing code is really important 114 00:05:45,800 --> 00:05:49,390 because even though you can learn how a concept works in theory. 115 00:05:49,390 --> 00:05:53,525 So, you might know how some particular feature of Python works. 116 00:05:53,525 --> 00:05:58,250 It's really important to actually write code to gain more of a working understanding, 117 00:05:58,250 --> 00:06:02,530 and to know how to actually apply those concepts in practice. 118 00:06:02,530 --> 00:06:05,210 So, there's also the way of the programmer segments. 119 00:06:05,210 --> 00:06:10,250 So, most of the course is about how to use Python and learning about Python features. 120 00:06:10,250 --> 00:06:14,840 The way of the programmer segment is more about how programmers can and should work. 121 00:06:14,840 --> 00:06:18,060 Programming is a little bit more of an art than a science. 122 00:06:18,060 --> 00:06:20,340 There's lots of correct ways to do things, 123 00:06:20,340 --> 00:06:22,185 but there are best practices. 124 00:06:22,185 --> 00:06:23,430 So, there are things like, 125 00:06:23,430 --> 00:06:25,560 how to write programs incrementally. 126 00:06:25,560 --> 00:06:28,070 In the way of the programmer segments, 127 00:06:28,070 --> 00:06:31,745 you'll also learn about how to write good automated test cases. 128 00:06:31,745 --> 00:06:34,550 So, that's going to come in course four. 129 00:06:34,550 --> 00:06:38,090 Until then, we are going to write those tests cases for you. 130 00:06:38,090 --> 00:06:41,225 Lauren has created a whole lot of assessments where 131 00:06:41,225 --> 00:06:44,210 not only can you run the code in the browser, 132 00:06:44,210 --> 00:06:46,330 but it will tell you whether you got it right or not, 133 00:06:46,330 --> 00:06:48,070 and you get that immediate feedback, 134 00:06:48,070 --> 00:06:50,900 and you can try it as many times as you want. 135 00:06:50,900 --> 00:06:53,660 In fact, we've set up the assessments, 136 00:06:53,660 --> 00:06:57,755 so that you have to get everything right, 137 00:06:57,755 --> 00:07:00,640 100 percent in order to pass the assessment. 138 00:07:00,640 --> 00:07:05,570 The reason for that is we really want you to build mastery so that you don't go on to 139 00:07:05,570 --> 00:07:10,730 the later stuff until you've got the early material really solid. 140 00:07:10,730 --> 00:07:14,870 You'll also notice that in all of the projects that you do, 141 00:07:14,870 --> 00:07:18,860 you'll find ways of translating the concepts that you learned in the courses, 142 00:07:18,860 --> 00:07:21,410 and throughout the specialization into your real life. 143 00:07:21,410 --> 00:07:25,340 For example, different ways of building programs that might be 144 00:07:25,340 --> 00:07:30,145 fun in your job or your school or your work or whatever it is that you do. 145 00:07:30,145 --> 00:07:32,960 So, one of the things that I really like, 146 00:07:32,960 --> 00:07:37,295 as I've watched you all put this together is in Python for Everybody, 147 00:07:37,295 --> 00:07:39,305 and you already said this, 148 00:07:39,305 --> 00:07:41,065 that in Python for Everybody, 149 00:07:41,065 --> 00:07:43,080 are really focus on the program. 150 00:07:43,080 --> 00:07:45,255 If you get the program, it's like you win, 151 00:07:45,255 --> 00:07:47,295 you get the gold star. 152 00:07:47,295 --> 00:07:50,330 We didn't have the time or the luxury to 153 00:07:50,330 --> 00:07:53,120 really understand what was going on inside the program, 154 00:07:53,120 --> 00:07:55,160 were just like, we've got the program done, 155 00:07:55,160 --> 00:07:57,170 and we got to move on to the next thing, 156 00:07:57,170 --> 00:07:59,945 but with some of the stuff you have in Runestone, 157 00:07:59,945 --> 00:08:03,575 you get to say, what's really going on inside of the program, 158 00:08:03,575 --> 00:08:06,095 and how does this really work? 159 00:08:06,095 --> 00:08:07,820 That's part of the mastery is, 160 00:08:07,820 --> 00:08:09,905 so that if you can't as a programmer, 161 00:08:09,905 --> 00:08:13,940 put yourself inside the program and understand how the program is actually functioning, 162 00:08:13,940 --> 00:08:16,995 it is difficult to write more sophisticated programs. 163 00:08:16,995 --> 00:08:21,895 So, that's where, even though this technically is a beginning course, 164 00:08:21,895 --> 00:08:25,550 I think it's really important for people to take more than one beginning course, 165 00:08:25,550 --> 00:08:28,730 because you have to go over the same material over and 166 00:08:28,730 --> 00:08:33,040 over in a sense of deeper understanding each time you go through it. 167 00:08:33,040 --> 00:08:35,700 Yeah, we have this great code lens tool, 168 00:08:35,700 --> 00:08:37,125 I think you're referring to, 169 00:08:37,125 --> 00:08:39,410 that let's you visualize what's happening in 170 00:08:39,410 --> 00:08:41,945 the execution of the program one line at a time. 171 00:08:41,945 --> 00:08:43,760 You can go forwards and back, 172 00:08:43,760 --> 00:08:46,430 and see what actually was the value of that variable, 173 00:08:46,430 --> 00:08:49,530 and when did my list change what its contents were? 174 00:08:49,530 --> 00:08:51,865 So, it gives you a way of thinking about it. 175 00:08:51,865 --> 00:08:56,195 It's really great for debugging so that you don't have to just do trial and error, 176 00:08:56,195 --> 00:08:57,380 let me change something in the code. 177 00:08:57,380 --> 00:08:59,330 You can really think through what is a program. 178 00:08:59,330 --> 00:09:02,000 So, another thing that the students always asked me at the end 179 00:09:02,000 --> 00:09:04,745 of my course is, "What next?" 180 00:09:04,745 --> 00:09:08,900 I think that it's cool that you built into this specialization 181 00:09:08,900 --> 00:09:13,305 kind of a step into what they're going to do after this, Chris. 182 00:09:13,305 --> 00:09:16,160 Yeah. So, one of the things that we've added 183 00:09:16,160 --> 00:09:19,090 to this course at the very end is a project course, 184 00:09:19,090 --> 00:09:22,205 and that's really to focus people on how to take 185 00:09:22,205 --> 00:09:25,990 other APIs that might be out there or packages, and use them, 186 00:09:25,990 --> 00:09:29,870 and do something novel with them outside of just learning, 187 00:09:29,870 --> 00:09:33,650 and it gets to this repeated practice comment that you made. 188 00:09:33,650 --> 00:09:37,010 For that, we're actually doing it within the Jupyter environment. 189 00:09:37,010 --> 00:09:42,395 So, just like you need repeated practice with APIs and with Python fundamentals, 190 00:09:42,395 --> 00:09:47,540 there's so many different places that you can write Python code, 191 00:09:47,540 --> 00:09:49,370 and Runestone is one of them and 192 00:09:49,370 --> 00:09:52,505 the tools you use in Python for Everyone or one of those. 193 00:09:52,505 --> 00:09:55,250 Jupyter is one that's quite common and we teach that in 194 00:09:55,250 --> 00:10:00,300 the data science specialization that students could follow this with, 195 00:10:00,300 --> 00:10:02,220 and there's other environments too. 196 00:10:02,220 --> 00:10:06,980 So, we're trying to really show case a diversity of learning environments, 197 00:10:06,980 --> 00:10:09,020 and production environments for Python. 198 00:10:09,020 --> 00:10:10,865 Programming is not one environment. 199 00:10:10,865 --> 00:10:12,320 It's not like you have this one thing and 200 00:10:12,320 --> 00:10:14,045 type this stuff in, and that's all the programming. 201 00:10:14,045 --> 00:10:15,670 When you're out in the real world, 202 00:10:15,670 --> 00:10:19,490 each job often has a different kinds of environments. 203 00:10:19,490 --> 00:10:22,900 Practice is so important in the context of programming. 204 00:10:22,900 --> 00:10:26,150 I think Lauren has written some great examples 205 00:10:26,150 --> 00:10:29,920 of practice problems for you to work on throughout the course as well. 206 00:10:29,920 --> 00:10:33,170 We have this great practice tool that 207 00:10:33,170 --> 00:10:37,235 you'll get to see where it represents to you for review, 208 00:10:37,235 --> 00:10:41,495 some questions that you've already seen in the past. 209 00:10:41,495 --> 00:10:45,435 It keeps presenting them to you more frequently if you're having trouble, 210 00:10:45,435 --> 00:10:48,880 less frequently if you're showing mastery of them, 211 00:10:48,880 --> 00:10:51,790 and it's a way to really reinforce what you've got. 212 00:10:51,790 --> 00:10:54,060 So, look for that practice tool. 213 00:10:54,060 --> 00:10:55,550 It also has this fun fireworks, 214 00:10:55,550 --> 00:10:59,075 it'll show when you've done all of your practice problem for the day. 215 00:10:59,075 --> 00:11:03,290 So, as you can tell, we're all really excited to share this material with you, 216 00:11:03,290 --> 00:11:05,045 and we hope you have a lot of fun, 217 00:11:05,045 --> 00:11:06,925 and wish you a lot of luck. 218 00:11:06,925 --> 00:11:08,835 Here at the University of Michigan, 219 00:11:08,835 --> 00:11:11,580 our school colors are maize and blue. 220 00:11:11,580 --> 00:11:13,290 You might think of them as yellow and blue, 221 00:11:13,290 --> 00:11:14,795 but we call it maize and blue, 222 00:11:14,795 --> 00:11:17,290 and if I travel anywhere, 223 00:11:17,290 --> 00:11:18,710 and I have a Michigan logo thing on, 224 00:11:18,710 --> 00:11:21,905 someone will come up to me in the airport and say, "Go blue." 225 00:11:21,905 --> 00:11:27,510 So, on three, one, two, three, "Go blue."