[net.cse] How I use theory at work

parnass@ihu1h.UUCP (Bob Parnass, AJ9S) (03/08/86)

x

A recent  posting  questioned  the  usefulness	of  computer
science	courses.

  >  ...There is no "science" in most applied computing.  Professional
  >  programmers seldom	spend any time on CS concerns.	The applications that
  >  need to be	programmed aren't exotic; they just need to be written....

As a "professional programmer",	perhaps	I can  lend  comfort
to  students  struggling  through tough	courses	if I mention
how theoretical	knowledge has served me	in solving practical
problems.


  >  Look at this list of CS topics suggested so far:
		.....
  >  > theory of formal	languages,

I used Theory of Formal	Languages in 1978  when	 writing  an
intermediate  language	for  the forms entry software for an
intelligent terminal.  It was comforting to  know  that	 the
language could be parsed!

  >  > combinatorics,
  >  > universal algebra,
  >  > Boolean algebra,

A knowledge of Boolean Algebra came in handy when writing  a
printer	 driver	 for a Z8000 based SNA cluster controller in
1982.  Helped me understand the	interface specifications for
the peripheral chips involved.

  >  > Statistical theory of communication and linear systems,

In 1983, an understanding of the work of Messrs. Shannon and
Nyquist	 helped	me explain to my boss how a lot	of facsimile
data can be sent across	an important data link	in  a  short
period.

In 1984, using knowledge from Communications Coding  Theory,
I  wrote a function that calculates a Residue Code to detect
data errors in transmissions between the Bell Labs computers
here  and sites	in the Netherlands.  Residue codes have	cer-
tifiable performance, and are not  just	 a  "hobbyist"	code
that adds up byte after	byte and checks	results	at each	end.

  >  > complexity theory (concrete and asymptotic),
  >  > theory of computation,
  >  > graph theory,

In 1985, I used	Graph Theory  and  Computational  Complexity
Theory	to  speed  up queries in a relational DBMS we use to
keep track of program dependencies.  The  solution  involved
modeling  the  data as a directed graph, and calculating its
transitive closure.

  >  > propositional and predicate calculus,
  >  > relational algebra,

A background in	Predicate Calculus  and	 Relational  Algebra
helped me formulate and	write the non-trivial queries in the
relational DBMS	referred to in a previous example.

  >  > model theory,
  >  > recursion theory,
  >  > lambda calculus,
  >  > denotational semantics.
	.....
  >  > calculus,
  >  > advanced	calculus for engineers,
  >  > linear algebra,
  >  > mathematical statistics
  >  > numerical analysis,

Alright, so I confess to an indefensible love  for  calculus
and  vectorspaces.  I can't think of a specific	use I've yet
made of	calculus  in  programming,  but	 I'm  still  looking
forward	to such	an opportunity.


  >  Is	there anything on this list that will help you port UNIX(tm) to
  >  a new system?  What about implementing an FFT?  What about	when your
  >  assignment	is to write a windowing	system for a bit-mapped	display?
  >  Does it provide any guidance for writing a	CICS Command Level
  >  transaction which allows funds to be transferred between accounts?
  >  Will it simplify the job of writing an electronic spreadsheet program?
  >  Or	maybe it will help you write an	SNA or SCSI interface?
  >	.......
  >  Doug Pardee -- CalComp -- {hardy,savax,seismo,decvax,ihnp4}!terak!doug

Don't fight theoretical	concepts - look	for opportunities to
put them to good use in	formulating quality solutions.

-- 
===============================================================================
Bob Parnass,  Bell Telephone Laboratories - ihnp4!ihu1h!parnass - (312)979-5414

ladkin@kestrel.ARPA (Peter Ladkin) (03/11/86)

In article <781@ihu1h.UUCP>, parnass@ihu1h.UUCP (Bob Parnass, AJ9S) writes:
> 
> As a "professional programmer",	perhaps	I can  lend  comfort
> to  students  struggling  through tough	courses	if I mention
> how theoretical	knowledge has served me	in solving practical
> problems.

I guess I don't have to post my list now.
Yours is certainly impressive.

> Alright, so I confess to an indefensible love  for  calculus
> and  vectorspaces.  I can't think of a specific	use I've yet
> made of	calculus  in  programming,  but	 I'm  still  looking
> forward	to such	an opportunity.

Numerical Analysis.

> Don't fight theoretical	concepts - look	for opportunities to
> put them to good use in	formulating quality solutions.

That sums it up nicely. Or, to put it another way:
Theory mostly isn't.
                                  
Peter Ladkin