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:
based on grades on a scale of 0-50 points. |
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.)
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.
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.)
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 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.
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.
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.
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.
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.
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. /table> E.6. Acknowledgement: this document is a modification based on an original by Robert van Engelen.