Midterm Presentation

2 minute read


There are two main goals to the student presentations:

  1. Speakers gain practice in talking about a technical topic
  2. The rest of the class gets some perspective and culture in some important CS history.

These talks will be given in teams of two people. Feel free to find your own partner and sign up together, or send me an email and tell me you’re looking for a partner.

As you prepare your presentation, you should make sure to cover the following information:

  • Why was this language developed in the first place?
  • What tradeoffs in language design did the developers face?
  • How does the syntax of the language reflect the answers to the above questions? Use code examples to demonstrate.

    Aside. The TPK algorithm by Knuth and Pardo, for example, demonstrates well how an imperative algorithm might be coded. It would thus could be a good example to demonstrate FORTRAN, since FORTRAN was designed for mathematical coding. SIMULA, on the other hand, is often credited as the first object-oriented language. The TPK algorithm doesn’t demonstrate object-oriented programming. Many languages have home pages and websites by enthusiasts, which are fine places to begin learning. There are undoubtedly other useful resources on the web and in the library as well.

Wikipedia is a good reference in general, though it can be “hit and miss” in particular. Its accuracy is usually pretty good for computer science topics. One of the main challenges you will face is that anyone in the class can read the Wikipedia entries before your talk, so you still need to ensure that your talk is worthwhile.

You should also prepare a handout for the class that is a reference card, or “cheat sheet,” for the language itself. It should be no more than two sides of a sheet of paper, and should include the basic language syntax and some examples. Make sure to include your references on here as well.

It is entirely up to you what media you choose to use to help display your concepts. Variety for these talks is nice; don’t feel compelled to use the same presentation style as others.

Languages List

Below is a list of suggested programming languages. If you would like to present a language outside of this list, you must receive special permission from me.

Languages will be assigned to groups on a first-come-first-served basis.

  1. Javascript
  2. Perl
  3. Ruby
  4. C++
  5. Rust
  6. Swift
  7. Kotlin
  8. Go
  9. Scala
  10. Julia
  11. Lisp
  12. Lua
  13. C#
  14. Prolog
  15. Fortran
  16. Cobol
  17. Pascal
  18. F#


I will be grading the reference cards and the presentations on content as well as presentation. Keep in mind that the talk is only 10 minutes, so you should choose an appropriate amount of material for such a short timeframe. I am happy to talk with you in advance to help balance appropriate content for your talk, if you wish.

Here is the grading rubric that I will use when grading the presentations.