Bill Pringle Downloads

Unless noted otherwise, all materials available for
download from my site are copyrighted by Bill Pringle, and
are licensed under a Creative Commons License.

This page describes the various files available for
downloading for Bill Pringle's classes. The courses listed in the
following tables are those which are most likely to be interested
in the particular file. You are free to download any andn all
files that you want. My lecture notes are available along with
related source files for most of my classes.

I teach two courses dealing with Programming Concepts: one for
Continuing Education (CE), and one for the Grad School (CSE 428).
The CE course is for beginning programmers, while the Grad School
course is much more advanced. In the lists below, the CE course
is identified as "Prog. Concepts", while the Grad School course
is identified as CSE 428. If something is listed for CSE 428 but
not Prog. Concepts, it is probably too advanced for a beginning
programmer. Some of the programs marked for Prog. Concepts are
probably too hard for the typical CE student. CE students are
welcome to look at any and all the files listed below; just don't
get discouraged if you don't understand some of them. Grad School
students who aren't strong C programmers may want to look at the
programs marked for Prog. Concepts for some easier samples.

The following files are available for free download,
provided you comply with the specified creative commons license.
send e-mail to
bill@BillPringle.com
if you find any broken links

Mobile Device Programs

This is the first version of a sample iPhone application that uses SQLITE,
and is meant to be used with the tutorial that I wrote and published
on my
professional web site.
The application creates a shopping list where the user can toggle whether they need
an item on their shopping list.

This is the second version of a sample iPhone application that uses SQLITE,
and is meant to be used with the tutorial that I wrote and published
on my
professional web site.
The version allows the user to add new items to the shopping list.

This is the third version of a sample iPhone application that uses SQLITE,
and is meant to be used with the tutorial that I wrote and published
on my
professional web site.
The version allows the user to edit and delete existing items to the shopping list.

Class Notes

This .zip file contains the lecture notes for my
Continuing Education course, Introduction to Programming
Concepts, along with the source files that are referenced
during the lecture. There are both C and Visual Basic source
files. CSE428 students who are beginning programmers could
benefit from these programs.

These are my Lecture Notes for CSE 428 (Programming
Languages Concepts), in Power Point presentation format. As
with all my lecture notes, there is no guarantee I will
actually follow them, but they are better than nothing.
:^)

Sample C Programs for Beginners

Sample Program using ProdList and LinkList packages,
along with the split_flds routine. This program creates two
symbol (or index) tables: one sorted by state and one by area
code. This program is helpful if you want to see a simple
example of how the LinkList and ProdList packages can be
used.

This is a collection of programs that use my packages
like ProdList, LinkList, and split_flds. The package contains
a number of releases in separate directories, with a
readme.txt in each directory. This is a good package to
download and study if you are interested in using any of the
packages, this is probably a good thing to study.

This file contains a number of sample C programs, some of
which also appear separately in this directory. If you aren't
strong in C, or are trying to figure how to do something in
C, this might be a good place to start.
The C Demo program shows you how to do a
number of operations using C.
There is also a program that illustrates how to write an
event driven C program. The event driven program is the only
C program in this collection that will only work in the
Microsoft world, because it uses some MS specific function
calls.

This is a sample C project. It implements a simple
checkbook program. This is the "default" C programming
project for the "Introduction to Programming Concepts" class.
You might want to compare this programa with the Visual Basic
version, as well as the Java version.

Sample Programs on how to search an array using C To be
really useful, the table being sorted would be an array of
structures (or structure pointers). Nevertheless, this will
give you some ideas of how to implement various
searches.

Prototype of a sample project that would create a draw
tool. This is just the shell of the program. Additional work
would be required to make this into a project. The program
introduces some concepts of Abstract Data Types (ADTs)

This program implements a quiz or drill program. You can
set up the input file to test yourself against any set of
questions. The program supports several mode of questions,
including multiple choice, and fill in the blank.

This is a routine I wrote years ago (before some of you
were born :^) which splits a string into separate fields
based on a single character delimeter. For example, it would
parse: first field|second|and third into
three fields containing "first field", "second", and "and
third".

This is the beginning of an implementation of a sporting
event program. I put this together for a CSE465 team that
didn't have any programmers. It is enough to get you started,
and you can do whatever you want with it.

Misc. Files

This is a variation of the checkbook program I often
assign for my intro classes. It is set up pretty much the
same as the C and VB versions of this program. This
particular version was written using an older version of
Java. It should still work fine, but you might get some
warning messages about calling outdated routines.

This is a series of simple Java programs that illustrate how you can
use the inheritance feature of Java to build a set of programs,
writing only a minimal amount of code.
The package includes a base GUI program that can be used
to build more programs.
Several sample programs are included,
and instructions on how to build your own.

This is a collection of general purpose routines written in Java,
including a CSV ADT, some Zip Codes validation routines,
a keyboard ADT useful for console interaction with user,
a routine to parse XML configuration files and create a hashmap for retrieving values,
a money ADT,
some Swing GUI generic frames, etc.

