We'll use a broad range of resources during this course. These include:

  • Sakai: We will use Sakai in this course to assign and submit programming assignments, return grades, share lecture notes, and provide access to other class resources. Sakai is not really an "external" resource since it is a UNC system, but it is separate from this website. Please be sure that you can access the Sakai site for this course. You can reach Sakai by visiting https://www.unc.edu/sakai/.

  • Piazza Discussion Form: A class discussion forum has been created at Piazza. Use this forum as the first place to go when seeking help. In this way, questions and answers will be visible to the entire class, allowing us all to learn from each other. Moreover, you'll often get a faster answer via Piazza because your classmates can help provide answers via Piazza as well. In fact, I encourage all of you to actively participate in the Piazza forum. To emphasize this, you may find that I respond to your email by asking you to "ask on Piazza" before I provide an answer. Our forum is available via the following link: https://piazza.com/unc/spring2016/560/home

  • Python Documentation: Official documentation for the Python language can be found at https://www.python.org/doc/. We are using Python 3, so be sure to use the right section of the documentation. You'll find that most things between Python 2 and 3 are the same, but there are some differences that can trip you up if you read the wrong documentation.

  • PyCharm Documentation: You are free to use any development environment you choose to complete your assignments for this course. However, the only "officially supported" IDE for this course is PyCharm (see below). Documentation and demonstrations are available online: https://www.jetbrains.com/pycharm/documentation/

Finally, an enormous number of examples have been posted online via essentially every type of communication channel: tutorials, blogs, Q&As, formal documentation, articles, and more. Using a search engine like Google or Bing can often get you the answer to your questions very quickly. There are also a number of online interactive "teach yourself python" websites that could prove helpful for independent study. See the 'Books' section of the course syllabus for more information.



The officially supported IDE for this course will be PyCharm Community Edition 5, from JetBrains software. It is available for free from the JetBrains website: https://www.jetbrains.com/pycharm/download/. While the free Community Edition is sufficient for this course, JetBrains provides free licenses to students for their Professional Edition products. To use the professional edition, you'll need to apply for a free student license key by following the instructions found in this webpage: https://www.jetbrains.com/student/.

Before using PyCharm, however, you'll need to have the Python interpreter installed. This can be downloaded for free from the official Python website: https://www.python.org/downloads/. Complicating things slightly is the fact that there are two major branches of Python language: version 3.x and version 2.x. If you want to know why, and what the differences are, reach this article titled "Should I use Python 2 or Python 3 for my development activity?". For our class, we'll use the Python 3.x branch. Therefore, please download the latest version of Python 3.x and install it on your computer.

PyCharm and Python should both be installed on the computers in the SILS computer lab. In addition, PyCharm should be available via the ITS Virtual Lab under the SILS collection of software. However, it is STRONGLY RECOMMENDED that you install both Python and PyCharm on your personal laptop. This will allow you to actively participate in class exercises (a key component of your learning experience, not to mention your class participation grade). It will also allow you to complete you homework assignments without being tied to the computer lab and/or internet.



You should create a new PyCharm project for each assignment. This can be done by clicking the "Create New Project" button on the window that appears when first launching the PyCharm application. Your project must be named according to the following convention: <onyen>_proj<n>, where <onyen> is replaced with your onyen and <n> is replaced with the assignment number. For example, my onyen is "gotz". Therefore, I would name my project for Assignment 3 as follows: gotz_proj3

For each programming assignment, your submission will consist of a zip folder containing your source code for your solution. You are to submit your zip file via the Assignments section of Sakai. To make this process easier, I've posted instructions for creating the required zip file from PyCharm for both Windows and Mac computers.