SI 413 Fall 2023 / Project


This is the archived website of SI 413 from the Fall 2023 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Project Phase 3

Overview

Hopefully you have become somewhat of an "expert" on your language by completing the first two parts of this project. Now it's time to understand your technical expertise in a broader context, and to share what you have learned with everyone else.

To begin this part of your project, you will prepare written responses to each of the questions listed below. Your responses must be typed up and handed in at the time of your presentation. There is no hard requirement on the length of your responses, and in fact the length of each response will vary depending on your language. Some questions may not be applicable to your language at all. Overall, your responses should probably take up about 2 pages when printed out in a regular font with regular spacing, margins, etc. This is not a requirement and you will be judged on quality, not quantity.

Your responses to the questions below should provide the basis for a 10 minute presentation in lab on December 9. Your presentation should use a visual aid (such as a PowerPoint or Google Docs presentation) to provide a record of what is being presented and help the audience keep up. Presentations should focus both on the technical aspects of the language (including code examples!) as well as the non-technical aspects (such as history, legal issues, and popularity).

Your visual aid must be provided either as a web URL, a PDF, or a PowerPoint document. This document must be emailed to your instructor at least 2 hours prior to the start of the class period in which you present. If you want to make extra sure, you can email it sooner than that!

For both the written responses and the presentation, you need to draw on a variety of sources, including your own experiences from working on phases 1 and 2 of this project. The written responses and presentation must convey significantly more information than could be gleaned from a single source such as Wikipedia. And of course you need to reference all of your sources properly etc. etc.

Grading

Phase 3 counts as 30% of your total project grade. Here's a break-down of how your grade will be computed:

  • 50%: Written responses. Your written responses should give sufficient depth in coverage to indicate that you are indeed an expert on this language. Answers should be thorough when appropriate, or "N/A" when not appropriate, and draw on your own experiences and opinions as well as multiple online or printed sources.
  • 50%: Presentation. The style and effectiveness of your presentation will be judged using the standard departmental rubric. In addition to the points emphasized on that rubric, you will also be judged on the quality and usefulness of your visual aids. The time limit is very strict to accommodate everyone, so make sure your practice the presentation and make very effective use of the time.

Written Response Questions

Remember, not each of these will be applicable to every language. If that is the case, just write "N/A". You must type your responses, in the order below, and hand them in before your presentation begins.

  1. Who created the language, and why? Was it an individual, an academic group, a company, or something else? What problem did the language seek to solve?
  2. How has the language actually been used? Give examples of the most famous or most significant programs or projects in this language. What specific features or characteristics of the language have made it useful for particular applications? (Remember, sometimes languages are useful for theoretical ideas, or for proving properties about computers, rather than practical concrete applications.)
  3. How has the language evolved and changed since it was first created? Who controls the language now - a group, a company, an individual, or no one at all? Are there official standards for the language? How do you think the language will change in the next 10 years?
  4. What are the most important or commonly-used tools for the language? (I'm talking about compilers, interpreters, or IDEs here.) Who controls, owns, or sells those tools?
  5. What is a feature or aspect of this language that you found to be especially useful, convenient, fun, or interesting? Why do you think that feature was included in the language? Why do you think it is not included in other languages?
  6. What is a feature or aspect of this language that you found to be especially frustrating or annoying? Why do you think the language was designed that way?
  7. Would you ever use this language again, or recommend it to someone else for any reason? Why or why not? Be objective and professional here - "It sucked. I hated it. Ruby kicks ass" is not going to earn you many points.
  8. Have their been any legal, ethical, or otherwise controversial issues with the ownership or control of the language itself, the tools used to write programs in the language, distribution of programs, or anything else?
  9. How popular is the language? Is there a vibrant community of developers and resources available to continue to learn the language? Are updates and new APIs posted as new technologies become available? How do you think this will change in the next 10 years?