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