I started programming in 1983 while a sophomore in high school using the
BASIC language on a Commodore 64 computer. Since that time I have taken
several computer science programming courses and applied this knowledge on
various projects for engineering classes and while working at Project Vote Smart
and as a contract programmer.
Skills
Current
Projects
Reading
Lately
Programming
Samples
Computer
Programming Courses Taken
Computer
Engineering Courses Taken
|
Languages | |
| Java | Programming in Java since November of 1997 - although paid to do it since January of 1999. Lots of experience with the Swing, Reflection, and Collections API's. Some experience with JDBC, Tomcat, multi-threading, and XML-RPC for Java. |
| Python | Started using Python/JPython in October of 1999 at contract job at Jenkon International. What a cool language! |
| C++ | Started learning in July of 1997 by reading books and writing small programs using MFC with MS Visual C++ 5.0. No large programs written yet. |
| C | Took two programming courses using C staring in 1990. Used C in several projects for engineering classes while an undergraduate and a graduate student. |
| Visual Basic | Started learning in May 1997 so as to supervise programmers using it for database applications. Started writing small programs in July of 1997 using Visual Basic 5.0. No large programs written yet. |
| Perl | Used extensively for several years starting in the Fall of 1994 for tasks at Project Vote Smart. Wrote scripts to convert comma-delimited files extracted from a custom database into a hierarchy of web pages. Also used for writing CGI scripts to perform data look-up by ZIP CODE and the posting of messages on web site. Taught Introduction to Perl class at PEAK. |
| HTML | Wrote web pages with vi for two years. Latest version I learned is 2.0 using tables and frames. |
| SQL | Read up on this language from a couple books on databases and used it with a Perl module for presenting data in HTML. Use it on occasion for querying data from MS Access 97. |
| Assembly | Gave an introduction to and demonstration of the use of the AMD 29000K uP instruction set while a graduate TA. Used some x86 instructions for assignments in engineering classes. Worked with simplified instructions sets in computer architecture classes. |
| Pascal | Took a course in Pascal in 1988 and used it for class assignments into 1990. |
| FORTRAN | Took two courses in this language 1987-1988 and haven't used it since. |
|
Applications | |
| Apache | Configured, installed, and managed Apache web server versions 1.0-1.1 for two years at Project Vote Smart. Utilized FastCGI module to speed up certain CGI programs. |
| MS Access 97 | Using currently to create sample databases for Visual Basic projects. |
| MATLAB | Used this math simulation package for several years in projects for engineering classes. Last used in 1993. |
| Mentor Graphics' IC Station |
Used 7.X-8.X versions of this integrated circuit design package to layout 4 integrated circuits between 1991 and 1994. Wrote rules files for device layout, verification, and extraction for two different GaAs fabrication processes. |
| SWITCAP | Used this switched-capacitor circuit simulator for class project in 1993. |
|
Operating Systems | |
| Windows NT 4.0 |
Installed server and workstation editions at work and at home. Currently use NT Workstation for most tasks. |
| Linux | Installed Linux 1.2-2.0 on servers and managed network services for two years. Services included: Apache web server, gopher, BIND, sendmail, routed, dial-up modem connection, and proxy firewall. |
| Sun Solaris 2.5 for Intel |
Installed OS on webserver machine and setup perl, apache, gnu c, and various utilities. |
| Windows 95 | Installed and managed network of Windows 95 clients for one year. |
| Windows 3.11 | Installed and managed network of Windows 3.11 clients for one year. |
| MacOS | Used Macintosh computers for Pascal programming, desktop publishing, and graphics for several years. Last version used was 7.X. |
I will post these programs on my web page as freeware when they are ready.
1. Educational program simulating the motion of planets and other masses under the influence of gravity (Java and VRML).
2. Diet balancer utility to evaluate a person's meeting of their nutritional needs utilizing USDA Food/Nutrition data (Java and ObjectStore PSE object database).
Barely Started Reading
Read a Few Months Ago
Read SomeTime Ago
1998 Congressional Elections Predictor - My first and only Java applet. Runs under browsers that support JDK1.1. Written before I knew OOP very well in October 1998. (That's my excuse. I'm embarassed to look at that code these days!)
HTML Publishing and CGI - There are many Perl scripts I wrote at
Project Vote Smart but they belong to PVS.
1994-1997
Voice Separation
and Cancellation - A C program implementing a comb filter to isolate,
and seperate or cancel a human voice from other sound. Class project for
ECE 475.
June 10, 1993
Image
Processing - A C program to perform various user-selected image processing
operations on raw image files and display them. Written for IE 592
(Computer Vision) class project.
March 4, 1993
Statistics - A C
program to perform statistical operations on a set of random generator function
generator integers which have undergone a mathematical transformation.
Written for CS 312 class assignment.
October 31, 1990
Program
Simulator - Pascal program for simulating the operation of a simplified
architechture microcomputer using assembly language instructions. Written
for EE 373 class assignment.
June 1, 1990
Test Scorer --
a Pascal program for grading test and calculating grades. Written for CS
211 class assignment.
May 25, 1988
Mandelbrot Set
Viewer - A simple keyboard driven program in Turbo Pascal 4.0 for DOS using
Borland's old graphics API with image saving and restoring.
May 7, 1988
A Python/PostgreSQL program for monitoring database table updates described in a
talk
I gave to the
Seattle Postgres Users Group in October 2011.
| CS 411 | C/ Operating Systems (C + UNIX) | Fall 92 |
| ECE 451 | Dynamic System Simulation (C) | Fall 90 |
| CS 312 | UNIX + C Programming | Fall 90 |
| CS 213 | Symbolic Language Programming (FORTRAN) | Fall 88 |
| CS 211 | Introduction to Computer Science (Pascal) | Spring 88 |
| PH 103 | Basic Logic for Mathematics | Winter 88 |
| NE 103 | Introduction to Nuclear Engineering + Computers (FORTRAN) | Spring 87 |
| High School | BASIC and Advanced BASIC Programming | 1985-1986 |
| ECE 575 | Advanced Microprocessors | Spring 93 |
| ECE 578X | Digital Communication and Networks | Winter 93 |
| ECE 576 | High Performance Advanced Computer Architecture | Spring 92 |
| ECE 573 | Computer Architecture II | Winter 91 |
| ECE 572 | Computer Architecture I | Fall 91 |
| ECE 371 | Computer Architecture I | Fall 89 |