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.
- 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 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.
- 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 70 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.
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.
- 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/UAA C.S. curricula. So not Assembly (of any kind, unless special-purpose), C, C++, GLSL/GLslang, Haskell, Java, JavaScript, Lua, Prolog, Scheme, Swift.
- It must not be among the top twelve on the TIOBE Index for March 2025. So the following are also ruled out: Python, C#, Go, Visual Basic, Delphi/Object Pascal, Fortran, Scratch.
- It must be intended for use by real people to do real work—no “esoteric” programming languages. So nothing 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.
|
|
|