CS 4100, Fall 2020

Topic Proposal Guidelines


No two students may work on exactly the same topic. Initiate a "claim" to a topic by uploading your topic proposal to the homework submission system no later than Friday, September 18th. Below are format guidelines:


<Your Name>
<Your Email Address>
CS 4100
<Date>
Topic Proposal

<Working Title of Final Paper>


First paragraph: describe your proposed topic.

Second paragraph: discuss which issues you intend to address and emphasize and what you intend to leave out and why.

Additional paragraphs as necessary.

Keep your description focussed on the exact topics your paper will cover. Explaining what Java, parallelism, or a mobile device is, and so on, is unnecessary.

Provide a list of tentative sources in ACM or APA format. (ACM preferred.) You must have at least four sources and they must be reliable (peer reviewed, edited, or primary).

ACM

ACM Journals Word Style Guide
ACM Citation Style and Reference Formats

APA

How to Cite Sources, CSU Stanislaus Library (APA Style)
APA Style, Purdue Online Writing Lab


Your claim will be finalized when I approve your proposal; I may ask you for one or more revisions along the way. Topics will be assigned on a first-come-first-served basis. Submit your topic proposal no later than Friday, September 18th. Some approaches to topic selection include:

  1. Start with a problem and look at which languages (often special purpose) are used to solve the problem. Consider the design choices made to facilitate solving this type of problem. Some examples might include a challenge particular to graphics, teaching, robotics, mobile devices, supercomputing, or cloud computing.
  2. Start with a problem and look at a language and specific library (sometimes called a framework) used to solve the problem. Consider the techniques available in that language and library that facilitate solving this type of problem. Some examples might include a challenge particular to graphics, teaching, robotics, mobile devices, supercomputing, or cloud computing.
  3. Look, in some depth, at how an challenging aspect of programming languages is handled in one particular language. Some examples could include, data sharing, parallelization, or memory management (garbage collection).
  4. Look at how an interesting aspect of programming languages is treated differently in two different languages. Some examples could include parameter passing, typing, scope, basic data types, etc.


Nota bene: DO NOT include web site URLs in your references unless those URLs will work for anyone on any computer. URLs that include libproxy in their text are forbidden -- they work only for you, not for the professor or anyone else.


Examples of how to cite sources (ACM style) and create a bibliography - you can do no better than to download and examine a few recent papers published by SIGPLAN, the Special Interest Group on Programming Languages.

At the bottom of the SIGPLAN web page are links to papers of particular, recent interest to the professional programming languages community, such as "Confessions of a Used Programming Language Salesman: Getting the Masses Hooked on Haskell" (very popular in May 2020) (the programming language Haskell, and functional programming languages) or "Thriving in a crowded and changing world: C++ 2006-2020" (very popular in June 2020).

These papers cite their sources using the ACM reference style, which is one of the styles you, too, are welcome to use. (Just spell out the complete names of your sources, instead of abbreviating. Use "41st ACM SIGPLAN International Conference on Programming Language Design and Implementation" in your bibliography, instead of "PLDI '20".)


Last edited Aug. 22, 2020