Transcript for:
CS50 Python Programming Course Overview

DAVID MALAN, Hello, world. My name is David Malan, and this is CS50's introduction to programming with Python. DAVID MALAN, Whereas CS50 itself is an introduction to the intellectual enterprises of computer science and the arts of programming, this course is specifically focused on programming in Python itself. At the beginning of the course, we'll be focused on a topic in programming known as functions and variables, mechanisms via which you can write code that solve smaller problems, but you can compose those smaller solutions into solutions to larger problems still. We'll then transition to a look at conditionals, a way in code of expressing yourself logically to maybe do something if you're able to do that. DAVID MALAN, Some question has an answer of true or not do something if the answer is false. We'll transition thereafter to introducing you to loops, the ability in code to do something again and again and again some number of times. We'll then transition to something a little more technical known as exceptions. Unfortunately, a lot can go wrong when you're writing code. Some of it your fault, some of it perhaps someone else's fault. But you can write code defensively, so to speak, and actually catch those kinds of exceptions, those errors, and handle them properly so that the users you're writing code for DAVID MALAN, Don't actually see the same. Thereafter, we'll take a look at libraries, third party code written by other people often, or perhaps yourself in the past, that you can use and reuse in your own project so as to avoid reinventing the wheel again and again. We'll look thereafter at something called unit tests. And turns out, you'll actually write code to test your own code, but you won't have to write tests for your tests. Indeed, this is a best practice in industry, writing tests for your code so that one, you can be sure that your code today is, hopefully, if your tests are correct, correct itself. But moreover, if you or someone else modifies your code tomorrow or down the line, you can rerun those same tests to ensure that those new changes have not broken anything about your own code. We'll then take a look at something called File I-O, I-O for input and output, the ability to not just store information inside of a computer's memory, but rather save it persistently to disk, so to speak, to files and folders. We'll then take a look at another technique known regular expressions, whereby in Python you can define patterns and you can validate data to make sure the human types something in as you expect. You can use regular expressions to extract data, perhaps from some data set you're trying to analyze. We'll then take a look ultimately at object-oriented programming, a paradigm, a way of writing code whereby you can represent in code real-world entities. And this is in addition to other paradigms of programming that we'll also explore, among them procedural programming, where you write lots of those functions, procedures, really, top to bottom to solve problems step by step, and even something known as functional programming as well. And then at the very end of the course, we equip you with all the more tools for your toolkit, an additional building blocks, additional vocabulary, via which after the same course, you can go off on your own and either take other courses or solve projects of your own using all of these mechanisms. Now, this course itself assumes no prior DAVID MALAN, PROGRAMMING BACKGROUND, SO YOU DON'T HAVE TO HAVE WRITTEN A SINGLE LINE OF CODE IN Python or any language yet. But this is also a course that you can take before, during, or even after CS50 itself if you'd like to get all the more versed with Python. Each week via the course's lectures will we introduce you to any number of concepts that we'll then drill down more deeply into in the form of problem sets each week, that is, programming projects that will enable you to apply some of those lessons learned to problems of your very own. And by the end of the course, you'll have solved so many problems that, ideally, are representative of problems you'll eventually encounter in the real world. Whether you aspire to solve code in the technical world, or perhaps in the arts, the humanities, the social sciences, the natural sciences, or beyond, you'll have, ultimately, the vocabulary and the technical skills via which to approach the same. This, then, is CS50. And this is CS50's introduction to programming with Python.