CS 331 Spring 2025  >  Information on the Presentation


CS 331 Spring 2025
Information on the Presentation

General

Each student will—possibly as part of a group of two—give an oral presentation introducing some programming language. The presentation is worth 70 points. Presentations will be given in class near the end of the semester, with each presenter or group covering a different programming language. Your topic and timeslot must be approved in advance. Sign-up for programming languages and timeslots will be via e-mail.

A presentation is to last 15 minutes, or close to that. 10 minutes is too short. If you take more than 17 minutes, then I will probably have to stop you.

When I announce that you may sign up, send an e-mail to me at ggchappell@alaska.edu indicating your first and second choices for programming languages, your preferred timeslot, and your presentation partner, if any. If you have a partner, then CC the e-mail to that person as well.

For requirements and ideas on your presentation topic, see Possible Programming Languages, below.

For a list of scheduled presentations and open timeslots, see the posted Presentation Schedule.

What To Cover

Cover the following, not necessarily in this order.

  1. Overview
  2. Build and Execution
  3. Special Features

1. Overview

Here are examples of things you might discuss. You do not need to cover them all.

You must describe your programming language’s type system.

2. Build and Execution

Go through the entire process of writing source code and turning it into something executable. Then execute it.

The program or programs you execute do not need to be long or complicated. They may be partially written before your presentation. They need to be well suited to the programming language. For example, if the programming language is aimed at audio, then execute a program that makes sound.

3. Special Feature

What is special about this programming language? Show us. Here are some possible features to demonstrate. You might choose one or two that are particularly interesting in your programming language.

Grading

The presentation is worth 70 points. The following desribes a presentation that will receive a good grade.

Logistics

Unless other arrangements are made, I will assume that each presenter or group of presenters will provide their own computer, from which a presentation can be made. You will set up just before your presentation; this needs to be doable within a couple of minutes. Please test your equipment beforehand! Can your laptop display using the classroom projector?

Groups may split up the work of the presentation however they like, as long as each member does a significant portion of the speaking.

Possible Programming Languages

Each presenter or group will present on a different programming language. Your programming language must be approved by the instructor. In order to be approved, it must meet the following requirements.

Look for a programming language that is a little off the beaten path, or one that used to be popular, but has fallen by the wayside. This still leaves a huge number of choices.

Some programming languages to consider are listed below. I do not have a working knowledge of all of these; some of them might turn out to be poor choices for a presentation. If some programming language interests you, then check it out! You are not required to choose a PL on this list.

  • ABAP
  • ActionScript
  • Ada
  • Algol
  • Alice
  • APL
  • AutoHotKey
  • AWK
  • B
  • Some variety of BASIC (not Visual Basic)
  •  Bash* 
  • Boo
  • Ceylon
  • Chuck
  • COBOL
  • Coconut
  •  CoffeeScript 
  • Coq
  • Crystal
  • Csound
  • Curry**
  • D
  • Dart
  • Dragon
  • Duck
  • Dylan
  • Eiffel
  •  Elixir 
  • Elm
  • Erlang
  • Euphoria
  • Factor
  • Falcon
  • FAUST
  • Forth
  • Fortress
  • FoxPro/Visual FoxPro
  •  GameMaker Language 
  • GAMS
  • Groovy
  • HaXe
  • IDL
  • J
  • JavaScript Object Language (JSOL)
  • Jinx
  • Joy
  • Julia
  • Kite
  • Koka
  • Kotlin
  • Ladder Logic
  • A Lisp-family programming language** (not Scheme): Arc, AutoLISP, Clojure, Common Lisp, EMACS Lisp, Logo, Qi, VLISP
  •  Lobster 
  • Loell
  • Luna
  • MATLAB or Octave*
  • Miranda
  • Mond
  •  MoonScript 
  • Nemerle
  • An ML-family programming language: ML, OCaml, F#
  • Nice
  •  Nim (formerly Nimrod) 
  • Objective-C
  • Occam
  • OOC
  • Open Shading Language (OSL)
  • Oz
  • Perl
  • PHP
  • Pike
  • PL/I
  • PL/SQL
  • Pony
  • PostScript
  • PowerShell*
  • Processing
  • PureScript
  • Pyret
  • R
  • Rexx
  • RPG
  • Ruby
  •  Rust 
  • SAS*
  • Scala
  • Shen
  • Simula
  • Smalltalk or Squeak
  • SNOBOL
  • Solidity
  • Squirrel
  • Stata
  • Tcl
  • Terra
  • TeX/LaTeX*
  • TypeScript
  • Wiring
  • The Wolfram Language/Mathematica*
  • Wren
  • X++
  • Zig
*Emphasize programming.
**Emphasize differences from any similar PL covered in class.