Introduction to Programming Fundamentals

Programming is one of the most rewarding activities you could become engaged in. It is one of the best things I have ever learned and I think that learning to program is for everyone. Before we dive in and discuss what this course is all about I want to encourage you to watch a video that I really enjoy.


Getting Started

My Model

This course will have a scheduled class time where I lecture and you listen but is designed to let you learn entirely on your own if you choose. I have prepared a number of lecture videos and documents for you to watch and read. These can take the place of lectures and should teach you everything you need to know to complete the homework assignments.

My reason for this model is that I want people to be able to learn at their own pace and not feel left behind if they miss class or held back if they are hungry for more. I want to have some face time with the students so I will make myself available on a weekly basis for anyone to come and ask me questions in person.

Our Environment

We are going to learn to program using the Python language. There are different environments that you can use to program in but the environment I recommend is a cloud environment called Cloud9.

Cloud9 is nice because you can use it from any computer that has Internet access and everything comes pre-installed. If you would like to use Cloud9, You will need to create a free account so that you will have an environment to program in. They will ask for a credit card when you sign up but you will not be charged unless you upgrade your account. You will be enrolled into AWS Free Tier which gives you 12 months of free access to various AWS services. Go ahead and click the link below to sign up for Cloud9.

Sign up for Cloud9

Another option is to install Python and a text editor (I recommend Atom) onto your computer. This route will not require you to put in any financial information and will always be free. The downside with this option is that you will need to take your computer with you whenever you want to program. This is my preferred method of programming though because it works better for my workflow and I sometimes like to program when there is no Internet.

WARNING: If you are installing Python on a Windows computer, you will need to do something special during installation. Select "Customize installation" push "Next" and check the box to "Add Python to environment variables"

Download Python Installer

Download Atom Text Editor

Our Book

This is a stand-alone course and you will not need to read a book to learn the material but I know that many people learn better from reading. I have, therefore, provided a book that I think is extensive and appropriate for the topics we will be learning. The book is free and has an online copy. Check it out at the link below.

A Byte of Python

You can also purchase a hard copy if you are more into that. Since I don't have a hard copy I will not be able to give page numbers. So you are on your own.

Purchase A Byte of Python (Optional)

I will provide links to appropriate portions of the text as they apply. You may read them if you wish. It is often nice to learn from multiple sources so I encourage you to do so but it is not required. You will see links to the online text throughout this course that look like:

The Book


We learn programming through experimentation and repetition. When talking to computers you must be very precise. Because we learn by doing, I will encourage you to take breaks from the lessons to try out a few of the things that you are learning. I call these experiments and will prompt you with the following indicator:

Try it out!

The Syllabus

The main purpose of this class is teach the basics of creating computer programs. It is not to teach about using computers. Basic computer knowledge is a pre-requisite for this class.

Lessons will be broken up into various principles. Completing a lesson will consist of watching the required videos and reading the lesson documentation for each principle and then completing the homework assignment(s).

The homework assignments will typically be programming assignments or question and answers. There is, of course, no grading associated with these assignments. I will be available on a weekly basis to discuss any problems you may experience with the lessons or the assignments. You will turn in the question and answer homework through email or GitHub but you will submit the programming assignments only through GitHub. You will, therefore, need a GitHub account. Click on the link below to setup an account.

Setup a GitHub account

I will not discuss how to use GitHub here because the first lesson covers that.

The syllabus for the class is simply the left-hand pane of this website. Each topic is assigned a lesson and there are questions and programming assignments at the end of each lesson.

My Availability

I will be available weekly:

The first hour will be regular instruction where I will go over topics from the course. The last 15 minutes (and longer if needed) I will answer questions so please come and get help. I am also available to answer questions by email. My email address is reedcwilson at You can also learn more about me at my website.

My Website

results matching ""

    No results matching ""