Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
CSC9Y4 Programming Language Paradigms Spring 2013 
Assignment: Programming Languages Report 
University of Stirling  
Computing Science and Mathematics 
ABB - CES page 1 of 5 
 
Date Due: 
  4pm Monday, April 15th 2013 
   
Your report should be printed out, and placed in the box labelled 
CSC9Y4 outside 4B89. This will account for your submission. Besides, 
please also send a pdf copy of your report by e-mail to 
abb@cs.stir.ac.uk in a file called Y4_.pdf .  
 
Within three working days of collection the course organiser will post a 
notice on the CSC9Y4 website with a list of assignments received. It is 
your responsibility to check this list to ensure your assignment has 
been successfully submitted. 
 
Read carefully the paragraph below about plagiarism. 
 
Write a report on one of the topics below. These are not necessarily topics covered 
specifically in the course. This is an exercise in researching a programming language 
topic, using the knowledge you have of programming languages in general.  
Your report should be structured around the claim proposed for each topic, which 
typically summarises a relevant aspect of the topic, and it should be based on your 
independent investigation. You should understand the relevant aspects / problems  / 
features of the proposed topic and present them in a clear and self-contained report. 
A person having a general understanding of programming languages, but not much 
previous knowledge of the topic should be able, by reading your report, to gain a 
clear understanding of the main aspects of the topic. 
You are encouraged to make use of several references in the writing of your report, 
and it is expected that you will use (and cite) references other than those listed 
below, which should therefore be regarded as the starting point for an information 
search. The best reports draw their information from a wide variety of sources. 
A good report will be composed of sections with suitable headings through which you 
present the results of your investigation. Your report will be structured around  
• an Introduction, i.e. a brief highlight of the topic addressed and the result 
presented,  
• a Background/State of the art part, introducing the relevant context for the 
topic, and possibly relevant results/proposals/alternative approaches of 
interest,  
• one or more sections about the Technical content of the report, i.e. your 
account of the chosen topic, and  
• a Summary / Evaluation / Conclusion section which might include 
possible/expected future developments.  
• A Reference section should conclude the report 
The above schema can be modified, and/or other parts can be added or removed, as 
appropriate for the chosen topic.  
Importantly, the proposed topics generally refer to technical aspects which you 
should try to cover in your report. Where appropriate, you should provide examples, 
for instances diagrams and snapshots of a given programming language, in order to 
  
University of Stirling page 2 of 5 
Computing Science and Mathematics 
ABB - CES 
clearly illustrate relevant technical issues or to provide examples of the practical 
implementation of general principles and ideas (perhaps those seen in the CSC9Y4 
module).  
 
Reports should be about 6-8 pages (in a reasonable font size, typically 11pt). This is 
roughly equivalent to 3000-4000 words. Much longer reports will not be viewed 
favourably, unless of exceptional quality. This assignment counts for 25% of the final 
grade in CSC9Y4.  It must be submitted in order for you to be given a grade for the 
module. 
 
IMPORTANTLY, you should take care to express what you have learned in your own 
words. Plagiarism is not acceptable. Work submitted for assessment must be your 
own work.  
 In particular, it is not permitted to take large portions of someone else’s work 
and use these directly in your assignment. If you directly quote from an article, make 
this clear by using inverted commas or putting the quote in an indented paragraph on 
its own. Quotations should be used to “strengthen an idea” rather than presenting a 
large part of published material. You must also give a reference to the source of the 
quote in the form, e.g.,  (Wilson and Clark, 2000). For web pages use the title if no 
author is credited. A list of all references must be given at the end of the report in the 
bibliography. Further general information about reference formatting style can be 
found at the following link www.aresearchguide.com/9parenth.html. 
 
All students should note that the University has a formal policy on plagiarism 
which can be found at  
  
www.quality.stir.ac.uk/ac-policy/assessment.php  
 
