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.

This means that you must earn a grade of "C-" or better for the oral presentation and a "C-" or better for the written paper to pass this 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:


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 2:30 PM to 3:20 PM
Presentation Topic :- Name
9/26 Ruby :- Andrew Berg
Forth :- Michael Chung
VHDL :- Corey Della-Pietra
10/3 Eiffel :- Brandon Everhart
Erlang :- Robert Gonzales
COBOL :- Dillon Hall-Rodriguez
10/10 Python :- Adrian Maresan
Make :- Joel Neal
Go :- Blake Rawitt
10/17 Delphi :- Taylor Shields
MSX and Quick Basic :- Ryan Small
VB Script :- Sergio Yep

Date COP4020 Section 8
Monday TBD (12:20 PM to 1:10 PM)
Presentation Topic :- Name
TBD Ruby :- Kira Lessin

Date COP4020 Section 9
Monday 11:15 AM to 12:05 PM
Presentation Topic :- Name
9/26 Mercury :- Eric Adams
Z :- Juan Alfaro Heller
COBOL :- Connor Christian
10/3 LSL :- Julian Engel
Scala :- Adam Faulkner
Lua :- Dominic Fezzie
10/10 APL :- Ronald Franco
SAS :- Joshua Garlitos
VHDL :- Jacqueline Golden
10/17 Erlang :- Arthur Karapateas
Lint :- Nicholas Kostrab
Static Program Analysis :- Isadora Latorre
10/24 XQuery :- Joshua Metcalf
Eclipse :- Eric Mustapick
Go :- Kurtis Odom
10/31 Javascript :- Nicholas Ordonia
NXT-G :- James Picker
Objective-C :- Grant Ratcliff
11/7 Python :- Ashley Roberts
ADA 2005 :- Lazaro Romero
PHP :- Yevgeniy Ryasnianskiy
11/14 Ruby :- Xing Shi
Doxygen :- Alexander Sumner
Perl :- Danna Useche
11/21 Squirrel :- Monica Lambrano
PHP :- Carlene Berry

Date COP4020 Section 10
Monday TBD (1:25 PM to 2:15 PM)
Presentation Topic :- Name
TBD Swift :- Rafael Aguilera

Presentation Topics

The presentation topic assignments are decided by the instructor based on student preferences. Students can pick three topics from each of the three categories A, B, C listed below. Therefore, you can indicate your three preferences in three different areas. The instructor will match a topic to a student based on preferences, but there is no guarantee that you will be assigend one of your preferred topics if the presentation topics of your choice turn out to be very popular.

The preference selection sheet is downloadable here.

A. Scripting:

  1. Ruby: describe the scripting language Ruby.
  2. PHP: describe the server-side scripting language "PHP".
  3. JavaScript: describe the JavaScript scripting language.
  4. Perl: describe the Perl scripting language.
  5. LSL: describe the Linden scripting language used in Second Life.
  6. ActionScript: describe Apple's ActionScript scripting language.
  7. VBScript: describe the Visual Basic Scripting Edition language.
  8. Lua: describe the Lua scripting language.
  9. APL: describe the APL programming language known for "throw-away programming"
  10. NXT-G: describe the NXT-G graphical programming language developed by National Instruments in LabVIEW for LEGO NXT.
  11. MEL: describe the Maya Embedded Language (MEL) used in Autodesk Maya.
  12. Squirrel: describe the Squirrel script language used in some video games.

B. Programming:

  1. Python: describe the programming language Python.
  2. Swift: describe the programming language Swift.
  3. Groovy: describe the programming language Groovy.
  4. COBOL: describe the COBOL programming language.
  5. Objective-C: describe the C++-like OO programming language. How does it compare to C++?
  6. Forth: describe the Forth programming language.
  7. Go: describe Google's programming language Go.
  8. D: describe the programming language D.
  9. Scala: describe the Scala programming language.
  10. Mercury: describe the logical programming language Mercury that is based on Prolog and Haskell concepts.
  11. ADA 2005: describe the ADA 2005 programming language.
  12. Delphi: describe the Pascal-like Delphi programming language.
  13. HPF: describe the High-Performance Fortran programming language. How is parallel execution specified in HPF? How are distributed arrays specified?
  14. Erlang: describe the functional language Erlang inspired by Prolog (e.g. show the similarity of Erlang variables with Prolog variables).
  15. Caml: describe the Caml programming language.
  16. Eiffel: describe the OO programming language Eiffel and the "design by contract" principle.
  17. Icon: describe the Icon programming language.
  18. 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. Static program analysis: explain static code analysis and analyzer tools such as "Fortify" and "Klocwork".
  3. Doxygen: describe the "Doxygen" tool and how it can be used to document C and C++ source code.
  4. 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.
  5. Eclipse: describe the "Eclipse IDE" and show its support for C, C++, or Java project development.
  6. SWIG: describe the "SWIG" specification language and tool.
  7. Z: describe the specification language based on "Z notation" (Zermelo-Fraenkel set theory).
  8. VDM: describe the Vienna Development Method (VDM) and specification language VDM-SL and/or VDM++.
  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. 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?
  13. 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.
  14. MATLAB: describe the MATLAB programming language for science and engineering.
  15. SAS: describe the SAS system and its 4th generation programming language.
  16. LePUS3: describe the object-oriented, visual design description language LePUS3 for software modeling and formal specification.

Copyright: Robert van Engelen, Florida State University, 2016.