CS 331 Spring 2026 > Information on the Presentation
CS 331 Spring 2026
Information on the Presentation
General
Near the end of the semester, each student will give an in-class oral presentation introducing some programming language. For most/all students, this will be done as part of a group of 2 or 3. Each presenter or group will cover a different programming language. Your topic and timeslot must be approved in advance.
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.
Unless other arrangements are made, I will assume that each presenter or group of presenters will provide their own laptop 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 you display on the classroom projector using your laptop?
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.
Sign-Up
Sign-up for programming languages and timeslots will be via e-mail.
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 day to present,
and your presentation partner(s), if any.
A group only needs to send a single e-mail.
If you are signing up as part of a group,
then CC the e-mail to the other group members as well.
What To Cover
Cover the following, not necessarily in this order.
- Overview
- Build and Execution
- Special Features
1. Overview
Here are examples of things you might discuss. You do not need to cover them all.
- History. Where did the programming language come from? Who invented it? When? Why? Is it popular? Was it ever? Does it have many versions, or just one? Is it currently maintained? Very well? Does it have a recognized standard?
- Overall Characteristics. What programming-language category or categories does it fit in? (Functional? Logic-Based? Dynamic? Other?) Does it support any particular programming styles (object-oriented?) Is it typically compiled to a native code executable? To some interpreted byte code? JIT compiled? Is it typically used interactively? Descripe the programming language’s type system. Is the programming language aimed at some particular application (graphics, sound, web scripting, scientific modeling, control of automated systems, text processing, statistics, education, games, etc.)?
- Your Opinion. Is this a well-designed PL? Is it well supported? It is easy to obtain? Is it kept up to date? Is it convenient to use? Do you recommend it?
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 Features
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.
- I/O (including graphics, sound, etc.).
- Support for concurrency or paralellism (threads/fibers/strands, SIMD/vector computation, actors, distributed execution, etc.).
- Advanced numerical capabilities.
- Support for OOP.
- String handling.
- Support for abstract mathematical operations.
- Error handling.
- Advanced containers.
- Support for reflection.
- Unusual execution methods (lazy evaluation, resolution, etc.).
- Other interesting constructs (monads, comprehensions, guard objects, pattern matching, generators, macros, regular expressions, etc.).
Grading
The presentation is worth 75 points. The following desribes a presentation that will receive a good grade.
- You are prepared to present on your topic at the scheduled time, with tested, working equipment and software, slides displayed on the classroom projector, and sufficient material to fill your timeslot.
- You speak clearly and understandably, make reasonable eye contact with your audience, and are reasonably animated.
- You give your presentation in a competent, knowledgeable manner. You communicate clearly and effectively within the allotted time. Your slides are clear, readable, and aid in conveying information. Your audience learns something.
- You cover the required topics, including a working demonstration of the build-excecute process.
- You use terminology and notation correctly, as they have been defined in this class.
- If there are multiple presenters, then all do a significant portion of the speaking.
- The total time taken by your presentation—not including any time taken for questions afterward—is close to the allotted time (15 minutes).
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.
- It must be an actual programming language that can be used to write executable programs. So not CSS, HDL, HTML, JSON, SGML, SQL, XML, YAML or anything similar.
- It must not be a regular part of the UAF or UAA Computer Science curricula. So not Assembly (of any kind, unless special-purpose), C, C++, GLSL or GLslang, Haskell, Java, JavaScript or ECMAScript, Lua, Prolog, Python, Scheme, Swift.
- It must not be among the top twelve on the TIOBE Index for March 2026. So the following are also ruled out: C#, Visual Basic, R, Delphi or Pascal, Perl, Scratch.
- It must be intended for use by real people to do real work—no “esoteric” programming languages. Avoid things on this list.
- You must be able to demonstrate the edit-build-execute process on a computer in the classroom—and by “you”, I mean you, not some hypothetical person.
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.
Crossed-out items are programming languages that have been approved for some individual or group and so are no longer available.
|
|
|