CS50P - Introduction
Introduction
In this section, David Malan introduces the course and explains what will be covered.
Course Overview
- CS50's Introduction to Programming with Python is a course focused on programming in Python.
- The course covers topics such as functions and variables, conditionals, loops, exceptions, libraries, unit tests, File I/O, regular expressions and object-oriented programming.
- The course assumes no prior programming background.
Course Structure
- Each week there will be lectures introducing new concepts followed by problem sets that allow students to apply those lessons learned.
- By the end of the course students will have solved many problems representative of real-world problems they may encounter in various fields.
Functions and Variables
This section covers functions and variables which are mechanisms via which you can write code that solves smaller problems but can compose those smaller solutions into solutions to larger problems still.
Topics Covered
- Functions
- Variables
- Composing smaller solutions into larger ones
Conditionals
This section covers conditionals which are 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.
Topics Covered
- Expressing logic through code
- If statements
- Boolean values (True/False)
Loops
This section covers loops which give you the ability in code to do something again and again some number of times.
Topics Covered
- While loops
- For loops
- Range function
Exceptions
This section covers exceptions which are errors that can occur when writing code. 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.
Topics Covered
- Errors in code
- Defensive coding
- Exception handling
Libraries
This section covers libraries which are third-party code written by other people 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.
Topics Covered
- Third-party code
- Reusing code
- Avoiding redundancy
Unit Tests
This section covers unit tests. You'll actually write code to test your own code. Writing tests for your code is a best practice in industry so that one, you can be sure that your code today is 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.
Topics Covered
- Writing tests for your own code
- Best practices in industry
- Ensuring correctness of future modifications
File I/O
This section covers File I/O (input/output), which is 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.
Topics Covered
- Saving data persistently
- Reading from files
- Writing to files
Regular Expressions
This section covers regular expressions whereby in Python you can define patterns and validate data to make sure the human typed something in as expected. You can use regular expressions to extract data perhaps from some dataset you're trying to analyze.
Topics Covered
- Defining patterns
- Validating data
- Extracting data
Object-Oriented Programming
This section covers object-oriented programming, a paradigm, a way of writing code whereby you can represent in code real-world entities.
Topics Covered
- Representing real-world entities in code
- Other paradigms of programming (procedural and functional)
- Additional building blocks and vocabulary