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 video submitted to Blackboard
  2. Written paper in the form of a pdf document

Summary Requirements

An oral presentation is required by each student. The presentation material (the 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.)

Submission Procedure

Videos (mp4 or similar format) should be uploaded to Blackboard using the Presentation Submission button on the Blackboard course site. Be sure that the metadata you supply for the upload correctly identifies the author (you) and title of the presentation. These should be identical to those on your paper.

Papers (pdf format) should be uploaded using the Paper Submission button on the Blackboard course site.

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 accepted by B;ackboard. 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 yourself to at most two video postings, and be sure that the first one leads naturally to the second one. It would of course 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. It is suggested 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 resources. 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. It is suggested to add a bit of history that explains the origin and/or the context of the topic, when applicable.

3 Presentation/Paper Topics

Topic assignments will be made on a FIFO basis as posted in the Discussion Forum DIBS: Paper/Presentation Topic Selection. FIFO = first to post gets the topic.

Students may also propose a topic that is not listed here. The procedure to propose an unlisted topic is to send email to the instructors naming and describing the topic (along the lines illustrated below). Proposing a new topic using the discussion forum will disqualify the proposer from that topic. Only the first correctly made proposal will be accepted for a given new topic.

< /table>

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

A. Scripting
 
Code Title Owner Description
A.1. Ruby Griffin   describe the scripting language Ruby.
A.2. Python Hennessy   Describe the Python scripting language.
A.3. PHP Fyffe   PHP: describe the server-side scripting language PHP.
A.4. Javascript Bohning   Describe the JavaScript client-side scripting language.
A.5. Perl Diamond   Describe the Perl scripting language.
A.6. LSL Canelones   Describe the Linden scripting language used in Second Life.
A.7. ActionScript     Describe Adobe's ActionScript scripting language.
A.8. VBScript Lewis   Describe the Visual Basic Scripting Edition language.
A.9. Lua Acebedo   Describe the Lua scripting language.
A.10. APL Clay   Describe the APL programming language known for "throw-away programming".
A.11. NXT-G Laflin   Describe the NXT-G graphical programming language developed by National Instruments in LabVIEW for LEGO NXT.
A.12. MEL     Describe the Maya Embedded Language (MEL) used in Autodesk Maya.
A.13. Squirrel Ernest   Describe the Squirrel script language used in some video games.
A.14. AWK Boyd   Describe the AWK scripting language that is a standard feature of Unix and Linux distributions.
A.15. LEX & YACC | Bison Betancourt   Describe the LEX and YACC/Bison tools distributed with Unix/Linux, including how they are often used together.
A.16. Node.js Seltzer   Discuss the open-source Javascript Node.js run-time environment for server-side and networking applications.
A.17. Powershell Loosier   Powershell - A scripting language based in C#.NET for the Windows platform.
 
B. Programming
 
Code Title Owner Description
B.1. COBOL Hausner   Describe the COBOL programming language.
B.2. Objective-C Lampone   Describe the C++-like OO programming language. How does it compare to C++?
B.3. Forth Steadman   Describe the Forth programming language.
B.4. Go Scott   Describe Google's programming language Go.
B.5. D Swank   Describe the programming language D.
B.6. Scala Yang   Describe the Scala programming language.
B.7. Mercury     Describe the logical programming language Mercury that is based on Prolog and Haskell concepts.
B.8. Ada 2005 Powell   Describe the Ada 2005 programming language.
B.9. Delphi Chance   Describe the Pascal-like Delphi programming language.
B.10. HPF Grassley   Describe the High-Performance Fortran programming language. How is parallel execution specified in HPF? How are distributed arrays specified?
B.11. Caml Cobb   Describe the Caml programming language.
B.12. Eiffel Alley   Describe the OO programming language Eiffel and the "design by contract" principle.
B.13. Icon Reeves   Describe the Icon programming language.
B.14. Basic Mallari   Describe the original Basic programming language or one of the many dialects such as Quick Basic (do not pick Visual Basic - see VBScript).
B.15. C# Kane   Describe the C# language, drawing particular attention to the differences (a) between C# and Java and (b) between C# and C++.
B.16. C#,Java,Obj-C Haddock   Compare and contrast the major managed memory variants of C/C++: C#, Java, and Objective-C
B.17. Swift Prado   A new programming language for iOS and OS-X
 
