Printable Version of this PageHome PageRecent ChangesSearchSign In
Brief Questionnaire for the Participants of the Course

Doctoral Level Independent Study
CSCI 7900-903

due: Tuesday, September 4, 2007; 9am on the SWIKI class website

1. your name:
Guy Cobb

2. the intended topic area for your PhD:
Numerical Analysis

3. most important reason for you personally to get a PhD
I want to work on interesting and large problems. I like both Computer Science and Math, and I wanted a career where I could work on them in a more free environment than most standard jobs can offer. I'd like to work in industrial research or in a lab, and one of the hurdles for that is the Ph.D.

4. name three computer scientist which YOU consider most important for the field and what you consider their contribution
4.1. Donald Knuth. The Art of Computer Programming is one of the most solid pieces of work I have ever seen. I have referred to it several times in the past and always been impressed, especially with volume 2: Seminumerical Algorithms.
4.2. Ken Thompson. The father of Unix (along with Dennis Ritchie) deserves a place on any such list.
4.3. Dennis Ritchie. Along with co-creating Unix with Ken Thompson, Dennis also is mostly responsible for the C programming language, which in my opinion has worn better than any other language over the years. I especially appreciate the way in which the Unix-ish operating systems and the C programming language seem so conceptually tied together. They seem to be two expressions of the same concept and work very well together.

5. name the three most important, professionally relevant books which you have read
5.1. The Art of Computer Programming - volume 2: Seminumerical Algorithms., Knuth
5.2. The C Programming Language - Kernighan and Ritchie
5.3. Introduction to Algorithms - Cormen, Leiserson, Rivest, Stein
5.4. Unix Network Programming - W Richard Stevens

6. assuming you will collaborate with researchers and explore ideas outside of CS during your PhD studies ? which domains are the most likely candidates for this effort
6.1. Physics
6.2. Climatology / Atmospheric Science.
6.3. Astronomy..

7. briefly characterize your own digital literacy:
7.1. which programming language do you know (mention them in an order of decreasing familiarity)
C# /, SQL, C, Java, Python, C++, shell (bash,ksh,etc), javascript, sed/awk, ruby, perl, ML, Octave, PHP, x86 Assembly

7.2. describe the top three projects (problem, programming language used, for what) which you have done in the past

At Kindred Healthcare (my former employer before grad school) I was the developer of a web-based patient acuity and staffing tool used in all of our 80+ hospitals. The application would gather information on patient condition and changes, along with other medically relevant information and generate reports and staffing projections for the following shifts. This was used to meet government standards of care as well as reports for patient trending and other purposes. The app was written in C# for the .Net platform, and used SQL server as a backend. There were also components that tied into business warehouse and other areas of the company to integrate into management reports from the business warehouse.

The other major responsibility I had at Kindred was as part of a group of developers that developed and maintained the patient care system at our hospitals. Patient charting occurred at the bedside and nurse station using touch screen flat panel terminals. The system itself ran on IBM AIX servers located in a datacenter as well as on site (mirrored systems). The system was very large (something like 40,000 users, around 8,000 of whom signed in on any given day). The system also served as a central nexus for communications between ancillary systems such as radiology, pharmacy, etc. A rather robust message processing engine allowed for easy interface to other systems. The application was written entirely in house, with not a single line of code that wasn't owned by our group. I found it fascinating to see a working filesystem / database, user interface, message processing, data replication, etc. etc. all at my fingertips to see how it worked. The core application was written in C, with other components in whatever language was most appropriate to the task. Examples include Java as a database connectivity and message publishing engine, sed/awk/perl for manipulation of text streams, and a few in-house languages to make development of user interface components easier.

A few related projects had to to with message processing between systems. Many times our group wasn't directly responsible for the data that passed through our servers, but since we had the expertise in message processing and were the largest development group in the company the task fell to us to do data manipulation and connectivity between ancillary systems. Mostly these took the form of our standard socket send and receive code (written in C), and a layer which the data passed through to do the manipulation and integrity checking. This was usually perl, python, or a sed/awk/shell script. I have also occasionally written java daemons that would integrate with other tools / databases to publish the data directly to a database.

7.3. which are the top three applications that you are familiar with (e.g. Photoshop, Canvas, Dreamweaver, iMovie, ?.)?
Drafting tools: AutoCAD / Microstation SE, SketchUp
Development tools: Visual Studio, vim, cygwin, SQL Enterprise Manager / Query Analyzer,

8. List your three favorite topics that you would like to see discussed in this course!
8.1. Milestones and staying on track.
8.2. Publishing research for the uninitiated
8.3. Tools available for research (where to look for information)

Last modified 4 September 2007 at 9:05 am by haleden