CSC 408 -- PROGRAMMING LANGUAGES -- COURSE PROJECT
One of the requirements of this course is that you prepare a research paper
on a topic from the general area of programming languages. The paper will
determine 20% of your final grade for the course. It is due in my hands
at the final examth. There is no such thing as a
late date; papers received after the end of the final exam will not
be accepted.
Here are some thoughts concerning the preparation of your paper:
-
Your paper will deal with a subject germane to this course. Several
suggestions have been included below. You should talk to me as soon as
possible so that we can agree on your topic.
-
You will hand in to me, on June 9th, 1999, a one-page
abstract indicating what your paper will be about. This should include a
brief discussion of the topic you have chosen, something about how you are
approaching the subject.
-
Your paper will be presented in a professional manner. In particular, it
will be prepared using a word processor and printed on a computer printer.
(Dot matrix -- high quality print -- is acceptable.) Please be sure to
root out all typographical, spelling, and grammatical
errors!!!!!
-
You should endeavor to find a sufficient number of relevant sources of
sound academic quality for your research. You absolutely must give credit
where credit is due. It is not considered cricket to take credit for
material you have borrowed from others. This will lead to severe academic
penalties. I don't care whether you use footnotes or endnotes, but give
the citations. In either case, you will want to include a bibliography of
all sources consulted in your research for the paper.
-
The layout of the paper is more or less up to you. It is usually
considered good form to divide a longer paper into sections, to number
pages, to double space, and to provide a table of contents. The length of
the paper is determined by many factors, but I suspect you will not be
able to do an honest treatment of a topic with some substance in less than
nine or ten pages of text. Please feel free to write as much as may be
necessary to make your case, but don't pad. Thirty-five pages of drivel
is just that, drivel. I do not grade by the pound. It is possible to
write a 35 page paper and have it assigned the grade of F.
-
While I value your opinions, I am concerned that you also discover and
analyze the thoughts of other experts in the field. Please do not present
me with a long essay that simply describes your feelings about the topic.
Do some digging, find out what the experts have to say, and then digest
and analyze their thoughts. Let me know what the current thought is on a
subject -- often there will be more than one view, as is the case of the
development of Java (there's a topic for you). Your own analysis of these
ideas and the conclusions you base on them is the heart of the work.
Listed below are some possible areas of investigation for your research
paper. This list is not intended to be exhaustive, only suggestive. If you
have other ideas about what you might like to do, please feel free to
pursue them, subject to your discussion with me.
A) The historical development of a specific programming language
-how did it become into being?
-who wrote it?
-why? what was the need for the new language?
-what did it contribute?
-what implementations are possible?
-what standards have been established?
-what is its current status? (is it still in use?)
-are there any new standards under development?
B) Case study type description of a particular programming language
-compiled? interpreted?
-typing?
-primitive data types
-primitive operations
-subprograms -- parameter passing, recursion, flow of control
-information hiding
-dynamic/static data structures
-control structures -- loops, WHILE, UNTIL, CASE
-multiprocessing, multitasking, intertask communication
C) ANSI standards
-what do labels like FORTRAN90 and COBOL74 mean?
-what is the significance of such tags?
-how standard are languages? why?
-how are standards set up?
-for which languages are there standards?
-who follows the standards? how do we know?
D) The extent to which languages are machine dependent
-how are languages modified for use on certain machines?
-PCs
-minis and mainframes
-supercomputers
-what will be the impact of various non-von Neumann architectures?
-vector processors
-multiple processors
-massively parallel processors
E) Various topics in natural language processing
-non-procedural languages
-what is the future of using English, or French, or whatever, as a computer
language?
-what are the difficulties in natural language processing?
-written or typed input/output
-spoken input/output
-translation
-syntax, semantics
-what impact has work in the area of natural language processing in computer
science had on areas like linguistics, learning theory, speech analysis?
F) A comparative study of two or more languages
-how are they the same?
-how are they different?
(be sure to discuss the major topics considered in the design of
a language)
-performance comparisons for a class of algorithms
G) For the venturesome, a look into the future of programming languages
-what considerations will force changes in the design of languages?
-what will the changes likely be?
-in fifty years, what will have become of today's languages?
-evolution of programming languages from the beginning till today
-High Performance FORTRAN?
-Object Oriented COBOL?
-JAVA?
-what will be the place of natural languages?