This course will teach you the fundamentals of computer programming in Python.
You can jump to any of the course lessons below:
- How To Install Anaconda and Launch a Jupyter Notebook
- Jupyter Notebook Basics
- Comments, Operations, and Variables
- Practice Problems: Comments, Operations, and Variables
- Strings and String Operations
- Practice Problems: Strings
- Data Structures: Lists
- Practice Problems: Lists
- Data Structures: Tuples
- Practice Problems: Tuples
- Data Structures: Dictionaries
- Practice Problems: Dictionaries
- Data Structures: Sets
- Practice Problems: Sets
- Logical Operators and If Statements
- Practice Problems: Logical Operators and If Statements
- Practice Problems: Loops
- Practice Problems: Functions
- Practice Problems: Classes
Additional details about the instructor and this course are listed below.
I want this course to be a personal experience. Because of that, I have created a Slack community for students to ask questions and interact with each other!
For those unfamiliar, Slack is a team messaging platform primarily used by businesses. Think MSN Messenger, but 10x better. I've used Slack in various capacities over the years and have always been pleased with my experience.
All of the code for this course's practice problems can be found in this GitHub repository.
There are two options that you can use to complete the practice problems:
- Open them in your browser with a platform called Binder using this link (recommended)
- Download the repository to your local computer and open them in a Jupyter Notebook using Anaconda (a bit more tedious)
Note that Binder can take up to a minute to load the repository, so please be patient.
Within that repository, there is a folder called
starter-files and a folder called
finished-files. You should open the appropriate practice problems within the
starter-files folder and only consult the corresponding file in the
finished-files folder if you get stuck.
The repository is public, which means that you can suggest changes using a pull request later in this course if you’d like.
If you're working through this course and are stuck on a difficult problem, here's what you should do:
- Google for a solution: This is not just me being lazy! Real-world software developers often have to Google for solutions to their problems, so getting practice at this from the start is very beneficial.
- Ask a question in the Slack community: Other students further into this course will be more than willing to help you.
- Email me: You can use this link to email me. While I always love hearing from students, please exhaust the other two options first since I might not reply right away.
My name is Nick McCullum and I have worked in quantitative finance and computer programming for my entire career. I'm currently working as the President of Sure Dividend, where I built our technology stack from scratch, including:
- Python scripts deployed on AWS EC2 and AWS Lambda
- a PostgreSQL relational database on AWS RDS
- a client-facing Wordpress site featuring a members-only login area