

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
A termpaper assignment for Computer Science 152 course at Harvard School of Engineering and Applied Sciences. The paper requires students to investigate the formal foundations of programming languages and apply them to real-world programming languages. Students are required to choose one programming language to investigate or two programming languages to compare and contrast. They should explore the features and limitations of the language(s) they have chosen and write one or more programs in the language(s). Finally, they should write a term paper summarizing their investigations and give a short presentation in class. a list of possible mainstream, functional, scripting/web programming, domain-specific and logic programming, and research languages that students can choose from.
Typology: Assignments
1 / 2
This page cannot be seen from the preview
Don't miss anything!


Harvard School of Engineering and Applied Sciences — Computer Science 152
In this course we have been investigating the formal foundations of programming languages. For the term paper, you will consider how these ideas apply to real-world programming languages. Specifically, for the term paper, you should perform the following tasks (in approximately this order).
These tasks are explained in more detail below.
Choose either one programming language to investigate, or two programming languages to compare and contrast. You are free to choose any language(s) you want, so long as there is some way of writing and executing programs in this language. That is, there should be a compiler or interpreter available for the language(s) you choose. Feel free to discuss possible language choices with the course staff. Some possible languages include: Mainstream : C, C++, Java, C#, Scala, Visual Basic. Functional Languages : Haskell, OCaml, SML, F#. Scripting/Web Programming : Javascript, PHP, Perl, Python, Tcl, Ruby. Domain Specific & Logic Programming : Matlab, SQL, Prolog, Datalog, Curry, PostScript, LATEX, Erlang. Research languages : Go, Cilk, gbeta, Cyclone, Coq.
Explore the features and limitations of the language(s) you have chosen. The following questions are exam- ples of the kinds of questions you should consider.
Term paper
If you are comparing and contrasting two languages, you can consider how your languages are similar or different on their answers to questions like those above.
Write one or more programs in the language(s). This will help you gain an understanding of what is easy or difficult to accomplish in the language(s), and to understand features of the language(s). You might start with something very simple like a “hello world” program, but you should also try implementing something more substantial, such as a sorting algorithm, a parser, a small language interpreter, a simulation, etc. Try to identify what kind of programs are suitable for writing in your language(s), and write one or more of these programs.
Write a short paper (2–4 pages) that communicates the results of your investigation. Assume the reader does not know the language(s), but is comfortable with the concepts we have learned in class. If, during your investigations, you needed to explore or understand programming language concepts we did not cover in class, then describe these concepts briefly, and explain how they relate to your programming language(s). Be sure to describe the programs you have implemented, and what insights, if any, this gave you. You must hand in the term paper by 5pm, Wednesday, April 28 , which is the last day of the semester. Your paper should be single-spaced, typed, and with reasonable margins. It should be between 2 and 4 pages in length. Please also submit the source code for the programs you wrote, and sample output if appropriate. You can email them to [email protected] by 5pm, Wednesday, April 28.
The class on Thursday April 22nd will be devoted to student presentations. You will give a 5 minute presentation summarizing your investigation. You are free to use slides, the blackboard, an interpretive dance, or any other form of presentation.
Page 2 of 2