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.
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.
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.
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.
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.
Official Web Page. Many programming languages have an official web site. This is particularly true for open source languages created by a single individual or team. Typically the official web page for a language has all sorts of information about that language.
Distributed Documentation. It's common for the binary distribution of a programming language to come with a tutorial or other similar documentation.
Third Party Web Pages. Often enthusiastic users of a programming language, especially obscure and little known programming languages, will put together an unofficial web site for the language. Spend some time with Google (or other search engines).
Books and Magazine Articles. Don't forget this old fashion method of finding information. The VTC library contains books on many different programming languages.
Discussion Forums. These methods give you access to actual language users. Many experienced users are very happy to help new users so don't hesitate to ask questions. Be sure you learn enough on your own to ask good questions, and make it clear you are working on a school project.
There are several requirements for this project.
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.
Do one of the two following things:
Write a written report that gives an overview of the language you have been studying and that contains the two demonstration programs (with commentary). Your report should provide an overview of the history and philosophy of the language you are studying as well as some technical specifics about the language. Try to highlight the features of your language that set it apart from other languages or that you find particularly interesting. You can organize your report around your sample programs or you can take a more methodical approach to your presentation by focusing on features (for example in the order they might be presented in a programming class). Your report should be 3-5 pages double spaced (not including the sample programs).
Prepare and deliver an oral presentation in front of the class. In your oral presentation you should highlight the special features of the language you have been studying and describe one of your demonstration programs. Plan for a presentation of about 15 minutes. Your presentation should make use of slides prepared with PowerPoint or some similar software.
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
<PChapin@vtc.vsc.edu>