M, W, F 12:20-1:10
in Upson 142

CS 1133: Short Course in Python

Spring 2020

Python in CS 1133

Python comes in several shapes and sizes. To make sure that everything works properly, we require that every single person in the course use the same version of Python. You are free to either work in the labs or to use your laptop. But whatever the case, your version of Python must be the same as what we are using in the labs. Hence, even if you already have Python installed on your computer, we ask that you install a new version (see instructions below) so you can be consistent with everyone else.

As you will see, these instructions are a bit long. Installing Python is often much more complicated than simply using it. As many people in this class have not programmed before, we have tried to make installation as simple as possible via step-by-step instructions. You are not expected to understand what many of these steps are doing. Furthermore, these instructions are lengthy mainly because we are trying to support as many operating systems as possible. In practice, you should be able to finish the installation in 15-20 minutes.

If you have problems, and if you have a laptop, the best thing to do is to bring it in to someone to look at. Any of the course staff can help you with this. If you cannot bring in your computer, we have provided you with some instructions below. If you are having difficulty with these instructions, please email Craig Frey <craig.frey@cornell.edu>.

Table of Contents

Installing Python

This semester we are recommending installing Python 3.7 and optionally the free community version of the IDE Pycharm. Please note that 3.8 is the latest version of python, but it has issues with Kivy (the graphics package we use).

Once you have the base Python install, you need to install the "Cornell Extensions". These are 3rd party extensions packaged by us (and sometimes made by us) to fit into Python. These extra packages include things like graphics capabilities to make games and flashy applications.

Before you install these, be sure to completely read the instructions for your operating system. While you are unlikely to make any mistakes, it is best for you to do things in exactly the order we tell you to. As we said, you do not need to understand what is going on here.

Installing on Windows

We prefer that all students with Windows use Windows 10. This version has been out long enough, and is stable enough, that everyone should be using it. We do not support Windows 7 or 8 anymore. If you are using an older version of Windows, we recommend that you upgrade now before the semester starts. If your machine cannot support Windows 10 you will need to work on the lab computers.

For this class, we need to use Python version 3.7. The downloads page for 3.7 will have several choices of files. You can choose any of the Windows installers, but I recommend "Windows x86-64 executable installer".

The file that you download is an installer app. Simply double click on it and follow directions. By default it will try to install under your c:\Users dir. It's ok to use that but I find it easier to put it in c:\python37\

Do choose "Add Python 3.7 to PATH".


Installing the Cornell Extensions

Windows (All)

Download the file from the link above. After downloading, you will see that this is a folder with a zipper on it. Double click on the folder. This will open an Explorer Window with another folder inside of it called CornellExtensionsInstall. Drag the CornellExtensionsInstall folder on to your Desktop. This is important, as the installation is not guaranteed to work if you click on the installer while it is still inside the folder with the zipper.

Now that you have a copy of CornellExtensionsInstall on your Desktop, open this folder (again, not the one in the zipped folder!). Inside, you should see the following two items:

Double-click on the file that is named install. This will pop up a window with a lot of scrolling text in it. Do not close the Window until you see the line that says "Installation Complete", and asking you to hit a key. If you close the Window too early, you will have to install a second time.

On some Windows systems, the security settings may prevent you from installing Cornell Extensions. On those systems, you will see a security message like the one below.

If this happens to you, click on the "More info" link. When you do that, the information message should now look like this:

Click the "Run anyway" button to complete the installation.

Once you have finished with the Cornell Extensions, you should test your installation.

Installing on Macintosh

The version of Python that we are using for this class is only compatible with El Capitan (10.11) or higher. If you have an older version of MacOS, we recommend that you upgrade to High Sierra (10.13) immediately. Otherwise, you will have to work on the lab computers for the semester.

For this class, we need to use Python version 3.7. Macs have Python 2.x installed on them by default, so Python 3 will be in addition to that. The result will be that you will always type "python3" instead of just "python" to run it.

For this class, we need to use Python version 3.7. The downloads page for 3.7 will have several choices of files. Choose the appropriate Mac installer, "macOS 64-bit installer".


Installing the Cornell Extensions

Mac OS X 64-bit

The last step is to install the Cornell Extensions for CS 1110. Download this file from the link above. After downloading the file, double click on it to unzip the contents into a folder somewhere on your computer.

Once again, you see will a package installer. Double click thid installer. You may see a warning telling you that this is not an official installer (because we made it). If that happens, you will need to control-click the installer and select Open from the drop-down menu.

If the installer launches properly, you will see the following window.

Follow the directions for the installer. Your installation is now complete. Once this is done, you are now are ready to test your installation.

Installing on Linux

Linux installation is possible, but it is not as straight-forward as the two main OS options. In particular, to install on Linux, you have to be comfortable with command shell and be ready to install files with a package installer. If this sounds daunting to you, you might want to rethink about whether you want to use Linux just yet.

For this class, we need to use Python version 3.7. However, some flavors of Linux (e.g Ubuntu really want you to use their version of Python).

