William D. Shoaff
Florida Institute of Technology
Recognizing the importance of computer science an inquisitive being might ponder the changes it has brought to society: life-style, legal and ethical issues, and knowledge advancement. Contemplating these subjects allows the inclusion of advanced subjects on algorithms for which there is typical not enough time in a semester's course.
Few would quarrel with the statement that computers have brought changes in our lifestyle. Whether or not these are good or bad is however a contentious subject. There are several algorithms that have made many recent inventions feasible. The Huffman coding scheme [2] and fast Fourier transforms [1] are two algorithms that many credit with significant advances.
Encryption algorithms play an important role in computers and their use, for example, in electronic transfer of funds, credit card numbers, sensitive or secret data, personal email, medical records, passwords, and so on. There is a United States law, the Communications Assistance for Law Enforcement Act of 1994 (CALEA) which makes the use or export of some encryption schemes illegal. One issue is providing a back door that government can use to decode encrypted messages for law enforcement.
One can argue that computer scientist/software engineers have a legal and moral responsibility to ensure that algorithms and code that they develop are correct. Since computers control life-critical and/or economic-critical systems this is a real problem that we must address, just as scientist and engineers in other disciplines have done.
Computers have augmented the rapid accumulation of information and an awareness of the world and universe in which we live. This increased understanding is evident in the physical sciences (physics, biology, chemistry, medicine) and social sciences (economics, anthropology, environmental studies).
The accepted model of computing is based on Turing machines or equivalent formalisms. This is sub-summed in the Church-Turing hypothesis:
A function is ``computable'' if and only if it is a partial recursive function, that is, there is a Turing machine for it.It may be that other models of computing are feasible. For example, it appears that DNA computers can ``solve'' know NP-complete problems efficiently, and computers based on quantum effects may be even more powerful. I have to admit my knowledge of these developments is limited.