This is a simple math quiz program that will let you test your skills
with addition, subtraction, multiplication, and division,
using 1 through 3 digits.
It's called Dante because I wrote for a boy named Dante.

Download and unzip the file to a directory.
You can double-click on the program mathquiz.exe or create a shortcut
and put that on your desktop or start menu.
The executable was build using the program
JSmooth.

This is a Perl variation of the checkbook program. These
programs were writting by Dan Vietor, a Perl guru that I work
with. I mentioned to him once that I keep meaning to create a
Perl version of this program, and he said he was looking for
a diversion. He says it took him about an hour to do all five
releases. There are currently no "readme.txt" files. I will
add those later when I get A Round Tuit. :^)

This zipped file contains a Microsoft Word document that
describes a simple (but fictitious) computer. It describes a
basic assembler language, and gives some insight into how
computers execute programs.

This file contains a research paper and a corresponding C
program that I wrote for an Intro to AI course. It solves the
puzzle about a Farmer that is taking a Fox, a Chicken, and a
Bag of Corn across a stream where he can only take one thing
at a time. It uses several algorithms to determine the best
solution.

Advanced C Programs

Sample Programs using Lex (a lexical analyzer) and YACC
(Yet Another Compiler Compiler). The Yacc program is from the
book The Unix Programming Environment by Kernighan
and Pike. An excellent book if you want to know how to
program within the Unix environment and/or implement your own
language.

This program extracts a portion of a PostScript file. You
may specify the logical or physical page numbers to be
printed. Actually, this program extracts the desired pages.
You may then either redirect the output to a file, or pipe
the result directly to the printer.

This package contains a number of programs that I wrote
to maintain my Cheryl
Wheeler web site. Some of the programs will be kind of
hard to follow. The most general purpose program would be the
bld_page program.

This file contains a recent version of the bld_page program
(the WebTools package is older for now),
and some sample files for a basic web site.
Instructions for this package can be found on the
Web Tools tutorial page.

This is a program that I wrote to read television listings
from TV-Now and find movies that my wife was interested in seeing.
Unfortunately, TV-Now is no longer available, but if you have
access to TV listings, you could modify the file input routines
and adapt this program for your own use.
You can also look to see how I handle various data structures.
Sample input files are included.

Other Downloads

This section contains links to free and/or open source programs that I use frequently.
I have included some description of what each package does
and why I use it.
Many of these software products can be found on
Source Forge,
which is a great place to find safe, free, software.

You can buy Notetab Pro,
but I have found the Notetab Light to be just fine.
What I like about this is that I can have several files open,
and switch between them by clicking on the tab near the top of the window.
It is the text editor I use to write most of my web pages,
including this one.
This editor is almost always running on my computer.

While I tend to use Notetab Light instead of notepad,
I use JEdit when I am writing programs, HTML, or XML files.
This program has a lot of nice plug-ins that make life easier.
For example, there is a plug-in extension you can get that will
automatically generate the closing tags when you enter an opening tag.
(This makes writing HTML and XML files very easy.)

Another very nice feature of this editor is the split screen feature.
You can split any screen horizontally or vertically,
which makes it nice if you have an outline in one file and want to
read the outline while writing the actual document.
It is also useful writing one function similar to another,
or viewing two different sections of a file at the same time.

This is a great program that can make recordings
and edit them.
This is the program that I use to create CDs from concert recordings.
Usually when I get a concert recording it is one very large sound file.
I use Audacity to break the concert into segments (or tracks),
and then burn those segments onto a CD.
For Cheryl Wheeler cocnerts,
I create one track for the intro and another for the song.
By specifying no break between tracks,
when I play the CD it sounds like a concert,
but I can still go in and find a specify song or intro.

The program features an infinite "undo",
which means that even when I mess up,
I can go back and fix things.

JSmooth will create a windows executable program to will run
a Java program.
Normally, you need to run the Java interpreter and pass it the Java Program
that you ran,
but that gets to be a bit confusing for new users.
Instead, this program creates a regular windows program
that you can run like any other program.

Programming Language Sites

The following sites can be used to download various
programming languages. Most (if not all) are free, or at least
evaluation copies. This list is mostly for CSE428 students, but
all are welcome. If you know of any other sites,
send e-mail to
bill@BillPringle.com

GNU stands for GNU is Not Unix. It is a project created
by Richard Stallman, who maintained that software should be
free. His goal was a free version of Unix. Much of Linux
comes from the GNU project.
The debian project creates windows versions of the GNU
tools.

This site allows you to download a 60 day free trial
version of Common Lisp that can be used for class work. The
site also contains some tutorial information and other
articles about Common Lisp. There is no product support,
however.

Microsoft has made the command line Visual C++ compiler
available for free download. You wouldn't have all the GUI
that usually comes with Microsoft compilers, but you can
write and compile GUIs if you want.