1 00:00:07,850 --> 00:00:12,810 Welcome. If you're returning after learning the basics with us, 2 00:00:12,810 --> 00:00:14,070 we're delighted to have you back. 3 00:00:14,070 --> 00:00:15,990 If you're just joining us for 4 00:00:15,990 --> 00:00:19,140 the first time because you already know the fundamentals of Python, 5 00:00:19,140 --> 00:00:21,210 like IF ELSE statements, for loops, 6 00:00:21,210 --> 00:00:22,410 and strings and lists, 7 00:00:22,410 --> 00:00:24,060 then welcome for the first time. 8 00:00:24,060 --> 00:00:26,370 Just to be sure that you watch the video introducing 9 00:00:26,370 --> 00:00:28,290 the Runestone textbook environment because 10 00:00:28,290 --> 00:00:30,675 we're going to be using that throughout the course. 11 00:00:30,675 --> 00:00:32,385 I'm Paul Resnick. 12 00:00:32,385 --> 00:00:35,040 I'm Steve Oney. We are both faculty here in 13 00:00:35,040 --> 00:00:37,995 the School of Information at the University of Michigan. 14 00:00:37,995 --> 00:00:43,025 In this course, we're going to cover the rest of Python fundamentals still 15 00:00:43,025 --> 00:00:48,220 focusing on the execution model to help you reason about and debug your programs. 16 00:00:48,220 --> 00:00:51,355 We're also going to learn how to read and write files, 17 00:00:51,355 --> 00:00:54,070 we'll learn about the Python dictionary data structure, 18 00:00:54,070 --> 00:00:58,360 and we'll learn to use the accumulation pattern to accumulate results from 19 00:00:58,360 --> 00:01:00,910 complex data structures and to accumulate 20 00:01:00,910 --> 00:01:04,880 results into dictionaries and from dictionaries. 21 00:01:04,960 --> 00:01:07,970 You're going to learn how to define functions, 22 00:01:07,970 --> 00:01:10,645 which I think of as the dividing line between 23 00:01:10,645 --> 00:01:14,285 just playing around with programming and becoming a real programmer. 24 00:01:14,285 --> 00:01:16,270 We'll delve into some of the subtleties of 25 00:01:16,270 --> 00:01:19,150 functions including optional and default parameters, 26 00:01:19,150 --> 00:01:23,255 keyword-based parameter passing, and anonymous lambda functions. 27 00:01:23,255 --> 00:01:25,050 You'll learn about sorting. 28 00:01:25,050 --> 00:01:27,150 You're not going to learn sorting algorithms, 29 00:01:27,150 --> 00:01:30,655 but you'll learn how to use Python's built-in sorting capability. 30 00:01:30,655 --> 00:01:33,040 You'll pass in the right parameters and you'll get 31 00:01:33,040 --> 00:01:35,875 your items back in in exactly the order that you want it. 32 00:01:35,875 --> 00:01:39,625 The final project will be a little sentiment analysis program. 33 00:01:39,625 --> 00:01:42,730 We're going to give you a pile of fake tweets and you're going to write 34 00:01:42,730 --> 00:01:46,135 code that counts how many positive and negative words there are. 35 00:01:46,135 --> 00:01:48,355 You'll write out a comma separated values, 36 00:01:48,355 --> 00:01:50,530 file uploaded into a spreadsheet, 37 00:01:50,530 --> 00:01:53,090 and generate a graph so that you can analyze. 38 00:01:53,090 --> 00:01:59,050 Do those tweets that have more positive words in them get more replies and more retweets. 39 00:01:59,050 --> 00:02:01,060 Sounds fun. That's also going to 40 00:02:01,060 --> 00:02:04,025 synthesize all of the things that you learned throughout the course. 41 00:02:04,025 --> 00:02:05,700 Now, like the first course, 42 00:02:05,700 --> 00:02:08,770 we're mostly going to do screencasts with code examples, 43 00:02:08,770 --> 00:02:13,790 but we'll occasionally come on screen for words of wisdom into introduce topics. 44 00:02:13,790 --> 00:02:16,520 I'll also be telling a few more dad jokes. 45 00:02:16,520 --> 00:02:19,990 So, let's get to it. Bye for now.