Bill Pringle - Bill@BillPringle

|  Home  |  News  |  Downloads  |  LDS  |  Talks  |  Famly History  |  Facebook  |  Games  |  Mobile  |  About Me  |

Bill Pringle Downloads

Creative Commons License Creative Commons License Symbols 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 if you find any broken links

Mobile Device Programs

This section contains source code for various mobile devices.

File Description
iPhone Shopping List V. 1 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.
iPhone Shopping List V. 2 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.
iPhone Shopping List V. 3 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.
Android Flashlight This is a very simple Android application that functions as a two-color flashlight. It is based on a class project for a course on programming Android Applications offered by Creative Techs.
Android ToDo List This is a simple todo check list that is based loosely on the class project for a course on programming Android Applications offered by Creative Techs.

Class Notes

File Course(s) Description
Programming Concepts
Lecture & Source files
Continuing Education
Programming Concepts
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.
CSE 428 Lecture Notes CSE 428 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. :^)
CSE 465 Lecture Notes CSE 465 These are my Lecture notes for CSE 465 (Data Structures and Algorithms) I don't necessarily follow them, but they are what I start with.
CSE 465 Source Files CSE 465 These source files are taken from the text book. They have been commented, and in some cases improved (or at least changed :^). They should run on just about any system that has a C compiler.
SWENG580 Template SWENG 580 This is the publication template for the research paper.

Sample C Programs for Beginners

File Course(s) Description
Sample C Programs
Mostly suitable for beginning C Programmers
areacode CSE465 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.
Get Info Project CSE465, CSE428 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.
Black Jack program Prog. Concepts The text book I used for my Fundamentals of Programming course had a blackjack program in the appendix. It didn't work. I wrote this one for those who wanted to see something similar.
C Sample Programs Prog. Concepts, CSE428, CSE465 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.
C Checkbook Prog Concepts, CSE428 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.
C Parsing Prog Concepts, CSE428 Sample Programs for parsing strings in C There are two methods shown: parsing using the strtok routine, and parsing a fixed number of supported patterns (e.g., date, phone number).
C Searching Routines Prog Concepts, CSE428 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.
C Data Demo Prog Concepts, CSE428, CSE465 Sample programs on how to implement several types of data structures using arrays in the C language
Draw Tool CSE428, CSE465 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)
Quiz Program CSE428, CSE465 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.
X and O in C Prog Concepts, CSE428, CSE465 This program is set up as a semester project It contains a number of releases that implement a program to play Tic-Tac-Toe.
GetInfo Loc CSE428, CSE465 This program illustrates how to create an ADT using handles that are not memory locations.

VB Programs

File Course(s) Description
Sample Visual Basic Programs
VB Checkbook Program Prog Concepts, CSE428 This program is set up as a semester project. It contains a series of releases which incrementally implement a checkbook program using Visual Basic.
VB Parsing Prog Concepts, CSE428 Sample program for parsing strings in VB. There are two methods shown: parsing a field at a time, and using the Split function
VB Sample Programs Prog Concepts, CSE428 This package contains a number of sample Visual Basic programs.

Misc. Rountes written in C

File Course(s) Description
Top of Page
Misc. Routines written in C
Mostly interesting to Grad School students
LinkList Package CSE465 This package implements a generic Linked List. If you download Areacode, you don't need to download this package also, since that package contains these files
ProdList Package CSE428, CSE465 The ProdList package implements a variety of dynamic arrays.
ESP Parse Routines CSE428, CSE465 Parsing routine from my thesis (ESP - Evolutionary Structured Programming) The file won't compile as is, but you should be able to glean some ideas on how to parse a source code file.
Split Fields Routine CSE428, CSE465 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".
wrpStack CSE465, CSE428 Implementation of a stack using the ProdList package
wrpQueue CSE465, CSE428 Implementation of a queue using the LinkList package
wrpHash CSE465, CSE428 Implementation of a Hash Table using the ProdList package.
wrpcsv CSE465, CSE428 Implementation of an ADT for CSV files. Included is a program that will read a CSV file and create an XML file. Documentation page
Olympics CSE465, CSE428 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