See also our new departmental guidance for students. It can be found at 
www.cs.stir.ac.uk/guides/avoiding-plagiarism.pdf.  
All submissions should be checked for originality using the TurnitinUK plagiarism 
detection software, you can access through the SUCCEED web page. This software 
checks the content of your report for similarities with billions of documents on the 
Internet, journal articles, and previous student submissions and produces an 
originality report. A poor originality report should warn you that it is possible that you 
are not properly acknowledging your sources. Bad originality reports, or no report at 
all, may lead to further investigation of plagiarism in your submission. You may be 
asked to discuss your submission, anyway. 
 
If you cannot meet the assignment hand in deadline and have good cause, please 
see or contact Dr. Andrea Bracciali (4B86, x7446, abb@cs.stir.ac.uk) to explain your 
situation and ask for an extension.  University Regulations state that coursework will 
be accepted up to five days after the hand in deadline (or expiry of any agreed 
extension) but the grade will be lowered by one grade point per day or part thereof.  
After five days the work will be deemed a non-submission and will receive an X (no 
grade). 
  
University of Stirling page 3 of 5 
Computing Science and Mathematics 
ABB - CES 
 
1. Your Topic of Interest 
Not surprisingly, this might be the most interesting topic from your own viewpoint. 
Possibly, it will also be a quite challenging one.  
If you are particularly interested in a topic, which is relevant for CSC9Y4, you may 
decide to investigate such a topic and present a report about the work you will be 
doing. In order to proceed you need to make an informal proposal and discuss it with 
Dr. Bracciali as soon as possible (within a few days from when the assignment has 
been published) and before you start your work. 
 
2. Natural Language Processing  
Position: Many computational devices and applications are more and more providing 
support for the understanding of natural language and natural language based 
interaction. Are we close to computers fully understanding and using natural 
languages? 
Typical science fiction includes computers which communicate with people in a 
natural way, with spoken input and output, mimicking ordinary speech. In contrast, 
actually “speaking” or communicating with computers in a natural language is still a 
quite hard task, often leading to poor results. Natural language processing is the field 
attempting to take us to that science fiction position, but will it ever get there?  
How are we progressing in natural language processing? Are we near to the stated 
position above, or is there much more work to do? What are the problems remaining 
to be solved? Why are natural languages so much harder to process than computer 
languages? What are the similarities? What sort of programming languages can we 
use to process natural languages? Traditionally, languages such as Lisp and Prolog 
have been used, but scripting languages are also popular.  
You may also consider for your investigation of the topic recent developments, such 
as the embedding of natural language features in the Apple iPhones and the plans 
by Google to equip their search engines with NLP capabilities to better understand 
users’ queries and page content. 
  
References  
research.microsoft.com/nlp/  
en.wikipedia.org/wiki/Natural_language_processing  
www.aaai.org/AITopics/html/natlang.html  
www.alicebot.org/  
Natural Language processing is in section SC 22.7 of the library, with speech  
processing at SC 24.5. 
 
3. Visual Programming  
Position: Computer interfaces and human-computer interaction (HCI) are becoming 
more and more visual and tactile experiences. Consider touch screen devices 
becoming increasingly popular to users, but also visual and “spatial” devices 
appearing in game devices, such us the Microsoft Kinect or the Wii game controls. 
Will these new interaction modalities be eventually exploited in the programming 
context, for instance to construct programs visually and tactilely? 
  
Programs normally consist of text. For a long time, programmers have tried to  
develop more visual approaches to programming, often focusing on languages  
consisting of diagrams rather than text. At Carnegie Mellon University they have  
  
University of Stirling page 4 of 5 
Computing Science and Mathematics 
ABB - CES 
developed Alice: an educational software environment allowing students to program  
a 3D world using drag and drop. Alice is just one among several current  
developments in visual programming. Even the iPhone/Mac development system  
(Xcode) has drag-and-drop elements.   
Outline the main features of visual programming languages and discuss their  
advantages and disadvantages for the programmer. What is gained by making a  
language visual? Is it possible to write large and complex programs in this way? Or is  
visual programming just for novices – or perhaps a replacement for scripting for  
component engineering? Is visual programming just a fad? What about its extension 
to a spatial/tactile world? 
  
