CIS-3030 Project

One of the goals of this course is to expose you to a variety of programming languages. Another goal is to give you practice learning about programming languages on your own. To help forward these goals you are required to study a programming language of your choice and then report or present about it to the class. This document describes this project in more detail.

Choosing a Language

Ideally you would work individually on this project, however teams of two are also allowed. Be aware that if you work in a team the expectations will be higher.

Your first task is to pick a programming language to study. You may need to do some preliminary research to help you decide what to pick. Here are some guidelines.

Disallowed Languages

You may not use C or Java because they have been covered in previous classwork in our program. Similarly you may not use Scala because we will study that language as part of this course. Finally, you should not use a language you already know. The purpose of this exercise is to broaden your horizons.


Every person or team must pick a language that is different from that picked by any other person or team.

Practical Considerations

As part of your report or presentation you will be asked to write a couple of sample programs in whatever language you are studying. To make this feasible you will want to be sure you have access to an implementation of that language. This is something to check before settling on a particular language. In addition you should also be sure you can find reasonable tutorial information about the language you want to study.

It is not necessary for you to pick a language that is widely used. You may enjoy studying a language that is a little obscure; in fact this would be an excellent opportunity to do exactly that. However, if you do decide to study an obscure language it is very important to verify ahead of time that you can find an implementation and tutorial material.

Some Suggestions

Within the constraints mentioned above, you are free to choose any language that sounds interesting to you. You may even study a shell scripting language or an application's macro language if you wish. However, if you are unsure where to start, here are some good choices to consider. It is not necessary to pick from the list below.

There is an extensive list of programming languages (with links) maintained by the Open Directory project.

I will need to sign off on whatever language you pick. For one thing I want to be sure your choice meets the criteria above.


Here is a list of resources to consider when studying a new programming language.


There are several requirements for this project.

  1. Write two short demonstration programs that illustrate some of the basic (and not so basic) features of the language you are studying. The programs don't have to be long but they should do something at least slightly useful. I will provide a set of possibilities to choose from but you can suggest other ideas if none of the suggested programs seem suitable.

  2. Do one of the two following things:

If you are unsure about what sort of things you should talk about in your presentation and report. I have prepared a checklist of programming language features to consider. I recommend that you review this checklist while you are doing your research and take note when you discover how the language you are studying deals with each issue on the list. Organizing these notes later should help you put together a nice report or presentation.

In addition I have prepared a sample presentation on the Mercury programming language that you can use as a model for your own presentation if you choose to do one.


The following table provides due dates for various milestones in this project.

Item Due Comment Points
Pick Language Feb 8, 2019 Early selections allowed, but not necessarily encouraged. Be sure to consider your options. 5
First Program Mar 8, 2019 The first program in your language of study. 5
Second Program Apr 19, 2019 The second program in your language of study. 20
Presentations (if selected) May 8, 2019 -- May 10, 2019 A 10 to 15 minute oral presentation with supporting slides. 20
Report (if selected) May 10, 2019 A 3--5 page (double spaced) report on your language of study. 20

Last Revised: 2019-01-09
© Copyright 2019 by Peter C. Chapin <>