INFSCI 0012 - Introduction to Programming with Python
(Fall 2015, CRN 29740)
[ Formal Data | Course Tools | Syllabus | Course Books | Course Schedule |CourseWeb | Knowledge Tree ]
Course Tools
Teaching Tools
CourseWeb
The key tool for the course is the Pitt CourseWeb powered by Blackboard Course Management System, a product of Blackboard, Inc. A set of course materials and tools is available on the CourseWeb course site. You need to have Pitt University Computer Account to login to CourseInfo site. Use Account Managament Page to check the status of your account. We will use CourseWeb for all communication during this course, to take quizzes and to submit solutions for the assignments.
KnowledgeTree
KnowledgeTree is a system that provides a dynamic access to the course material. From the surface point of view it looks quite like the static "Course Materials" page. However, it is not static. It can watch what you are doing and adapt to your level of knowledge. The link to KnowledgeTree is right on the navigation bar of every course page. You have to login to start working with KnowledgeTree. Your login and password will be send to you by e-mail. You will be able to change your pasword.
For you KnowledgeTree is a way to access several course activities associated with lectures: lecture slides, annotated and animated examples, semantic questions and Parson's problems, educational videos. This is the place to access two kinds of mandatory assignments and all practice content.
- Annotated examples provide you with an interface to explore comments that a teacher has attached to the lines of the program examples. It is the second chance for you to understand the example if you missed the class or can't grasp the example during class presentation.
Annotated examples can be found in the Mastery Grids practice section.
- Animated examples provide a look inside the computer when it execuse your program and shows how various language construct works. Each lecture will have one or more mandatory animated example to explore, many more are available for your free exploration in the Mastery Grids practice section.
- Semantic questions are provided for self-assessment. They check your understanding of basic constructs of the language. A failure to predict the target printout is good indication that further reading and workwith examples is required. Each question can be answered many times (each time you will see different numbers in the same questions). Semantic questions can be found in the Mastery Grids practice section.
- Parson's problems allow you to work on simple program program composing exercises simply by assembling program tiles in the correct order. This is a good practice before writing a real code for programming problems. Each lecture will have one or more mandatory Parson's problems, but many more are available for self-assessment in the Mastery Grids practice section.
Python Development Tools
To complete programming assignments, you will need to write and debug Python programs. To do that you need either
- an interactive development environment (IDE)
- an text editor and a Python interpreter
Eclipse
We strongly recommend you using Eclipse, one of the most popular Java IDEs used by both students and professionals. While Eclipse is relatively complicated, it is not more complicated than Microsoft Word or other high-functionality application. Use our guide or free online tutorials to locate a small subset of functionalities that you need for your work with examples and problems. Once you learn the core functionality of Eclipse, you can explore some of the useful pluguns
There are many other free and commercial IDE that work with Python and you are welcome to use any of them if it is something you get used to. However, if this your first IDE, we recommend Eclipse.
Educational IDEs
An alternative for Eclipse and other professional IDEs is a small set of educational IDE that are specifically developed for the needs of students learning introductory programming. These IDEs do not have many components that students do not need while also offering some additional useful learning tools that the professionals do not need. As a result, many introductory classes use educational IDEs. In this category, I would recommend jGRASP developed in Auburn University.
- It supports several languages including Python, C++ and Java and runs on all platforms.
- jGRASP allows to show Control Structure Diagrams, a good tool for beginners!
- jGRASP has very nice program visualization.
Using an editor and an interpreter
An editor-interpreter pair is a simple substitution for IDE. It is easier to use than any IDE, but this option provides little debugging support. We will use it at the start, but do not recommend this option for more advanced parts of the class unless you have special reason to use it. Here are some free software options for this way.
Python Interpreter
Using a Python interpreter is very easy and matches the demonstrations in the course books. A Python interpreter should already be installed on your Mac and Linux computer and might be available for Windows as well. It could be accessed by typing Python in the command line. You could also download Python for your mobile phones or tablets. However, do check the version of this already installed interpreter. The course is be based on Python 3. While the difference with older versions (i.e., 2.7.5) in the context of the course are minimal and will be explained, it is still better to use Python 3 interpreter where all course examples will work correctly. Please, see link below for Python 3 for Mac and Windows. Here are good versions of iOS and Android Python Interpreters.
Program Editor
You can use any text editor that you are familiar with. If you want a little bit more comfort and functionality, use one of the following free editors that are specially designed for editing programs such as Mac OS Text Wrangler.
Copyright © 2015 Peter Brusilovsky