References  
http://crpit.com/confpapers/CRPITV88Kohl.pdf  
http://www.alice.org/   
http://www.cs.utexas.edu/users/code/  
http://en.wikipedia.org/wiki/Visual_programming_language  
http://www.tersus.com/ 
  
 
4. Dynamic Typing in Python  
Position: Dynamic typing may release programmers from the twin shackles of type 
and variable declaration, allowing programs to be developed more quickly and easily 
than in statically typed languages. At what extent has this to be considered an 
advantage? How is this reflected in the Python language? 
   
Python is dynamically typed; it’s not necessary to declare the types of variables. It is  
also strongly typed, i.e. the interpreter works out the type of the identifier from the  
context in which it is used. This contrasts with languages such as Java where all  
types are declared by the programmer and the compiler only has to check the types  
are correct.  Compare and contrast the Python and Java approaches to typing,  
particularly considering the question above. Does dynamic typing make programming  
easier? Safer? Do Python programmers produce more reliable code more quickly?  
How does this contrast with your own experience of the Java compiler?  
  
References   
www.python.org   
www.pythonology.org  
diveintopython.org  
en.wikipedia.org/wiki/Dynamic_typing   
www.mindview.net/WebLog/log-0025  
 
 
5. Programming Life 
Position: Programming genetic circuits is fundamentally the same as programming 
electronic circuits, so we can just adapt an existing programming language to the 
problem of programming live cells to carry out specialised tasks. 
  
Computing techniques have been used to understand biology for a long time. 
Technology has now advanced to the point where we may also use programming 
techniques to build biological systems from scratch. This is the basic idea of the field 
of synthetic biology. Generally, this means the design and construction of simple 
genetic circuits encoded in DNA, akin to building logic gates in computer hardware. 
  
University of Stirling page 5 of 5 
Computing Science and Mathematics 
ABB - CES 
Building more complex devices requires construction of suitable programming 
languages which can describe the complex interactions of many simple circuits in 
order to carry out some complex task. This program can then be compiled into DNA 
and executed in a cell.  It is possible to envision many linguistic approaches to this 
problem. For example, we already have programming languages for electronic chip 
design: are these suitable for genetic circuits? It may be that the object-oriented 
approach may be universal and we can just devise a biologically-oriented version of 
Java for the task. Lastly, perhaps the component-based nature of biology makes a 
scripting approach more appropriate. 
 
References   
computer.howstuffworks.com/dna-computer.htm 
http://www.synbiont.org/ 
http://lifesciences.ieee.org/publications/newsletter/may-2012/107-synthetic-biology-
building-a-language-to-program-cells 
en.wikipedia.org/wiki/Synthetic_Biology 
www.qath.net 
 
 
6. HTML 5 
Position: HTML5 introduces new features in the presentation of WWW content. It 
also seems to embed features of a proper core technology for programming the 
Internet, e.g. it provides APIs for web applications. Is the HTML approach to WWW 
emerging as a new execution environment, where HTML5-like programs are run 
under different assumptions than those holding for more traditional computing, such 
as applications that do not use the network? 
 
HTML5 is a markup language, attempting to set a standard for web-based markup 
languages. Beyond the usual focus on documents, it also provides a set of new 
functionalities that make the web experience richer, and new APIs that extend the 
programmability of web applications. Furthermore, being many mobile devices “web-“ 
or “browser-enabled”, HTML5 could be seen as a potential candidate for cross-
platform, interoperable, mobile application development. Indeed, aspects like the 
ability to run on low-powered devices have been considered when designing HTML5. 
All these features seem to suggest that HTML5 exceeds the traditional idea of HTML 
as a language to instruct a browser about how to visualise a page. Rather, HTML5 
appears as an extended programming language. For which execution environment? 
It is possibly run by a browser, but may have access, interact with and control other 
application and system software. How are the traditional concepts of a program and 
its execution transformed, if indeed they are? 
 
References   
http://en.wikipedia.org/wiki/HTML5 
http://www.w3.org/TR/2012/WD-html5-diff-20121025/ 
and references therein.