File Course(s) Description
Misc. Files
Mostly suitable for beginning programming students
Java Checkbook Program Prog. Concepts, CSE428 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.
Java GUI Programs All groups 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.
Java WrpUtils Routines All groups 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.
Dante - Math Quiz All groups 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.
Perl Checkbook Program Prog. Concepts, CSE428 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. :^)
A Simple Computer CSE428, Prog Concepts 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.
CE Take Home Midterm Continuing Education
Prog Concepts, Fundamentals
This zipped file contains a takehome midterm. Actually, I don't collect or grade the test, but will review the answers in class. The CE final will be similar to this, but three times as big.
Farmer Puzzle Prog. Concepts, CSE428, CSE465 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

File Course(s) Description
Advanced C Programs
Programs not recommended for beginning C programmers
Lex & YACC Sample Programs CSE428 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.
PS Pages CSE428, CSE465 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.
PS Cover CSE428, CSE465 This program implements a language to create J-Cards for musical cassettes. The .zip file includes the complete source files, but also Win32 executables.
Albums CSE465, CSE428 This program implements a music database program. This .zip file contains complete source code, as well as Win32 executables. There is a lot of source code, and not for the faint of heart.
Web Tools CSE428, CSE465 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.
Bld Page CSE428, CSE465 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.
ScanTV CSE428, CSE465 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.
Top of Page

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.

Notetab Light
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.
This program allows you to create eBooks from various kinds of files.
This program allows you to upload and download files. It is very handy for maintaining web sites.
Inkscape is an Open Source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format.
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.
This program is an XSLT translator. It allows you to create an .xsl file and translate XML documents into some other type of document.
This is the program I use to create my Scriptures Study web pages:

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

Site Language(s) Comments
GNU gawk (awk), emacs, gcc, flex (lex), bison (yacc), GNAT (Ada), gpc (Pascal), prolog, sed, GNU Smalltalk, 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.
GNUWin Lots of languages This site has a collection of free software that has been built for Windows environments. Lots of languages This site provides tons of links to all kinds of free compilers, interpreters, and programming tools.
Bloodshed Turbo Pascal This organization provides free software. It has Turbo-Pascal and C++
Sun Microsystems Java Sun created Java. It is free, but isn't under the GNU copyleft license (GPL)
O'Reilly Perl Site Perl O'Reilly are the folks who publish Perl and a number of other programming books. Their focus are on Unix/Linux tools.
Free Pascal Pascal This web site has a free, open source, implementation of Pascal.
Tcl Developer Xchange Tcl / Tk There are probably a number of sites where you can download this. If you know of an "official" site, let me know.
Python Python Python is a scripting language that is known for interfacing with databases, among other things. This site contains a nice tutorial that will help you learn the language.
Franz Inc. Lisp 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.
Corman Technologies Lisp This site has a 30 day trial license for a Common Lisp IDE. After 30 days, the compiler can still be used from the console application.
GNU Fortran
FORTRAN Two sites with free FORTRAN compilers.
Digital Mars C, C++, and others This site has several free compilers available. It is also the home of a new language called "D", that is based on Java/C++.
Haskell - A Purely Functional Language Haskell This site talks about Haskell, a functional programming language. It contains a tutorial, pointers to compilers, etc.
Microsoft Visual C++ Visual C++ 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.
Ruby Ruby Ruby is an object oriented scripting language that runs on Windows, Unix, and even DOS. This site contains tutorials, free downloads, etc.

Valid XHTML 1.0 Transitional Valid CSS!

© 1999-2014 Bill Pringle.      Hosting courtesy of CHCS Consulting.      This site best viewed with FireFox. Get Firefox!