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 a grade of "C-" or better on this assignment, regardless of performance on other work in the course.

Presentations are scheduled at recitation time. Recitation attendance is mandatory. An attendence sign-up sheet will be distribtuted at each recitation. There is some time left by the end of the recitation section for questions on the lecture material and projects.

Oral Presentation and Presentation Paper Requirements

An oral classroom presentation is required by each student, see the presentation schedule below. The presentation material (the presentation slides) 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:

Departmental policy: You need to earn a grade of "C-" or better for the oral presentation and a "C-" or better for the written paper to pass this course.


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


The format of the oral presentation is electronic in a format of your chosing, e.g. OpenOffice, PowerPoint, PDF, or text. However, visual aids such as images, tables, and graphs must be presented in a clearly understandable format. You may use the whiteboard (or blackboard) if you wish to comment on questions, but you must not depend on them.

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.

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. The presentation will be scored according to the following table.

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.

Please be prepared to start on time when you are presenting. If you get started late not only will you lose points, but we will have difficulty finishing within the class period.

A presentation will be graded with 0 points if you don't show up, or spent less than 8 minutes on your presentation, or if your presentation material is not legible.

The presentation paper will be graded using the following criteria (50 points possible):

The paper length is not limited, but should be at least four pages of double-spaced 11pt 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.

Presentation Schedule

Four presentations are scheduled per recitation section. For a description of the presentation topic, see below (refresh this page to see changes).

Date COP4020 Section 1
Mondays 1:25 PM to 2:15 PM
Presentation Topic :- Name
2/7 none 2/7
2/14 A2 :- Weaver Hastings 2/14
2/21 A3 :- Bryan Franklin
A4 :- Shawn Rutledge
A5 :- Reynaldo Campos
2/28 A6 - David Fernandez
A9 :- Benjamin Buzbee
A11 :- Michael Marshall
3/7 Spring break 3/7
3/14 A13 :- Kenta Sugimoto
B1 :- Josh Decker
B2 :- Christopher Cassano
3/21 B4 :- Thomas Cubertson
B5 :- Stephan Walters
B7 :- William Rodrique
3/28 B9 :- Adnan Chowdhury
B10 :- Ricardo Pascal
B11 :- Justin Oglesby
4/4 B13 :- Brandon Davis
C3 :- Caitlin Carnahan
C7 :- Brendan Blanks
4/11 C8 :- Bryan Pollack
C13 :- Cody Hansen
C14 :- Andrew Wilcox
4/18 C15 :- Troy Rosenberg
C16 :- Steven Rutkowski
A1 :- Brian Wilder

Date COP4020 Section 2
Wednesdays 2:30 PM to 3:20 PM
Presentation Topic :- Name
2/9 none 2/7
2/16 A7 :- Luke Johnson
A8 :- Daniel Porrello
2/23 A10 :- Jason Eick
A12 :- Manuel Montes De Oca
B3 :- William Sinkey
3/2 B6 :- Heidy Khlaaf
B8 :- Amanda Kerber
B12 :- William Hightower
3/9 Spring break 3/9
3/16 B14 :- Nkemdirim Dockery
B15 :- Matt Fisher
C1 :- Christopher Burt
3/23 C2 :- Richard Kirk
C3 :- Michael Longchamps
C4 :- Charles Maranto
3/30 C5 :- Thomas Licostie
C6 :- Michael Backherms
C7 :- Christopher Shirley
4/6 C9 :- Troix Douglas
C10 :- Tristan Capron
C11 :- Michael Sodders
4/13 C12 :- Gabriel Enslein
C13 :- Scott Hess
C17 :- Caleb Gross
4/20 Reserved for scheduling changes 4/20

Presentation Topics

The presentation topic assignments are decided by the instructor based on student preferences. Students can pick one topic from each of the three categories A, B, C below, thus indicate three preferenes. The instructor will match a topic to a student based on preferences, though there is no guarantee that all students can be matched if the presentation topics of their choice is popular. The preference selection sheet is downloadable .doc here.

A. 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.

B. 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).

C. 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.

Copyright: Robert van Engelen, Florida State University, 2011.
Last modified: Monday, January 24, 2011