Presentation and Paper

This assignment has been designated by the Department of Computer Science for assessment of certain expected outcomes for its degree programs, as required by our accreditation agencies, the University, and the State of Florida. Departmental policy does not permit a final grade of "C-" or better to be assigned unless the student has earned an "effective" or "highly effective" assessment on both the presentation and the written paper, regardless of performance on other work in the course.

Ratings of Ineffective [I], Effective [E], and Highly Effective [H] for both the written paper and the oral presentation are obtained using the following scale:

  • H: 40 or more points
  • E: 30 to 39 points
  • I: less than 30 points

based on grades on a scale of 0-50 points.

Deliverables

  1. Oral Presentation in the form of a YouTube video
  2. Written paper in the form of a pdf document

Summary Requirements

An oral YouTube presentation is required by each student. The presentation material (the YouTube video) together with a paper describing your investigation of the topic should be submitted for grading at the end of the term before exam week starts. (See course organizer for exact due dates.)

The video should be uploaded to YouTube, and the link submitted under the Presentation button in the Blackboard course site.

Papers (PDF format) should be uploaded to the Presentation assignment link on the Blackboard course site. The paper itself should also contain a link to the YouTube video.

Evaluation and Grading

The grade breakdown of the presentation component of the course (10% of the total final grade) is 5% credit for the oral presentation and 5% credit for the paper.

The evaluation of the quality of the presentation, as well as the paper, will take into account the originality, relevance, and currency of information that you present, as well as the clarity of the presentation and writing. (See below for more details.)

ADA

Students with disabilities will be given an alternative option for the oral presentation. Please contact the instructor to discuss these options.

1 Oral Presentation Details

The format of the oral presentation is some video format that is YouTube compatible. It is permissible to have two separate components if that is conveneint, for example, your intro video of youself talking followed by a voice-over-powerpoint for the technical content. Please limit yurself to at most two YouTube postings, and be sure that the first one leads naturally to the second one. It would of cpourse be preferable to have one video that contains your intro and segways into the technical talk.

The presentation should begin with a personal introduction that shows you speaking. Introduce yourself, say a few words about you such as where you live, what you are currently doing, where you want to be after getting your CS degree. You may also say a few words about your personal things such as family or non-CS interests. This intro video should not last more than one minute.

The remainder of the presentation is a "technical presentation". This may use a continuation of straight video, voice-over power point [with auto slide changes], or some combination of media and video such as possible with camtasia.

Oral Presentation Evaluation and Grading

The evaluation of the quality of the presentation (as well as the paper) will take into account the originality, relevance, and currency of information that you present, as well as the clarity of the presentation. The presentation will be scored using the following rubric:

Grading criteria for oral presentations (50 pts possible):

To address all issues in the topic description you need to find resources for your presentation, such as textbooks, Web sources (you can trust), and/or technical papers (when applicable). Consult these resources to prepare a presentation that explains what your topic is about and what it does. Suggested is to add a bit of history that explains the origin and/or the context of the topic, when applicable.

2 Written Paper Details

The presentation paper should have a title page (with title, author, and date), a short abstract that summarizes the content in one paragraph, an introduction section that states the question/problem to investigate with a discussion on how you approached the problem, the paper body (several sections), a conclusion that summarizes your results and findings, and a bibliography of references to papers and web sites you consulted.

The title/abstract page should have embedded link(s) to the oral personal intro and the technical presentation.

The paper length is not limited, but should be at least four pages of double-spaced 12pt serif font.

Warning on plagiarism: do not copy/paste material without properly quoting the text and citing the recourses. For example, if you found a definition of a term in a paragraph that you would like to refer to, use the common citation requirements: "...sentence..." [ref], where ref is a citation in your bibliography. Note that quotes are needed when you copy text literally.

Written Paper evaluation and grading

The presentation paper will be scored using the following rubric (50 points possible):

To address all issues in the topic description you need to find resources for your presentation, such as textbooks, Web sources (you can trust), and/or technical papers (when applicable). Consult these resources to prepare a presentation that explains what your topic is about and what it does. Suggested is to add a bit of history that explains the origin and/or the context of the topic, when applicable.

