DAVID MALAN: Hello, world.
My name is David Malan, and this is CS50's Introduction
to Programming with Python.
Whereas CS50 itself is an introduction to the intellectual enterprises
of computer science and the art 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 solves 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 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
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 projects
so as to avoid reinventing the wheel again and again.
We'll look thereafter at something called unit tests.
It 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
as regular expressions, whereby, in Python, you can define patterns
and you can validate data to make sure the human typed 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 will we
equip you with all the more tools for your toolkit.
and additional building blocks, additional vocabulary
via which, after this 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 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 courses 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.