One of my goals in Programming Languages is that, by the end of the semester, every student in the class should be able to learn a new programming language by himself/herself, using only a textbook, a computer, and a compiler.
To practice this skill, the class will be divided into groups of 2-3 students. Each group will become the class's expert on one language. The group will study that language throughout the semester, learning the history, data types, control constructs, and other interesting features of that language. At the end of the semester, each group will report to the class on their language.
During this project, you will be teaching yourself a new language. I will be available to help you if you can't figure something out, but the project will mostly involve independent reading and research by the group members. Rowan has textbooks and reference manuals on most of these languages in its library, so you'll want to visit the library early in the semester. Most of the languages also have good reference material available on the Web. Additionally, most of these languages (Eiffel, Fortran, Haskell, Smalltalk, Perl, Python, and Ruby) have a compiler or interpreter installed on elvis, so that you can write and test programs. The remaining languages all have free compilers or interpreters available for download; you may install them yourselves on your home computers, or you may ask me to have Rowan's systems staff install them on elvis.
You may select any of the following languages to study:
You may sign up for any language you wish from this list, but selection is first-come-first-served, and a group should have no more than 3 members. The deadline for signing up for a language group is February 7.
- Eiffel
- The new Fortran dialects: Fortran 90, Fortran 95, and Fortran 2003
Fortran information from the University of Brighton
Fortran information from King's College, London
Fortran information from the British Computer SocietySignificant changes were made to Fortran between Fortran 77 and Fortran 90. When you make your report to the class, emphasize the changes that have been made to Fortran in the last thirty years. How is Fortran 90 different from Fortran 77? What was added or changed in 1995, and in 2003?
- Haskell
Our compiler is called HUGS.- Mercury
- ML
Several dialects exist, including Standard ML of New Jersey, (sometimes called SML or SML/NJ) and Caml. You may choose any of these dialects to study.
Don't confuse ML with the markup language XML; XML is a different language.
- Smalltalk
Our compiler is called Squeak.- Perl
- Python
- Ruby
You will present your findings to the class at the end of the semester in two forms: a written report and an oral presentation.
The written report should answer the following questions:
Your report should include a book, journal, or web reference for each of the answers you give. If the reference is a book or journal paper, include the page number on which you found the reference.
Your written report is due April 4. I will distribute copies of your written report to the class when the oral presentations are given.
A draft of your written report is due March 7. By this point, you should have written the answers to questions 1 (history), 2 (paradigms), 3 (object-oriented features), and 4 (binding of data types).
Your oral presentation should be 15-20 minutes in length. It should include a sample program in the chosen language, describing line-by-line how the program works. (If you wish, the sample program may be taken from a book or the Web, as long as you fully understand how the program works and give credit to the source of the program.) You should also summarize your written report for the class. Feel free to include any additional features of the language that you discovered in your reading and found interesting.
The language-learning project components will be weighted as follows:
Draft of written report: 10% Final written report: 60% Oral presentation: 20% Explanation of sample program: 10%
Extra credit: For extra credit, your group may solve the semester's homework programming problem in the language your group has chosen. If you choose to do the extra credit, you should turn in your program at the same time as your language paper.