C. Tools and Specification Languages
 
Code Title Owner Description
C.1. Lint Windelberg   Describe the "lint" tool to find problems in C code. Also discuss its relative "splint" for finding security vulnerabilities.
C.2. Doxygen Filis   Describe the "Doxygen" tool and how it can be used to document C and C++ source code.
C.3. Make Orozco   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.
C.4. Eclipse Bonheur   Describe the "Eclipse IDE" and show its support for C, C++, or Java project development.
C.5. SWIG Beason   Describe the "SWIG" specification language and tool.
C.6. Z     Describe the specification language based on "Z notation" (Zermelo-Fraenkel set theory).
C.7. VDM     Describe the Vienna Development Method (VDM) and specification language VDM-SL and/or VDM++.
C.8. XML and XML Schema Fleming   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).
C.9. XSLT Robbins   Describe the XSLT (Extensible Stylesheet Language Transformations) declarative XML transformation language.
C.10. XQuery Hanna   Describe the XQuery XML query language.
C.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.
C.12. gSOAP Taylor   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.
C.13. VHDL Naglis   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?
C.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.
C.15. MATLAB Ingle   Describe the MATLAB programming language for science and engineering.
C.16. SAS     Describe the SAS system and its 4th generation programming language.
C.17. LePUS3     Describe the object-oriented, visual design description language LePUS3 for software modeling and formal specification.
C.18. Clarion Kaye   describe the 4GL language, concentrating on wizards and templates
C.19. Apache Camel Posey   A rule-based routing and mediation engine
C.20. Debugging Wiezorek   Debugging tools including gdb and Valgrind
C.21. Xcode Rodriguez   Xcode Integrated Development Suite available for apple OS-X developers
C.22. Acceleo Lindsey   Open source automatic programming / code generation tool (http://en.wikipedia.org/wiki/Acceleo)
C.23. Mathematica Squires   This is a big package. We need both an overview and some example details.
C.24. PhoneGap Miller   Adobe PhoneGap - mobile application development and management across channels and platforms.
 
D. Frameworks and other special-purpose software libraries
 
Code Title Owner Description
D.1. MVC Daza   Discuss the Model-View-Controller design pattern and implementations as frameworks
D.2. asp.net Peppler   Discuss the asp.net framework for web applications, including the SOAP extension
D.3. jQuery Moufakkir   Discuss the Javascript jQuery library, in the context of Javascript
D.4. .net Weinstein   Describe the Microsoft .net framework and its use in Windows platform applications development.
D.5. Android SDK Bunyea   Describe the Android SDK framework development of applications on Android devices.
D.6. iOS SDK Fernandez   Describe the Apple iOS frameworks for development of applications on iOS devices.
D.7. spring.io Yates   Describe the Spring I/O framework (latest version) for Java-based applications.
D.8. MongoDB Switzer   Open-source, no-SQL, document database
D.9. Memcached Blumenstock   Open source distributed memory object caching system
D.10. Django S Jones   Django: a high-level Python Web framework intended for rapid development
D.11. ExtJS J Williams   Javascript development framework
D.12. Cloud Computing Cass   Give an overview of cloud computing: what it is, how it works (in non-proprietary terms), history, and future prospects.
D.13. Ajax Bergman   The Ajax (Javascript + XML) development framework.
 
E. New Topics Proposed by Students
 
Code Title Owner Description
E.1. Visual Studio Bassett   Visual Studio IDE: capabilities, tools, history, and future possibilities
E.2. Artificial Neural Networks Paulk   A brief overview of Artificial Neural Networks: what they are, how they work, and what they're used for. Also touching on where ANNs fit in the general framework of Computational Intelligence theory and applications.
E.3. R DeStefanis   Describe the R language and explain why R is useful in statistical analysis and machine learning. Why would R be used over C/C++ or Java?
E.4. Javascript Superset Languages Moore   Discuss and compare the Javascript "superset" scripting languages Dart and Coffeescript. Cover pros and cons of these against each other and against using Javascript itself.
E.5. XPath/Sedna Alalou   Discuss the concept behind XPath and its use in the Sedna DBMS that is available in several programming langues including C++, Java, and Python.
E.6.