Installing the Cornell Extensions

Because Linux platforms are so different, there is no one-click installer for Linux. In particular, we would need to know whether you are using apt-get (Debian, Ubuntu) or yum to install software. So we will let you do this on your own. There are two important steps.

Installing Kivy

Kivy is the graphics library that we will be using for several of the assignments in this class. In the past, students have had to compile this library from source code. However, Kivy now has installers for several flavors on Linux. Look at the downloads page for more information.

For Ubuntu, you will notice that the instructions suggest using apt-get. This only works for installing Kivy into the the official Ubuntu Python 3. This version of Python is old and missing a lot of packages. Therefore, we suggest that you install using PIP. The exact sequence for installing on Linux is as follows:

    > sudo pip install --upgrade pip setuptools
    > pip install Cython==0.28.3
    > pip install kivy

Installing introcs

If you got Kivy working, then you are almost done. The last step is the easiest. You need to install the introcs package using PIP. The command is

    > pip install introcs

Once this is installed, you are are ready to test your installation.

Using An Alternate Version of Python

If anything goes really wrong, you may just want to use the built-in Python 3 provided by your version of Linux. It is not ideal (most are still using 3.5), but it will get you through the course. However, if you go your own way, there are several packages that you must install (using PIP). All of these packages are in addition to Kivy and introcs.

Getting Started with Python

Now that you have installed Python, it is a good idea to test it out. While you do not need to know anything about Python yet, you do need to learn how to run Python programs that are already made for you.

The Command Shell

The first thing that you need to do is to familiarize yourself with command shell for your OS. The command shell is a text-based version of the Windows Explorer or Finder; you can use it to move and rename files and folders. It is also how we will run Python in this class.

Using the command shell requires a bit of practice, so we have created a separate page of instructions for this. Right now, all you need to know is how to start up the command shell; you do not need to know any special commands. Start the command shell for your OS and type


This will put you in the "Python Interactive Shell".

The Python Interactive Shell looks exactly like the command shell except that it takes Python commands (and does not respond to operating system commands to list files or change the working directory). While the command shells are different for all operating systems, the Python Interactive Shell should look and behave exactly the same way for everyone. On Windows, it will look something like this.

The > > > symbols are the prompt. To get the shell to do something, just type a Python command. For example, type

 >>> 1+1

and hit Return (do not type the > > >; it is already there). See what happens?

To exit the Python Interactive Shell, type quit() and hit Return. You can also exit by typing Control-D.

Testing a Module

It is possible to run Python modules from the command shell as well. A module is a file (ending in suffix .py) containing Python code. We will use them throughout the course. To run a module, you type

 python <filename>

from the command shell. Do not try to type this in the Python Interactive Shell. This can be a bit confusing at first; it is important to keep the following straight:

  • The command shell is a program for accessing files via text based commands. You start Python in this program, but it is not Python.
  • The Python Interactive Shell is a program that runs inside the command shell. You can tell it is running by the presence of the >>> prompt.

Running a module does not start the Python Interactive Shell. It runs all of the commands in the file, and then quits immediately when done with the file.

To test that your installation is working properly, we have a cute Python module that displays a GUI with the phrase "Hello World!" inside it, as shown below.

To try out this module, download the file the file helloApp.py and put it in some easy to find folder. Open up a command shell and navigate to this folder using the drag-and-drop trick for changing directories. Then type the command

 python helloApp.py

If you get the window shown above, congratulations! You have successfully installed all the Python libraries needed for this class.

If the Window does not show, look very carefully at the error messages. If it says it cannot find the file helloApp.py, then you did not use the drag-and-drop trick correctly. We recommend that you practice with the command shell tutorial some more. Otherwise, there is a problem with your installation of Python. Post your error message to Piazza and we will try to help you out.

Installing PyCharm - Optional

All Platforms
PyCharm IDE

The last program to install is PyCharm. Unlike Python, you will not use this program right away. The purpose of PyCharm is as a text editor to make these mysterious modules that you tested in the previous step, as well as to debug our scripts.

Technically, you can write Python modules in any text editor (e.g. a Word processor that only produces text and does not have fonts or fancy formatting). NotePad and WordPad are text editors in Windows, while TextEdit is provided by OS X. The reason we use PyCharm is that it is the same across all platforms and it includes debugging, which a simple text editor does not.

Choose the free community edition. There is a free student license that installs the full professional edition, but we don't need that. Other than that the install should be straightforward.


  • I installed Anaconda, do I need a separate python too?
    No. You're fine.
  • I like (Atom/Sublime/Notepad++/...) can I use it instead of Pycharm?
    Sure, Pycharm is optional.
  • I like eclipse, can I use it instead of PyCharm?
    Seriously, you like eclipse???
  • My mac already has 2.7 on it, can I just use that?
    No, this class uses python version 3.

Course Material Authors: D. Gries, L. Lee, S. Marschner, & W. White (over the years)