INFSCI 0012 - Introduction to Programming
(Spring 2007, CRN 16683)
[ Formal Data | Course Tools | Syllabus | Course Books | Course Schedule | Course Materials | CourseWeb | Knowledge Tree ]
The key tool for the course is the Pitt CourseWeb powered by Blackboard 5 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 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. When you use the system for the first time, you have to register and provide a login name and a password. Please, use your family name as a login name (starting with a capital letter). I.e., Steve Jones will be Jones. If there are two students with the same family name in class, please, make a user name from the first letter of your first name and your family name. So, Steve Jones will be SJones. Please, do not forget your password! Do not use your CIS login or password.
For you KnowledgeTree is a way to access several course activities associated with lectures: lecture slides, examples, quizzes and dissections.
- Dissections 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.
- WADEIn exercises allow you to explore the hidden process of expession calculation in C. You will be able to choose or write domw an expression and observe step by step how C will calculate it - starting with determining the order of calculation. This tool is adaptive - it remembers how much you have been working with every C operation and adapts the level of detal in visualising this operation. WADEIn examples can be also used in an assessment mode.
- Quizzes are provided for self-assessment. They check your understanding of basic constructs of the language. A failure to predict the target value is good indication that further reading or work is required. Each quiz can be taken many times (each time you will see different numbers in the same questions. However, only first attempt is recorded.
KnowledgeSea is a tool that helps you locate and annotate relevant parts for reading in various Web-based textbooks on C language. You can access Knowledge Sea from the course level menu of KnowledgeTree system.
There is a good number of C resources on the Web (see External links in CourseWeb), but it is not easy to locate just a few pages that you need to read for a particular lecture. KnowledgeSea allocates lectures and reading pages on a 2-dimensional map where similar pages are located together. You just need to "look around" the location of a particular lecture one the map for most relevant pages. In addition, Knolwedge Sea allows you to annotate pages with comments. You can use this feature to mark useful pages that you want to repeate during exam preparation, put questions you would like to ask, or useless pages you do not want to read again. KnowledgeSea uses social navigation to guide you to the most helpful pages and to remind you where you have been browsing in the past. The color of the "human" figure shows the amount of browsing you have done in the past. The deeper is its shade of blue, the more times you have been visiting a map cell of a page. The color of the background shows the amount of browsing done by you class. The deeper is its shade of blue, the more times the students of your class have been visiting a map cell of a page. To learn more, you can consult the instruction on using the older version of KnowledgeSea for more information.
Karel Development Tools
To complete the first parth of the course you will need to write, run, and debug programs for Karel the Robot. There are many many environments developed to support programming Karel the Robot for nearly every platform (including PalmPilot). For our course we will be using the Karel Environment developed by Professor Duane Buck at Otterbein College.
You have two options to run Karel environment.
The environment has an embedded tutorial that explains the work with the Karel programming environment and the programming language to control Robot Karel. Note that the environment and the tutorial supports two version of the language. One that is marked as Karel corresponds to your course book and should be used for first assignments. Another version marked as Jarel has different syntax that is similar to C and Java programming languages. We will use this version later in the course. Altenatively, you can use an online version of the tutorial.
A useful Karel programming summary is provided by Professor Rapaport from SUNY Buffalo.
C Development Tools
To complete the second part of the course you will need to write and debug C programs. To do that you need either
- an interactive development environment (IDE) for C or C++, such as Microsoft Visual C++, Borland C++ or LCC-Win IDE
- an editor (wordpad would work, but there are better editors for C) and a C compiler.
LCC-Win32 Free IDE
We strongly recommend you using LCC-Win32 is a relatively simple IDE with a nice C-oriented editor and a possibility to trace program execution. This IDE is easy to learn and use. Also, it is free - so you can install it on your home computer. This is the IDE that the instructor will use through the course to demonstrate multiple examples. LCC-Win32 also includes as a part Princeton's line-based C compiler
- Home page of free LCC-Win32 IDE From there there you can download the IDE cliking on lcc-win32), the User Manual for it, and even a C tutorual in PDF format.
- The installation of LCC-Win32 is simple. Just run the downloaded lccwin32.exe file and the instalation program will do the job. Do not forget to add
c:\lcc\bin to your system's path if you plan to use line-based compiler lcc.exe in addition to IDE (it is not necessary).
Dev-C++ Free IDE
- This IDE is a free Software distributed under the GNU General Public License.
- Now version 5.0 Betta is available for download. You can take a look on the interface of Bloodshed Dev-C++ 5.0 Betta here. And here on the interface of Bloodshed Dev-C++ 4.0 Release.
- You can create, compile and debug different C and C++ projects (including console applications). Switching between C and C++ languages is easy. Interface is friendly and intuitive.
- When creating Windows console application to retain an output window on the screen do not remove pause function call added by the system on default.
- Download page of Dev-C++ at Bloodshed Web site: http://www.bloodshed.net/dev/devcpp.html
jGRASP Free IDE
Another nice free IDE is jGRASP developed in Auburn University.
- It supports several languages including C and Java and is written in Java itself - so it runs on all platforms.
- jGRASP allows to show Control Structure Diagrams (as used in Karel IDA) and has very nice program visualization.
- Download it from jGRASP download page.
Other IDEs for PC
There are a number of professional IDEs that you could use to design and debug C programs. If you have some programming experience, you are welcome to use one of the professional IDE that are installed on all computers in Pitt Computer Labs: Microsoft Visual C++ (A part of the Visual Studio) or Borland C++. You can get Microsoft Visual C++ IDE as a part of the campus software package. These environments are harder to use and learn than LCC-Win32, but if programming is among your possible future careers you may invest several hours in learning one of these tools now. Students taken this course previously have found Borland C++ more friendly and intuitive than Visual C++. When using any professional IDE, make sure that you use only ANSI C features - none of C++. Your assignment will be compiled with plain C compiler. C++ constructs will be simply considered as syntax errors.
An IDE for Macintosh
In the past the instructor used visualization system Leonardo to demonstrate execution of example programs in the classroom. It is a public domain software for Macintosh. Leonardo also doubles as a complete IDE for C. So, if you have Macintosh, you could download Leonardo and use it for all your courseworks. It is very easy to install and use and covers all your course needs.
Using an editor and a compiler
An editor-compiler pair is a simple substitution for IDE. It is easier to use than any IDE, but this option provides little debugging support. We do not recommend this option unless you have special reason to use it. Here are some free software options for this way.
Using a traditional line-based C-compiler is very easy and matches the explanations in the course books. We recommend you to use line-based C compiler
lcc that is a part of LCC-Win32 (you can also download it separately using the link below). If you use an older DOS-based computer, you could use the old Turbo-C compiler that is very small and covers all your needs.
You can use any text editor that you are familiar with. Notepad and Wordpad that belong to Windows accesoiries would work (if you are using WordPad, make sure that your programs are saved as textfile with suffix .c). If you want a little bit more comfort and functionality, use one of the following free editors that are specially designed for editing programs.
Visualization tools will let you to look inside the working program. Unfortunately, there is not relevant visualization environment for C on Windows platform. You could, however, use the following two options.
Jeliot is a great visualization system for beginner-level programs . Jeliot works with Java, but for the language subset that we use for our course, there is a very simple mapping from C to Java.
Copyright © 2007 Peter Brusilovsky