CS 356 Programming Languages Spring 2019 

Term Project

Overview

This project is an opportunity explore, better understand, and share with others an interesting programming language. In your future as a computer scientist you are likely to need to learn many new languages throughout your career. This project is designed to get you started in your adventures in lifelong learning.

The goals of this project include giving you an opportunity to investigate languages not covered in class, customizing material to your interests, allowing you to gain expertise in a particular area, learning what are and how to effectively use relevant sources of information, and improving your public speaking preparation and delivery skills. The four phases of this project include topic selection, bibliography preparation, presentation, and final paper. Each of the required elements is now described.

In your project, you will perform an in-depth investigation of an important programming language. Your project will study

  • Language History - people, place, and events which led to development
  • Language Syntax - keywords and programming constructs
  • Language Usage - main application areas
  • Language examples - some exemplar programs highlighting the capabilities and functionality of the language

Topic (20 points)

Send me a paragraph (250 words) about your project. Include the language you plan on studying and why you find it interesting.

Bibliography (20 points)

Your grade will be based on the overall quality of your sources, your initial analysis of them, and their relevance to you project.

  • Sources are relevant
  • Sources are diverse
  • Sources have sufficient variety
  • A sufficient number of sources are cited
  • Sources have high quality
  • Sources demonstrate in-depth research
  • Sources are appropriately cited in the text
  • Sources are consistently formated in the bibliography

Paper (80 points)

A written paper is required. Careful completion of the previous steps will ease your writing task.

Structure

Your paper must have the following overall structure:
  • Title Page - Title, Name, Course, Date
  • Introduction - Why did you select this language?
  • Evolutionary History - What are related languages? How are they similar? different?
  • Current State of the language
    • Language structure
    • variables
    • control statements
    • procedures
  • Application areas - where is the language used? why?
  • Example code
    • Hello, world!
    • Array example, such as sorting or searching
    • Recursion example: factorial or fibonacci
    • Fun language example
  • Where do you you predict the language will be in 1, 5, and 10 years?
  • Conclusion
  • Bibliography
  • Reference Articles

Include any relevant discussion from your presentation in your completed paper. Define all acronyms and buzzwords -- I don't know every YAFA (Yet Another Fine Acronym). Check your paper carefully. This includes page numbering, margins, font usage, typographical errors, and grammatical mistakes. You not only should run a spell checker, but also watch out for homophones witch make know cents and can bee easily mist buy a spell checker (eye complement ewe four yore patients). Having someone else read your paper might help eliminate these errors.

Mechanics

Your paper will include a cover sheet with a title and your name. The body of the paper will be between 1500 and 2500 words (5 to 8 pages) printed with double-spaced 12-point proportionally spaced type. The main text body should be printed with full justification. Any figures or graphs should be inserted into the body. A bibliography of references, including Web pages, will follow the text body. Your paper will have 1-inch margins and the pages of the text body and bibliography will be numbered starting with the first page of the text body. You should secure the pages of your paper with a staple in the upper left-hand corner, rather than using a report cover. Any example code should be attached as an appendix.

Writing Center

The Writing Center provides trained peer consultants prepared to work with writers at every stage of the writing process--from getting started brainstorming to writing drafts, and from organizing ideas to revising or final editing. Writing consultants support students by responding to writing in process, not by proofreading, editing, or writing students' papers. Both drop-in tutoring and scheduled appointments are available during the Writing Center's afternoon and evening hours. For more information, contact the Writing Center (x0828; or writing@albion.edu) or the Director, Scott Hendrix (x0355; shendrix@albion.edu).

Presentation (80 points)

You should plan on talking for about 10-15 minutes and allow up to five minutes for questions. I'd prefer to have students ask questions, but I'll ask some questions if nobody else does, so be prepared! You should have between 10 and 15 total slides, depending on their content. Your presentation should roughly follow the same organization of your paper. Prepare handouts for each student.

Evaluation

Your paper will be grade on clarity, quality of presentation, and mechanics. Your presentation grade will be based on quality of presentation materials, handouts, delivery, and presented content.

Resources

  1. Your course text.
  2. ACM Crossroads (XRDS) Writers' guide
  3. Writing for Computer Science: the art of effective communication. Justin Zobel. T11.Z62 1998.
  4. Technical Presentations. Richard Gaughan. OE Reports, 1995-6.
  5. Hello World
  6. Wikipedia


Copyright © 2019, David A. Reimann. All rights reserved.