3 Presentation/Paper Topics

  1. Scripting:
    1. Ruby: describe the scripting language Ruby.
    2. Python: describe the Python scripting language.
    3. PHP: describe the server-side scripting language PHP.
    4. JavaScript: describe the JavaScript client-side scripting language.
    5. Perl: describe the Perl scripting language.
    6. LSL: describe the Linden scripting language used in Second Life.
    7. ActionScript: describe Apple's ActionScript scripting language.
    8. VBScript: describe the Visual Basic Scripting Edition language.
    9. Lua: describe the Lua scripting language.
    10. APL: describe the APL programming language known for "throw-away programming"
    11. NXT-G: describe the NXT-G graphical programming language developed by National Instruments in LabVIEW for LEGO NXT.
    12. MEL: describe the Maya Embedded Language (MEL) used in Autodesk Maya.
    13. Squirrel: describe the Squirrel script language used in some video games.
  2. Programming:
    1. COBOL: describe the COBOL programming language.
    2. Objective-C: describe the C++-like OO programming language. How does it compare to C++?
    3. Forth: describe the Forth programming language.
    4. Go: describe Google's programming language Go.
    5. D: describe the programming language D.
    6. Scala: describe the Scala programming language.
    7. Mercury: describe the logical programming language Mercury that is based on Prolog and Haskell concepts.
    8. ADA 2005: describe the ADA 2005 programming language.
    9. Delphi: describe the Pascal-like Delphi programming language.
    10. HPF: describe the High-Performance Fortran programming language. How is parallel execution specified in HPF? How are distributed arrays specified?
    11. Erlang: describe the functional language Erlang inspired by Prolog (e.g. show the similarity of Erlang variables with Prolog variables).
    12. Caml: describe the Caml programming language.
    13. Eiffel: describe the OO programming language Eiffel and the "design by contract" principle.
    14. Icon: describe the Icon programming language.
    15. Basic: describe the original Basic programming language or one of the many dialects such as Quick Basic (do not pick Visual Basic - see VBScript).
    16. C#: describe the C# language, drawing particular attention to the differences (a) between C# and Java and (b) between C# and C++.
  3. Tools and Specification Languages:
    1. Lint: describe the "lint" tool to find problems in C code. Also discuss its relative "splint" for finding security vulnerabilities.
    2. Doxygen: describe the "Doxygen" tool and how it can be used to document C and C++ source code.
    3. Make: describe the "make" utility and its specification language that defines the project build dependences and commands. For this topic a focus on advanced features is preferred.
    4. Eclipse: describe the "Eclipse IDE" and show its support for C, C++, or Java project development.
    5. SWIG: describe the "SWIG" specification language and tool.
    6. Z: describe the specification language based on "Z notation" (Zermelo-Fraenkel set theory).
    7. VDM: describe the Vienna Development Method (VDM) and specification language VDM-SL and/or VDM++.
    8. XML and XML Schema: describe the XML markup language format and the role of XML Schema to define valid XML (XML Schema, like a class definition, specifies structure while XML instances, like objects, contain valid data).
    9. XSLT: describe the XSLT (Extensible Stylesheet Language Transformations) declarative XML transformation language.
    10. XQuery: describe the XQuery XML query language.
    11. RDF: describe the Resource Description Format in XML. RDF is a metadata data model. RDF is a general method for conceptual description or modeling of information that is implemented in web resources, e.g. using XML.
    12. gSOAP: describe the "gSOAP" C/C++ XML data binding tool. What C/C++ type declaration extensions does it use to bind XML to C/C++? Give an example client/server implementation.
    13. VHDL: describe the VHDL hardware description language. Is VHDL also suitable as a programming language or only as a hardware design language? Why not use C to describe hardware?
    14. TeX/LaTeX: describe the TeX/LaTeX document markup language. The LaTeX "programming language" has markup syntax and programming constructs such as "if" and TeX operates by macro expansion that resembles function invocation.
    15. MATLAB: describe the MATLAB programming language for science and engineering.
    16. SAS: describe the SAS system and its 4th generation programming language.
    17. LePUS3: describe the object-oriented, visual design description language LePUS3 for software modeling and formal specification.
    18. Clarion: describe the 4GL language, concentrating on wizards and templates
  4. Frameworks and other special-purpose software libraries
    1. MVC: Discuss the Model-View-Controller design pattern and implementations as frameworks
    2. asp.net: Discuss the asp.net framework for web applications, including the SOAP extension

Acknowledgement: this document is a modification based on an original by Robert van Engelen.