CSC9Y4 Programming Language Paradigms Spring 2013

Similar documents
Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

Turnitin Originality Checking and Online Marking with Feedback Studio

MSIS-DL 317 Syllabus. Faisal Akkawi, Ph.D. Introduction to Databases Fall 09

GUIDELINES FOR MASTER OF SCIENCE INTERNSHIP THESIS

Using the Originality Report in Turnitin Student Guide

How to submit coursework online using Turnitin Feedback Studio

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

King s Learning Institute

Higher National Unit specification: general information. Graded Unit 2

HOLY SPIRIT UNIVERSITY OF KASLIK LIBRARY HELP GUIDES. USEK. Student Manual: Detecting and Deterring plagiarism in student work

Programme Regulations

Programming Assignments

Kingdom of Saudi Arabia Ministry of Higher Education College of Computer & Information Sciences Majmaah University. Course Profile

Software Engineering Large Practical

Lab1: Communicating science

INFSCI 1017 Implementation of Information Systems Spring 2017

ASSESSMENT QUERIES 3 SUBMITTING YOUR WORK IN TURNITIN 4. How do I upload my case report/work in Turnitin? 4 ACCESSING YOUR FEEDBACK 5

How to interpret a Turnitin originality report

Unit 2: Collaborative Working

1. Download and install the Firefox Web browser if needed. 2. Open Firefox, go to zotero.org and click the big red Download button.

Blackboard course design

UCD School of Information and Library Studies. IS30020: Web Publishing

Submission to Turnitin Submitting an assignment

Lexis for Microsoft Office User Guide

Home assignment instructions - autumn 2013 HUMR Business and Human Rights

This document provides a step-by-step guide to getting started with Google Forms, an extension of the Google Spreadsheets module.

ECS15, Lecture 10. Goals of this course 2/8/13. Mini-Review & Topic 3.2 Software. Today s agenda

Advanced Vision Practical 1

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT

Understanding Originality Reports

Week One: Introduction A SHORT INTRODUCTION TO HARDWARE, SOFTWARE, AND ALGORITHM DEVELOPMENT

CS103 Handout 13 Fall 2012 May 4, 2012 Problem Set 5

(Blackboard 9) Using Turnitin with AUTonline STUDENT GUIDE

Turnitin Feedback Studio. Office of Distance Education

Introduction to Information Systems

Higher National Unit specification: general information. Graded Unit title: Computer Science: Graded Unit 2

LEVEL 1/2/3 CREATIVE imedia FAQS FEBRUARY Can the moderator review some work before it is completed?

CSSE2002/7023 The University of Queensland

CE151 ASSIGNMENT

CTI Short Learning Programme in Internet Development Specialist

RADFORD COMPLEX SCHOOLS TECHNOLOGY SCOPE & SEQUENCE GRADES K-6

CIT 590 Homework 5 HTML Resumes

Using Turnitin for electronic submission and marking of assignments: guidance paper for staff.

ONLINE ADMISSION 2017 QUICKSTART v

Object-Oriented Programming for Managers

Assignment 2: Website Development

Student User Guide (updated )

Turnitin Instructor Guide

Math 3820 Project. 1 Typeset or handwritten? Guidelines

CTI Higher Certificate in Information Systems (Internet Development)

An Interactive Web based Expert System Degree Planner

Graduate School website:

ITC 4310, Web Design and Development Course Syllabus. Course Description. Course Textbook(s) Course Software/Tools. Course Learning Outcomes.

GENERAL ACVIM PROCEEDINGS MANUSCRIPT GUIDELINES 2009 ACVIM Forum & Canadian VMA Convention June 3 June 6, 2009 Montréal, Québec

A GUIDE TO WRITING TECHNICAL REPORTS

Finding Articles: Accessing and Using PsycInfo and Web of Science Created by Margaret L. Kern, University of Pennsylvania

Take responsibility for completing tasks and procedures subject to direction or guidance as needed.

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

OriginalityCheck. Overview. Originality Reports

Comp 336/436 - Markup Languages. Fall Semester Week 2. Dr Nick Hayward

STUDY GUIDE: MASTER S DEGREE IN ECONOMIC POLICY

Blackboard Portfolio System Owner and Designer Reference

In the recent past, the World Wide Web has been witnessing an. explosive growth. All the leading web search engines, namely, Google,

WPPD Senior Pharmaceutical Care (PC) Paper Evaluation Student Name:

Lexis for Microsoft Office User Guide

CSE 438: Mobile Application Development Lab 2: Virtual Pet App

New RefWorks GETTING STARTED. Setting up a RefWorks account:

Basic Computer Skills: An Overview

Advanced Programming Concepts. CIS 15 : Spring 2007

Building a website. Should you build your own website?

Interpreting Turnitin Originality Reports

For more information on Desire2Learn go to Create a new Dropbox folder

CS 051 Homework Laboratory #2

code pattern analysis of object-oriented programming languages

Software Engineering Large Practical (Android version) 2013/2014

CSE Theory of Computing Fall 2017 Project 1-SAT Solving

While waiting for the lecture to begin, please complete. the initial course questionnaire.

HTML5 Application Development Fundamentals. Course Outline. HTML5 Application Development Fundamentals. ( Add-On ) 01 Aug 2018

Web Server Scripting

CIW: Advanced HTML5 and CSS3 Specialist. Course Outline. CIW: Advanced HTML5 and CSS3 Specialist. ( Add-On ) 16 Sep 2018

Enquiries about results guide (UK) 2018 A guide for exams officers

A staff guide to viewing the Similarity Report in Turnitin

Lesson 2 Writing Business Reports. Henan University of Technology Sino-British College Transfer Abroad Undergraduate Programme

Turnitin assignments are added from the course s home page. To open the course home page, click on the course from the Moodle start page.

GRAPHICAL USER INTERFACE FOR BULK EDITING OF 3WORLDS ECOLOGICAL MODELS

Script for Interview about LATEX and Friends

FORMAT & TYPING GUIDE

Part 2. Reviewing and Interpreting Similarity Reports

Programming (Econometrics)

Student User Guide (updated )

Additional Guidelines and Suggestions for Project Milestone 1 CS161 Computer Security, Spring 2008

CS350 : Operating Systems. General Assignment Information

Internet Safety Introduction to Internet Safety Netsmartz

ECE571: Advanced Microprocessor Design Final Project Spring Officially Due: Friday, 4 May 2018 (Last day of Classes)

The information here will help you avoid violating university policy about copying material written by others.

CS 6371: Advanced Programming Languages

SIMON. Creating and Assessing Assessment Tasks. Creating an Assessment Task. Step 1

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

Homework 7. For your information: Graded out of 100 points; 2 questions total 5-10 hours for phase 1; hours for phase 2.

MICROSOFT OFFICE ACCESS 2003 PRESENTING & MANAGING DATA

Transcription:

CSC9Y4 Programming Language Paradigms Spring 2013 Assignment: Programming Languages Report 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_<Your ID number>.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 1 of 5

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 2 of 5

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. 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 3 of 5

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? 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? 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 4 of 5

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. computer.howstuffworks.com/dna-computer.htm http://www.synbiont.org/ http://lifesciences.ieee.org/publications/newsletter/may-2012/107-synthetic-biologybuilding-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 crossplatform, 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? http://en.wikipedia.org/wiki/html5 http://www.w3.org/tr/2012/wd-html5-diff-20121025/ and references therein. University of Stirling page 5 of 5