|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
This section contains source code for various mobile devices.
|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.|
Lecture & Source files
|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
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.|
|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.|
|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.|
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.|
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|
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.
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||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||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.|