1 00:00:07,300 --> 00:00:10,800 - Welcome to Python Fundamentals Part 1 of 5. 2 00:00:10,800 --> 00:00:13,240 My name is Paul Deitel and I'll be your instructor 3 00:00:13,240 --> 00:00:15,230 for these LiveLessons videos. 4 00:00:15,230 --> 00:00:17,940 I'm the CEO of Deitel & Associates, Inc., 5 00:00:17,940 --> 00:00:21,450 an MIT grad with 38 years of experience in computing, 6 00:00:21,450 --> 00:00:23,690 and also one of the world's most experienced 7 00:00:23,690 --> 00:00:25,480 programming languages trainers, 8 00:00:25,480 --> 00:00:29,173 having been teaching programming training since 1992. 9 00:00:30,320 --> 00:00:31,790 Throughout these LiveLessons videos, 10 00:00:31,790 --> 00:00:33,810 you're going to be working hands-on 11 00:00:33,810 --> 00:00:36,290 with the Python programming language. 12 00:00:36,290 --> 00:00:37,430 This is now one of world's 13 00:00:37,430 --> 00:00:39,550 most popular programming languages 14 00:00:39,550 --> 00:00:42,163 and it's also the fastest growing among them. 15 00:00:43,320 --> 00:00:45,210 Professionals often discover quickly 16 00:00:45,210 --> 00:00:48,400 that they really like Python for a number of reasons. 17 00:00:48,400 --> 00:00:50,530 It's a general purpose programming language 18 00:00:50,530 --> 00:00:53,030 so you can use it for lots of different tasks. 19 00:00:53,030 --> 00:00:56,170 It's concise and extremely expressive 20 00:00:56,170 --> 00:01:00,170 so you can really write a lot of complex applications 21 00:01:00,170 --> 00:01:03,270 with relatively minimal amounts of code. 22 00:01:03,270 --> 00:01:06,440 It's very readable so it's easy to learn. 23 00:01:06,440 --> 00:01:09,820 It's interactive because there's an interactive mode 24 00:01:09,820 --> 00:01:12,510 in the IPython interpreter that we'll be using 25 00:01:12,510 --> 00:01:13,940 so you can go right down 26 00:01:13,940 --> 00:01:16,630 to the individual programming snippet level 27 00:01:16,630 --> 00:01:19,050 and see exactly what that statement 28 00:01:19,050 --> 00:01:22,490 or snippet is going to do immediately. 29 00:01:22,490 --> 00:01:24,830 There's a massive open source community 30 00:01:24,830 --> 00:01:26,280 surrounding Python as well, 31 00:01:26,280 --> 00:01:28,930 developing incredibly powerful libraries 32 00:01:28,930 --> 00:01:30,550 that you're going to take advantage of 33 00:01:30,550 --> 00:01:32,760 over the five parts of these LiveLessons. 34 00:01:32,760 --> 00:01:35,470 And the job market, in particular for Python, 35 00:01:35,470 --> 00:01:37,420 is extremely strong right now, 36 00:01:37,420 --> 00:01:39,710 especially for anybody 37 00:01:39,710 --> 00:01:42,880 who has any kind of data science skills 38 00:01:42,880 --> 00:01:45,313 and artificial intelligence skills as well. 39 00:01:46,360 --> 00:01:49,570 Part one of these Python Fundamentals LiveLessons videos 40 00:01:49,570 --> 00:01:52,030 is based on the Before You Begin section 41 00:01:52,030 --> 00:01:53,630 and chapters one through four 42 00:01:53,630 --> 00:01:56,317 of our recently published Python books, 43 00:01:56,317 --> 00:01:59,497 "Intro to Python for Computer Science and Data Science: 44 00:01:59,497 --> 00:02:02,880 "Learning to Program with AI, Big Data and the Cloud," 45 00:02:02,880 --> 00:02:06,107 that's our textbook, and also our professional book, 46 00:02:06,107 --> 00:02:07,937 "Python for Programmers." 47 00:02:09,070 --> 00:02:10,100 Many people find that, 48 00:02:10,100 --> 00:02:12,020 as they work their way through the videos, 49 00:02:12,020 --> 00:02:15,160 it's helpful to have a copy of the book at hand. 50 00:02:15,160 --> 00:02:17,670 However, this is not required. 51 00:02:17,670 --> 00:02:19,960 There is additional information in the books 52 00:02:19,960 --> 00:02:22,780 that I don't cover as part of these videos. 53 00:02:22,780 --> 00:02:25,600 If you're interested in getting a copy of one of the books, 54 00:02:25,600 --> 00:02:28,980 you can find them in various print and electronic formats 55 00:02:28,980 --> 00:02:31,123 at the sites that are listed for you. 56 00:02:32,720 --> 00:02:34,090 If you're a college instructor, 57 00:02:34,090 --> 00:02:35,760 you'll probably want to take a look 58 00:02:35,760 --> 00:02:39,000 at "Intro to Python for Computer Science and Data Science," 59 00:02:39,000 --> 00:02:42,630 which is our college textbook version of the book. 60 00:02:42,630 --> 00:02:45,880 This one is in full color, it's 880 pages, 61 00:02:45,880 --> 00:02:49,210 240 pages more than "Python for Programmers," 62 00:02:49,210 --> 00:02:52,950 and in particular, it contains a ton of exercises, 63 00:02:52,950 --> 00:02:57,950 557 self-check exercises as well as 471 additional 64 00:02:58,390 --> 00:03:01,760 end of chapter exercises and projects. 65 00:03:01,760 --> 00:03:03,120 Now many professionals find 66 00:03:03,120 --> 00:03:05,350 that they like to work with the textbook version 67 00:03:05,350 --> 00:03:08,373 specifically because of the exercises. 68 00:03:09,980 --> 00:03:11,897 If you're interested in learning more about 69 00:03:11,897 --> 00:03:15,070 "Intro to Python for Computer Science and Data Science," 70 00:03:15,070 --> 00:03:18,100 please take a look at the links that I have provided below. 71 00:03:18,100 --> 00:03:20,740 The first one is for an architectural diagram 72 00:03:20,740 --> 00:03:24,180 in which we show you the four-part modular structure 73 00:03:24,180 --> 00:03:26,200 of this book and that really applies 74 00:03:26,200 --> 00:03:29,497 both to the college textbook and our professional book, 75 00:03:29,497 --> 00:03:31,850 "Python for Programmers," as well. 76 00:03:31,850 --> 00:03:35,560 The for programmers book has one fewer chapter, 77 00:03:35,560 --> 00:03:38,650 but the overall architecture of the two books is the same. 78 00:03:38,650 --> 00:03:40,410 And also, in the for programmers book, 79 00:03:40,410 --> 00:03:43,810 we have less of the lower end pedagogical material 80 00:03:43,810 --> 00:03:45,520 that's really geared to people 81 00:03:45,520 --> 00:03:47,920 who are novices in programming. 82 00:03:47,920 --> 00:03:50,240 The second link is for the full table of contents 83 00:03:50,240 --> 00:03:52,250 where you can see everything that we're going to cover 84 00:03:52,250 --> 00:03:53,170 throughout the book. 85 00:03:53,170 --> 00:03:55,260 And the third one is the book's preface 86 00:03:55,260 --> 00:03:57,570 where you can learn more about our approach 87 00:03:57,570 --> 00:04:01,120 to teaching Python, data science, artificial intelligence, 88 00:04:01,120 --> 00:04:03,073 and various big data topics. 89 00:04:04,340 --> 00:04:06,230 I'd also like to recommend that you take a look 90 00:04:06,230 --> 00:04:08,320 at these two additional links. 91 00:04:08,320 --> 00:04:11,940 The first one is for the full book cover, and in particular, 92 00:04:11,940 --> 00:04:14,450 if you look at the back cover copy, 93 00:04:14,450 --> 00:04:17,010 you'll see a nice summary of everything 94 00:04:17,010 --> 00:04:19,560 that we're going to do throughout these LiveLessons videos. 95 00:04:19,560 --> 00:04:21,890 And I'd also recommend that you take a moment 96 00:04:21,890 --> 00:04:24,210 to read through the technical 97 00:04:24,210 --> 00:04:26,970 and academic reviewer testimonials 98 00:04:26,970 --> 00:04:29,700 to really get a sense of all the things that they liked 99 00:04:29,700 --> 00:04:33,590 about how we presented Python and the various data science, 100 00:04:33,590 --> 00:04:35,653 AI, and big data topics. 101 00:04:37,790 --> 00:04:40,490 Next, let's talk about the modular architecture 102 00:04:40,490 --> 00:04:44,430 of these videos, which also applies to the books as well. 103 00:04:44,430 --> 00:04:46,390 In lessons one through 10 of these videos, 104 00:04:46,390 --> 00:04:50,160 we'll be focused on Python programming fundamentals, 105 00:04:50,160 --> 00:04:52,560 and throughout those lessons we have, 106 00:04:52,560 --> 00:04:53,800 at the end of each one, 107 00:04:53,800 --> 00:04:56,430 an introduction to data science 108 00:04:56,430 --> 00:04:58,820 in which we're going to introduce things 109 00:04:58,820 --> 00:05:03,270 like artificial intelligence, basic descriptive statistics, 110 00:05:03,270 --> 00:05:06,490 measures of central tendency and dispersion, 111 00:05:06,490 --> 00:05:10,920 simulation techniques, working with CSV files. 112 00:05:10,920 --> 00:05:13,180 We're going to introduce a really powerful library 113 00:05:13,180 --> 00:05:15,560 called pandas which you'll use extensively 114 00:05:15,560 --> 00:05:18,420 throughout the rest of the lessons once we introduce it. 115 00:05:18,420 --> 00:05:21,330 And we're also going to start to take a look at the concepts 116 00:05:21,330 --> 00:05:24,780 of time series and simple linear regression. 117 00:05:24,780 --> 00:05:26,430 All of these topics are meant 118 00:05:26,430 --> 00:05:29,290 to help support the case study lessons 119 00:05:29,290 --> 00:05:34,290 that we'll be looking at in lessons 11 through 16. 120 00:05:34,410 --> 00:05:37,300 As you work through the high-end case study lessons 121 00:05:37,300 --> 00:05:38,780 in parts four and five 122 00:05:38,780 --> 00:05:41,730 of these Python Fundamentals LiveLessons videos, 123 00:05:41,730 --> 00:05:43,710 one of the things I'll be doing with you 124 00:05:43,710 --> 00:05:47,690 is introducing a lot of real-world data sets. 125 00:05:47,690 --> 00:05:50,680 Many of the libraries I'll present to you come bundled 126 00:05:50,680 --> 00:05:53,050 with data sets that you can use to learn 127 00:05:53,050 --> 00:05:54,790 about working with those libraries 128 00:05:54,790 --> 00:05:57,570 and learn various AI, data science, 129 00:05:57,570 --> 00:05:59,740 and big data topics as well. 130 00:05:59,740 --> 00:06:01,300 And in addition you're going to find 131 00:06:01,300 --> 00:06:04,980 that you can acquire data sets from a wide range of sources. 132 00:06:04,980 --> 00:06:08,460 There are all sorts of data set repositories out there, 133 00:06:08,460 --> 00:06:11,410 various governments provide big data data sets 134 00:06:11,410 --> 00:06:14,830 that you can take advantage of including the US government, 135 00:06:14,830 --> 00:06:18,480 and you'll also find that there's many additional data sets 136 00:06:18,480 --> 00:06:20,510 bundled with these libraries. 137 00:06:20,510 --> 00:06:23,930 And some of the libraries also give you convenient ways 138 00:06:23,930 --> 00:06:27,970 to load data sets from those massive data set repositories 139 00:06:27,970 --> 00:06:29,800 that are available to you. 140 00:06:29,800 --> 00:06:31,620 Now, after you've worked your way 141 00:06:31,620 --> 00:06:33,330 through lessons one through five 142 00:06:33,330 --> 00:06:36,110 and some parts of lessons six and seven, 143 00:06:36,110 --> 00:06:37,860 you'll actually be able to go ahead 144 00:06:37,860 --> 00:06:40,440 and attack the really cool concepts 145 00:06:40,440 --> 00:06:42,300 that we're going to be presenting to you 146 00:06:42,300 --> 00:06:45,230 in lessons 11 through 16. 147 00:06:45,230 --> 00:06:47,390 But I do encourage you not to skip 148 00:06:47,390 --> 00:06:49,430 any of the lessons along the way. 149 00:06:49,430 --> 00:06:51,640 There are lots of interesting topics 150 00:06:51,640 --> 00:06:54,400 in lessons eight, nine, and 10, 151 00:06:54,400 --> 00:06:56,980 including all of Python's object-oriented 152 00:06:56,980 --> 00:06:58,863 programming concepts as well. 153 00:07:00,640 --> 00:07:02,140 As we developed the content 154 00:07:02,140 --> 00:07:04,800 on which these LiveLessons videos are based, 155 00:07:04,800 --> 00:07:07,110 we kept three principles in mind. 156 00:07:07,110 --> 00:07:10,760 Keep it simple, keep it small, and keep it topical. 157 00:07:10,760 --> 00:07:12,340 With respect to keep it simple, 158 00:07:12,340 --> 00:07:14,140 one of the things we really wanted to do 159 00:07:14,140 --> 00:07:16,150 was make it super easy for people 160 00:07:16,150 --> 00:07:19,040 to get into the Python programming language. 161 00:07:19,040 --> 00:07:21,450 So we really strived for simplicity 162 00:07:21,450 --> 00:07:23,620 and clarity in our writing 163 00:07:23,620 --> 00:07:26,420 and in the way that we presented the material. 164 00:07:26,420 --> 00:07:29,760 We also preferred the simpler libraries 165 00:07:29,760 --> 00:07:31,470 that are available to us. 166 00:07:31,470 --> 00:07:33,220 So one of the things that you're going to get 167 00:07:33,220 --> 00:07:35,960 out of the five parts of these LiveLessons videos 168 00:07:35,960 --> 00:07:40,020 is an introduction to many different open source libraries, 169 00:07:40,020 --> 00:07:42,640 some of which are bundled with Python, 170 00:07:42,640 --> 00:07:44,560 some of which are simply available 171 00:07:44,560 --> 00:07:46,660 via the open source community. 172 00:07:46,660 --> 00:07:48,470 And, whenever we had a choice 173 00:07:48,470 --> 00:07:50,520 between a couple of different libraries 174 00:07:50,520 --> 00:07:52,130 that could do the same thing, 175 00:07:52,130 --> 00:07:55,433 we always went with the one that was simpler to use. 176 00:07:56,980 --> 00:07:58,670 With respect to keep it small, 177 00:07:58,670 --> 00:08:01,250 you're going to find that the vast majority 178 00:08:01,250 --> 00:08:05,770 of the book's 538 code examples are extremely small. 179 00:08:05,770 --> 00:08:09,520 Sometimes just one line of code or a few lines of code. 180 00:08:09,520 --> 00:08:11,180 However, when you're programming, 181 00:08:11,180 --> 00:08:14,380 you often are going to be building larger applications, 182 00:08:14,380 --> 00:08:17,260 so we also include 40 larger scripts 183 00:08:17,260 --> 00:08:19,423 and in-depth case studies as well. 184 00:08:20,970 --> 00:08:22,850 With respect to keep it topical, 185 00:08:22,850 --> 00:08:25,120 we did one and a half years of research 186 00:08:25,120 --> 00:08:27,780 in preparation for writing our Python books 187 00:08:27,780 --> 00:08:30,150 and recording these Python videos as well. 188 00:08:30,150 --> 00:08:32,700 And normally, when we get ready to write any book, 189 00:08:32,700 --> 00:08:35,020 we'll create what we call a resource center, 190 00:08:35,020 --> 00:08:36,020 and we'll have anywhere 191 00:08:36,020 --> 00:08:39,970 from 25 to 50 different key research pieces 192 00:08:39,970 --> 00:08:43,930 on which we will base our writings and the examples 193 00:08:43,930 --> 00:08:47,630 that we eventually use in these video recordings as well. 194 00:08:47,630 --> 00:08:49,070 Now, for the Python content, 195 00:08:49,070 --> 00:08:53,050 we actually had 1500 different resource centers, 196 00:08:53,050 --> 00:08:57,580 each of which averaged around 10 different research pieces. 197 00:08:57,580 --> 00:09:00,290 So about 15,000 different pieces, 198 00:09:00,290 --> 00:09:02,900 whether they were books, or articles, or videos, 199 00:09:02,900 --> 00:09:07,200 or blog posts went into our research for this material. 200 00:09:07,200 --> 00:09:10,420 And what that enabled us to do was really take the pulse 201 00:09:10,420 --> 00:09:12,130 of all the different communities 202 00:09:12,130 --> 00:09:15,320 that we were trying to target with the content in this book, 203 00:09:15,320 --> 00:09:17,720 whether it be the computer science community, 204 00:09:17,720 --> 00:09:21,200 the data science community, the Python community in general, 205 00:09:21,200 --> 00:09:24,520 or the AI big data and cloud communities as well. 206 00:09:24,520 --> 00:09:27,450 And that also enabled us to create some really cool 207 00:09:27,450 --> 00:09:30,250 and interesting examples that I'll be presenting to you 208 00:09:30,250 --> 00:09:31,283 in these videos. 209 00:09:33,190 --> 00:09:36,620 The best way to use these videos is to watch a little 210 00:09:36,620 --> 00:09:39,140 and then do a little and one of the reasons 211 00:09:39,140 --> 00:09:42,010 that it works so well to take that approach 212 00:09:42,010 --> 00:09:45,480 is the IPython interpreter that you'll see me using 213 00:09:45,480 --> 00:09:47,470 throughout my presentation. 214 00:09:47,470 --> 00:09:50,870 The IPython interpreter gives you immediate feedback, 215 00:09:50,870 --> 00:09:53,900 enabling you to write anything from a simple expression 216 00:09:53,900 --> 00:09:56,460 like seven plus three and see the result 217 00:09:56,460 --> 00:09:59,770 up through large chunks of code as well, 218 00:09:59,770 --> 00:10:03,040 and you can immediately execute those expressions, 219 00:10:03,040 --> 00:10:06,520 statements, and chunks of code and see the results. 220 00:10:06,520 --> 00:10:07,610 If you get an error, 221 00:10:07,610 --> 00:10:10,670 you can see the code and the error right next to each other 222 00:10:10,670 --> 00:10:12,550 so you can go back and fix that problem 223 00:10:12,550 --> 00:10:14,900 and try again instantaneously. 224 00:10:14,900 --> 00:10:17,090 And, if it's a correct piece of code, 225 00:10:17,090 --> 00:10:19,290 you can see the results immediately, 226 00:10:19,290 --> 00:10:21,670 which makes it a really great way 227 00:10:21,670 --> 00:10:24,320 to learn the language, explore the language, 228 00:10:24,320 --> 00:10:27,730 and also to explore the many different libraries 229 00:10:27,730 --> 00:10:31,163 that you have access to via the open source community. 230 00:10:32,360 --> 00:10:34,000 Throughout lessons one through 10, 231 00:10:34,000 --> 00:10:37,100 my key focus will be on presenting rich coverage 232 00:10:37,100 --> 00:10:39,800 of Python programming fundamentals. 233 00:10:39,800 --> 00:10:42,380 Now, not only will I be showing you the syntax 234 00:10:42,380 --> 00:10:44,270 of the language but we'll also be looking 235 00:10:44,270 --> 00:10:46,710 at three different programming idioms. 236 00:10:46,710 --> 00:10:49,690 We'll look at procedural style programming in Python, 237 00:10:49,690 --> 00:10:51,540 object-oriented programming, 238 00:10:51,540 --> 00:10:54,380 and functional-style programming as well. 239 00:10:54,380 --> 00:10:56,210 And, throughout all of the examples, 240 00:10:56,210 --> 00:10:58,920 we'll be focusing on best practices 241 00:10:58,920 --> 00:11:00,823 and current Python idiom. 242 00:11:02,280 --> 00:11:04,320 During our one and a half years of research 243 00:11:04,320 --> 00:11:05,940 leading into this project, 244 00:11:05,940 --> 00:11:09,260 one of the things that we found is that the vast majority 245 00:11:09,260 --> 00:11:11,720 of programming that people do in Python 246 00:11:11,720 --> 00:11:15,330 is what we like to refer to as object-based programming. 247 00:11:15,330 --> 00:11:16,920 You import a library, 248 00:11:16,920 --> 00:11:19,710 create an object of one of the types in that library, 249 00:11:19,710 --> 00:11:22,030 and then interact with that object. 250 00:11:22,030 --> 00:11:24,810 And one of the reasons that you're able to do that 251 00:11:24,810 --> 00:11:28,830 is the literally thousands of different Python libraries 252 00:11:28,830 --> 00:11:30,630 that are available to you. 253 00:11:30,630 --> 00:11:33,190 Now the Python standard library itself 254 00:11:33,190 --> 00:11:36,710 has a tremendous number of what are called modules 255 00:11:36,710 --> 00:11:40,340 that you can import into your applications and use. 256 00:11:40,340 --> 00:11:42,630 And the table that you see on the screen 257 00:11:42,630 --> 00:11:45,460 is just a small subset of those libraries. 258 00:11:45,460 --> 00:11:48,300 And in particular ones that we'll be focusing on 259 00:11:48,300 --> 00:11:50,343 throughout these LiveLessons videos. 260 00:11:51,900 --> 00:11:53,570 In addition we'll be focusing 261 00:11:53,570 --> 00:11:56,950 on lots of other open source libraries, 262 00:11:56,950 --> 00:11:58,940 many of which are actually installed 263 00:11:58,940 --> 00:12:01,180 with the Anaconda Python distribution 264 00:12:01,180 --> 00:12:04,780 that I'll be using as I present Python to you. 265 00:12:04,780 --> 00:12:06,050 On the screen now you see 266 00:12:06,050 --> 00:12:10,060 some of the key artificial intelligence, data science, 267 00:12:10,060 --> 00:12:12,280 and big data-related libraries 268 00:12:12,280 --> 00:12:14,863 that we'll be presenting throughout these videos. 269 00:12:16,760 --> 00:12:19,717 During the 1850s Gold Rush, there was a saying, 270 00:12:19,717 --> 00:12:22,300 "There is gold in them thar hills." 271 00:12:22,300 --> 00:12:26,477 Well in 2019 and '20 and beyond, we can say instead, 272 00:12:26,477 --> 00:12:29,370 "There's gold in them thar data." 273 00:12:29,370 --> 00:12:31,930 Almost all of the cutting edge applications 274 00:12:31,930 --> 00:12:33,660 that are being developed nowadays 275 00:12:33,660 --> 00:12:35,950 are data-driven applications 276 00:12:35,950 --> 00:12:39,640 and specifically big data-driven applications. 277 00:12:39,640 --> 00:12:42,420 So another saying that you may have heard previously 278 00:12:42,420 --> 00:12:45,210 is that "A picture is worth a thousand words." 279 00:12:45,210 --> 00:12:48,050 Well, when you're talking about big data, 280 00:12:48,050 --> 00:12:50,810 a visualization, which is just a diagram, 281 00:12:50,810 --> 00:12:53,240 is something that could be worth billions 282 00:12:53,240 --> 00:12:57,483 or even trillions of data items in a big data source. 283 00:12:58,410 --> 00:13:01,700 So, with that in mind, we're going to be presenting scores 284 00:13:01,700 --> 00:13:06,060 of static, dynamic, and interactive visualizations 285 00:13:06,060 --> 00:13:08,040 throughout these LiveLessons videos. 286 00:13:08,040 --> 00:13:11,840 And, as you're going to see, with tiny amounts of code, 287 00:13:11,840 --> 00:13:13,890 you can create some really cool 288 00:13:13,890 --> 00:13:16,290 and interesting visualizations as well. 289 00:13:16,290 --> 00:13:18,250 And that's going to be really critical 290 00:13:18,250 --> 00:13:20,010 as you start making your way 291 00:13:20,010 --> 00:13:23,340 into big data applications development. 292 00:13:23,340 --> 00:13:27,260 The vast majority of data that we receive nowadays 293 00:13:27,260 --> 00:13:30,190 is so large that no human being 294 00:13:30,190 --> 00:13:32,290 can look at all of that data. 295 00:13:32,290 --> 00:13:34,620 So visualizations become critical 296 00:13:34,620 --> 00:13:37,273 in helping people understand what they're looking at. 297 00:13:38,700 --> 00:13:41,210 As we get into some of the higher-end lessons, 298 00:13:41,210 --> 00:13:43,620 one of the things that we're going to start doing 299 00:13:43,620 --> 00:13:46,070 is talking about the different steps 300 00:13:46,070 --> 00:13:48,330 in a data science study. 301 00:13:48,330 --> 00:13:51,530 So we're going to show you how to obtain data 302 00:13:51,530 --> 00:13:53,540 and prepare it for analysis 303 00:13:53,540 --> 00:13:56,750 and one of the things that we'll do after we obtain data 304 00:13:56,750 --> 00:13:58,690 is get to know that data. 305 00:13:58,690 --> 00:13:59,850 And, in that case, 306 00:13:59,850 --> 00:14:02,580 visualization is often a key aspect 307 00:14:02,580 --> 00:14:04,390 of getting to know your data. 308 00:14:04,390 --> 00:14:07,260 We'll also talk about how to analyze data 309 00:14:07,260 --> 00:14:09,430 using many different techniques. 310 00:14:09,430 --> 00:14:11,620 And, to do that, we're going to be building things 311 00:14:11,620 --> 00:14:14,980 like machine learning models and deep learning models. 312 00:14:14,980 --> 00:14:17,270 And one of the things you will want to be able to do 313 00:14:17,270 --> 00:14:19,860 is to tune those models as well. 314 00:14:19,860 --> 00:14:21,450 And then finally we'll want 315 00:14:21,450 --> 00:14:24,890 to communicate the results of our studies, which once again, 316 00:14:24,890 --> 00:14:28,173 is often going to involve visualizations. 317 00:14:29,560 --> 00:14:32,220 In parts four and five of these LiveLessons videos, 318 00:14:32,220 --> 00:14:33,260 you're going to be working 319 00:14:33,260 --> 00:14:36,020 with many different predefined models 320 00:14:36,020 --> 00:14:38,680 that somebody else creates and trains for you 321 00:14:38,680 --> 00:14:40,380 and then makes available to you 322 00:14:40,380 --> 00:14:43,290 through the various libraries that we'll be importing 323 00:14:43,290 --> 00:14:45,540 and using in our Python applications. 324 00:14:45,540 --> 00:14:48,840 And you're also going to learn how to create your own models 325 00:14:48,840 --> 00:14:53,010 and train them based on data sets that are typically bundled 326 00:14:53,010 --> 00:14:55,350 with the libraries that we'll be introducing, 327 00:14:55,350 --> 00:14:59,380 although you can also download and use other data sets 328 00:14:59,380 --> 00:15:01,780 to train your models as well. 329 00:15:01,780 --> 00:15:04,030 Now throughout those two lessons we're going to look 330 00:15:04,030 --> 00:15:06,940 at all sorts of cool and interesting topics 331 00:15:06,940 --> 00:15:09,650 starting with natural language processing, 332 00:15:09,650 --> 00:15:12,210 then we'll move on to data mining Twitter, 333 00:15:12,210 --> 00:15:15,950 which is one of the most popular big data sources 334 00:15:15,950 --> 00:15:18,050 that are out there and also one 335 00:15:18,050 --> 00:15:21,830 for which natural language processing is commonly used 336 00:15:21,830 --> 00:15:25,010 to perform a technique called sentiment analysis, 337 00:15:25,010 --> 00:15:27,670 where you look at the text of tweets 338 00:15:27,670 --> 00:15:30,440 and you basically determine if they're positive 339 00:15:30,440 --> 00:15:32,740 or negative about a given topic. 340 00:15:32,740 --> 00:15:34,590 And that could be used to do things 341 00:15:34,590 --> 00:15:38,120 like try to predict election results or try to predict 342 00:15:38,120 --> 00:15:41,390 how well a movie is going to do at the box office. 343 00:15:41,390 --> 00:15:44,970 We'll move on to IBM Watson and Cognitive Computing 344 00:15:44,970 --> 00:15:47,930 where we'll build a cool interlanguage translator 345 00:15:47,930 --> 00:15:49,840 using their web services. 346 00:15:49,840 --> 00:15:52,770 We'll also take a look at building your own models 347 00:15:52,770 --> 00:15:55,860 in the machine learning and deep learning lessons. 348 00:15:55,860 --> 00:16:00,170 And then finally we'll finish off with our big data lesson 349 00:16:00,170 --> 00:16:04,310 where we'll cover topics like Apache Hadoop, Apache Spark, 350 00:16:04,310 --> 00:16:08,053 NoSQL databases, and the Internet of Things. 351 00:16:09,890 --> 00:16:12,100 Now that we've talked about all of the different things 352 00:16:12,100 --> 00:16:14,270 that you'll see throughout parts one through five 353 00:16:14,270 --> 00:16:17,370 of these Python Fundamentals LiveLessons videos, 354 00:16:17,370 --> 00:16:20,100 let's talk specifically about what you'll do here 355 00:16:20,100 --> 00:16:21,520 in part one. 356 00:16:21,520 --> 00:16:23,990 We'll start out with a Before You Begin lesson 357 00:16:23,990 --> 00:16:25,530 in which I'm going to talk about 358 00:16:25,530 --> 00:16:28,790 installing the Anaconda Python distribution, 359 00:16:28,790 --> 00:16:31,530 getting the code examples that we provide for you 360 00:16:31,530 --> 00:16:33,320 to execute on your own. 361 00:16:33,320 --> 00:16:35,100 And those code examples, by the way, 362 00:16:35,100 --> 00:16:36,800 are provided in two forms. 363 00:16:36,800 --> 00:16:39,540 You'll find them in source code files 364 00:16:39,540 --> 00:16:42,400 which end with a .py extension 365 00:16:42,400 --> 00:16:43,940 and you'll be able to use those 366 00:16:43,940 --> 00:16:46,560 with the interactive IPython interpreter 367 00:16:46,560 --> 00:16:50,470 or to execute them as what we call scripts in Python. 368 00:16:50,470 --> 00:16:53,960 But we also provide what are known as Jupyter notebooks, 369 00:16:53,960 --> 00:16:58,870 which are interactive web-based notebooks that contain text, 370 00:16:58,870 --> 00:17:02,470 they can also contain images, audio, video, 371 00:17:02,470 --> 00:17:05,010 and live code that you can execute 372 00:17:05,010 --> 00:17:07,030 directly in your web browser. 373 00:17:07,030 --> 00:17:10,250 And you may find that those are actually a really nice way 374 00:17:10,250 --> 00:17:12,390 for you to interact with Python 375 00:17:12,390 --> 00:17:16,230 and learn about the Python programming language as well. 376 00:17:16,230 --> 00:17:19,780 I'll also talk about the two key Python package managers 377 00:17:19,780 --> 00:17:23,060 that you'll use for installing additional libraries 378 00:17:23,060 --> 00:17:25,550 throughout these LiveLessons videos. 379 00:17:25,550 --> 00:17:27,340 As we move on to lesson one, 380 00:17:27,340 --> 00:17:29,930 we'll focus on three test drives 381 00:17:29,930 --> 00:17:32,100 where we'll show you three different ways 382 00:17:32,100 --> 00:17:35,000 to execute the Python code that we provide. 383 00:17:35,000 --> 00:17:38,520 One of which is going to be the IPython Interactive Mode 384 00:17:38,520 --> 00:17:42,610 where you enter either expressions or statements 385 00:17:42,610 --> 00:17:45,290 and interactively execute them. 386 00:17:45,290 --> 00:17:47,910 Another is going to be to use IPython 387 00:17:47,910 --> 00:17:50,370 to execute scripts in their entirety. 388 00:17:50,370 --> 00:17:52,850 So those are full-blown applications 389 00:17:52,850 --> 00:17:54,500 that we'll develop in Python. 390 00:17:54,500 --> 00:17:57,200 And then, finally, we'll do our introduction 391 00:17:57,200 --> 00:17:59,510 to the Jupyter notebooks environment 392 00:17:59,510 --> 00:18:02,500 and show you how to get the environment up and running, 393 00:18:02,500 --> 00:18:05,150 how to load notebooks into Jupyter, 394 00:18:05,150 --> 00:18:07,460 and then how to execute code 395 00:18:07,460 --> 00:18:09,563 within a Jupyter notebook as well. 396 00:18:11,220 --> 00:18:12,870 In lesson two, we're going to start 397 00:18:12,870 --> 00:18:16,000 getting into Python programming fundamentals. 398 00:18:16,000 --> 00:18:18,030 We'll look at basic statements, 399 00:18:18,030 --> 00:18:20,270 show you how to create variables in Python. 400 00:18:20,270 --> 00:18:21,130 And if you're coming 401 00:18:21,130 --> 00:18:23,870 from a strongly typed programming language, 402 00:18:23,870 --> 00:18:26,030 one of the things that you'll see about Python 403 00:18:26,030 --> 00:18:29,860 is that it's dynamically typed so you don't have to state 404 00:18:29,860 --> 00:18:32,500 in advance that a given variable 405 00:18:32,500 --> 00:18:35,520 is going to hold an integer, or a floating point number, 406 00:18:35,520 --> 00:18:36,490 or a string. 407 00:18:36,490 --> 00:18:39,000 It figures all of that out for you 408 00:18:39,000 --> 00:18:41,500 and it's always based on whatever that variable 409 00:18:41,500 --> 00:18:44,520 happens to be referring to at a given time. 410 00:18:44,520 --> 00:18:46,680 We'll look at some basic input and output 411 00:18:46,680 --> 00:18:48,140 as part of lesson two. 412 00:18:48,140 --> 00:18:51,520 We'll also start to show you the various different forms 413 00:18:51,520 --> 00:18:53,420 of strings in Python. 414 00:18:53,420 --> 00:18:54,450 We'll show you, in fact, 415 00:18:54,450 --> 00:18:56,530 three different forms in lesson two, 416 00:18:56,530 --> 00:18:58,290 and a couple of additional ones 417 00:18:58,290 --> 00:19:00,600 in subsequent lessons as well. 418 00:19:00,600 --> 00:19:03,070 And finally, at the end of lesson two, 419 00:19:03,070 --> 00:19:04,980 we're going to start talking about the fact 420 00:19:04,980 --> 00:19:07,690 that everything in Python is an object 421 00:19:07,690 --> 00:19:10,980 and we'll actually demonstrate some of that dynamic typing 422 00:19:10,980 --> 00:19:12,673 I was talking about as well. 423 00:19:14,140 --> 00:19:14,973 In lesson three, 424 00:19:14,973 --> 00:19:17,750 we'll be focusing on Python's control statements, 425 00:19:17,750 --> 00:19:20,460 and this is where you're starting to get a sense 426 00:19:20,460 --> 00:19:23,610 of how small the Python language really is. 427 00:19:23,610 --> 00:19:27,100 It has fewer overall keywords and statements 428 00:19:27,100 --> 00:19:29,420 than most of the other programming languages 429 00:19:29,420 --> 00:19:32,880 that you're probably coming from into Python. 430 00:19:32,880 --> 00:19:34,600 So we'll talk about the if statement 431 00:19:34,600 --> 00:19:36,400 and it's three different forms here. 432 00:19:36,400 --> 00:19:39,260 We'll introduce the only two looping structures 433 00:19:39,260 --> 00:19:42,110 that Python has the for loop and the while loop. 434 00:19:42,110 --> 00:19:43,530 And, as you'll see, 435 00:19:43,530 --> 00:19:46,990 Python does not have a counter controlled for loop. 436 00:19:46,990 --> 00:19:48,550 The one that we'll show you 437 00:19:48,550 --> 00:19:51,740 is for iterating over a sequence. 438 00:19:51,740 --> 00:19:53,870 And as part of that we're going to start 439 00:19:53,870 --> 00:19:57,260 to introduce one of the key data structures in Python, 440 00:19:57,260 --> 00:19:58,750 which is known as a list. 441 00:19:58,750 --> 00:20:01,770 And that's similar to the concept of an array 442 00:20:01,770 --> 00:20:04,300 in other programming languages. 443 00:20:04,300 --> 00:20:05,750 In this lesson we'll also talk 444 00:20:05,750 --> 00:20:08,150 about the augmented assignment operators 445 00:20:08,150 --> 00:20:11,113 and introduce the Boolean operators as well. 446 00:20:12,740 --> 00:20:14,940 In lesson four, we're going to start talking about 447 00:20:14,940 --> 00:20:19,610 how to create your own custom Python function definitions. 448 00:20:19,610 --> 00:20:21,760 Now, one of the things I always try to do 449 00:20:21,760 --> 00:20:24,190 in my LiveLessons videos is compare 450 00:20:24,190 --> 00:20:26,600 and contrast the current language I'm talking about, 451 00:20:26,600 --> 00:20:27,960 in this case Python, 452 00:20:27,960 --> 00:20:29,860 with the other programming languages 453 00:20:29,860 --> 00:20:31,450 that you may be familiar with. 454 00:20:31,450 --> 00:20:32,470 And, in particular, 455 00:20:32,470 --> 00:20:35,620 Python is a C-based programming language. 456 00:20:35,620 --> 00:20:38,670 So you'll find that I will often compare Python 457 00:20:38,670 --> 00:20:43,670 to languages like C, C++, Java, and C# as well. 458 00:20:43,830 --> 00:20:45,560 And one of the reasons I bring that up 459 00:20:45,560 --> 00:20:48,250 is because the way you define functions 460 00:20:48,250 --> 00:20:51,230 in Python is somewhat different 461 00:20:51,230 --> 00:20:53,480 from those other programming languages. 462 00:20:53,480 --> 00:20:55,810 And that's a combination of the fact 463 00:20:55,810 --> 00:20:57,950 that Python uses different keywords 464 00:20:57,950 --> 00:20:59,740 and also the fact that Python 465 00:20:59,740 --> 00:21:02,090 is a dynamically typed language, 466 00:21:02,090 --> 00:21:06,170 whereas those other languages are statically typed. 467 00:21:06,170 --> 00:21:07,210 Now, in this lesson, 468 00:21:07,210 --> 00:21:09,720 we're also going to be talking a little bit more 469 00:21:09,720 --> 00:21:11,960 about how to import libraries 470 00:21:11,960 --> 00:21:15,220 so that you can use them in your applications. 471 00:21:15,220 --> 00:21:16,610 We're going to start to get 472 00:21:16,610 --> 00:21:19,220 into some basic simulation techniques 473 00:21:19,220 --> 00:21:21,120 with random number generation. 474 00:21:21,120 --> 00:21:23,160 We'll talk a little bit about scope 475 00:21:23,160 --> 00:21:24,940 in the context of functions. 476 00:21:24,940 --> 00:21:27,510 And we'll also show you some syntax things 477 00:21:27,510 --> 00:21:32,510 like default parameter values and keyword arguments as well. 478 00:21:32,870 --> 00:21:34,880 Towards the end of this lesson, 479 00:21:34,880 --> 00:21:38,690 we're also going to get into tuples for the first time, 480 00:21:38,690 --> 00:21:42,380 which are another key data structure in Python. 481 00:21:42,380 --> 00:21:44,260 And tuples basically allow you 482 00:21:44,260 --> 00:21:47,120 to aggregate a bunch of related items 483 00:21:47,120 --> 00:21:49,400 which may or may not be of the same type. 484 00:21:49,400 --> 00:21:52,890 And in this lesson, we'll use that capability to demonstrate 485 00:21:52,890 --> 00:21:57,023 how to return more than one value at a time from a function. 486 00:21:58,950 --> 00:22:00,030 Now throughout part one 487 00:22:00,030 --> 00:22:02,740 of these Python Fundamentals LiveLessons videos, 488 00:22:02,740 --> 00:22:05,180 a couple of key things that you're going to see 489 00:22:05,180 --> 00:22:07,840 are a little bit of functional style programming 490 00:22:07,840 --> 00:22:12,180 and the first several of our Intro to Data Science sections. 491 00:22:12,180 --> 00:22:14,340 With regard to functional style programming, 492 00:22:14,340 --> 00:22:16,030 what you're typically going to be doing 493 00:22:16,030 --> 00:22:18,630 is saying what you want to accomplish 494 00:22:18,630 --> 00:22:21,450 not how to accomplish a given task. 495 00:22:21,450 --> 00:22:24,350 And one of the reasons that we're able to do that 496 00:22:24,350 --> 00:22:25,940 is via libraries. 497 00:22:25,940 --> 00:22:28,910 The Python standard library is extensive. 498 00:22:28,910 --> 00:22:31,020 There are a ton of built-in functions 499 00:22:31,020 --> 00:22:32,850 and lots of additional libraries 500 00:22:32,850 --> 00:22:35,200 that you can import and use as well. 501 00:22:35,200 --> 00:22:37,330 And they take this kind of everything 502 00:22:37,330 --> 00:22:39,540 but the kitchen sink approach where, 503 00:22:39,540 --> 00:22:41,920 if there is a common programming task, 504 00:22:41,920 --> 00:22:44,670 chances are there's already a library 505 00:22:44,670 --> 00:22:47,080 that can help you perform that task. 506 00:22:47,080 --> 00:22:50,050 So for instance if I want to calculate the sum 507 00:22:50,050 --> 00:22:53,400 of a list of values, there's a built-in sum function, 508 00:22:53,400 --> 00:22:56,650 which we'll introduce in part one, 509 00:22:56,650 --> 00:23:00,900 that is able to receive a list and give you back that total. 510 00:23:00,900 --> 00:23:04,240 You don't have to figure out how to calculate that total, 511 00:23:04,240 --> 00:23:07,200 the sum function already knows how to do that for you. 512 00:23:07,200 --> 00:23:09,920 And we're going to see lots of different instances 513 00:23:09,920 --> 00:23:13,510 like that as we introduce you to various aspects 514 00:23:13,510 --> 00:23:15,310 of the Python standard library 515 00:23:15,310 --> 00:23:18,680 and other third-party libraries as well. 516 00:23:18,680 --> 00:23:21,890 Now with respect to the Intro to Data Science sections, 517 00:23:21,890 --> 00:23:25,990 our goal is to get you thinking about data science 518 00:23:25,990 --> 00:23:28,380 and various topics related to it 519 00:23:28,380 --> 00:23:31,210 in preparation for the high-end case studies 520 00:23:31,210 --> 00:23:33,440 that you'll be looking at in parts four 521 00:23:33,440 --> 00:23:36,060 and five of these LiveLessons videos. 522 00:23:36,060 --> 00:23:40,240 So in lesson one through four in this part, 523 00:23:40,240 --> 00:23:43,060 we're going to start to introduce some key things 524 00:23:43,060 --> 00:23:45,460 like basic descriptive statistics 525 00:23:45,460 --> 00:23:49,120 and also start talking about getting to know your data 526 00:23:49,120 --> 00:23:51,150 which is going to be a key aspect 527 00:23:51,150 --> 00:23:53,823 of any data science study you perform.