Bill Pringle

|  Home  |  News  |  Downloads  |  LDS Resources  |  Talks  |  Famly History  |  Games  |  Teaching  |  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 wrp103@gmail.com if you find any broken links

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.
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.
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.
Top of Page

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 wrp103@gmail.com

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.
http://www.thefreecountry.com/ 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.
Fortran.com
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.

Help Compiling C Programs

If you have problems compiling some of the C programs, this section might help. I normally use the Borland C++ 5.0 compiler. They should all compile fine under Microsoft Visual C++ as well.

There are two kinds of C programs: (a) the kind with only one C source file, and (b) the kind with a group of C source files. You have to compile those two kinds of programs differently. Notice that if you download the C source files that go with the lectures, there will be several source files, but each one will usually be a single program.

Single Source C Programs

The easiest ones are the single source file programs. Simply load the C program into the compiler (File/Open), and then press the little thunderbolt button in the toolbar. If the toolbar isn't displayed, you can select Project/MakeAll or press F9.

Make sure the source file is selected (highlighted), because that is what the compiler tries to compile. For example, if you have selected the message window and then try to compile, it will complain and give you an error because the message window isn't a C program. Also, make sure you don't have a project open. If when you select the Project menu, if you see the menu option "Close Project" active, select it.

Multiple Source File Projects

If you have more than one source file, then you have to set up a project. Copy all the source files into some directory. Then, select "File/New/Project...". This will bring up the target wizard.

Use the "Browse" button to find the directory containing the source files. Type in the name of the executable you want to create (the name can be anything, even something different than any of the source files.) Click on the "Advanced" button, and select "No Source Node" and uncheck the .rc and .def files.

The Target Type should be set to Application (.exe) already, and the platform should be "Win32". Change the target model from "GUI" to "Console".

Once this is set up, click the "OK" button. This should create a new project window with no source files. Right click on the name of the executable in the project file, and select "Add Node". This should bring up a dialog box with a list of the source files in the project directory. Select what source files you need to make up your executable, and add them to the project. You can do this one file at a time, or use Ctrl-Click and/or Shift-Click to select more than one file to add at a time. You should only have to do the above once.

Make sure you don't add any include files to the project. Only add source files (.c or .cpp).

From then on, you simply click on the thunderbolt button. When you are working with a Project, it doesn't matter what window is selected. Make sure you close the project before you try to compile a single source file program.

Valid XHTML 1.0 Transitional Valid CSS!

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